Logs: freenode/#haskell
| 2021-04-06 13:50:09 | × | drbean_ quits (~drbean@TC210-63-209-216.static.apol.com.tw) (Quit: ZNC 1.8.2+cygwin2 - https://znc.in) |
| 2021-04-06 13:50:10 | <merijn> | emmanuel_erc: Usually what happens is: Some small team of people write something cool in Haskell that blows other solutions out the water. It takes of. Managers and corporate come in, look at Haskell and go "oh...shit what do we do with this...", hire 100 code monkeys to reimplement the entire thing in Java/C++ and repeat |
| 2021-04-06 13:50:25 | <merijn> | See: BlueSpec |
| 2021-04-06 13:51:47 | <merijn> | Managers/companies don't wanna deal with needing to find people with the right skills, training, etc. they mostly want easily replaced, predictable machine cogs :p |
| 2021-04-06 13:51:55 | <lortabac> | in the company where I work, 2 out of the 3 projects I've worked on have been rewritten |
| 2021-04-06 13:52:04 | → | stree joins (~stree@68.36.8.116) |
| 2021-04-06 13:52:05 | <lortabac> | the first one was more or less as merijn described |
| 2021-04-06 13:52:33 | <lortabac> | the second one was more about an ambitious manager blaming Haskell instead of management problems |
| 2021-04-06 13:53:15 | <merijn> | emmanuel_erc: Orson Scott Card's essay on software companies is always relevant: http://www.call-with-current-continuation.org/rants/how-companies-die.txt |
| 2021-04-06 13:53:16 | <lortabac> | then blaming the C# devs who quit the project before finishing the rewrite (because they ran into the same problems as the Haskell team) |
| 2021-04-06 13:54:44 | → | bahamas joins (~lucian@unaffiliated/bahamas) |
| 2021-04-06 13:55:16 | × | ddellaco_ quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection) |
| 2021-04-06 13:55:39 | × | justsomeguy quits (~justsomeg@unaffiliated/--/x-3805311) (Quit: WeeChat 3.0.1) |
| 2021-04-06 13:56:16 | <maerwald> | lortabac: yes, they tried to hire haskellers with Go experience, I remember. |
| 2021-04-06 13:56:19 | × | ukari quits (~ukari@unaffiliated/ukari) (Ping timeout: 265 seconds) |
| 2021-04-06 13:56:52 | <merijn> | lortabac: To be fair, the project couldn't have been a more perfect worst-case for GHC's GC if they'd tried :p |
| 2021-04-06 13:56:57 | <merijn> | s/the/that |
| 2021-04-06 13:57:23 | → | LKoen joins (~LKoen@65.250.88.92.rev.sfr.net) |
| 2021-04-06 13:58:16 | <maerwald> | emmanuel_erc: Typescript is awesome. I know haskellers who switched to TypeScript jobs |
| 2021-04-06 13:59:47 | × | bahamas quits (~lucian@unaffiliated/bahamas) (Ping timeout: 260 seconds) |
| 2021-04-06 14:01:07 | <shapr> | int-e: much more activity here https://github.com/grin-compiler/ |
| 2021-04-06 14:01:34 | <zzz> | msg lambdabot :t 3 |
| 2021-04-06 14:01:43 | <zzz> | ignore that please |
| 2021-04-06 14:01:54 | <merijn> | zzz: You can't make me! |
| 2021-04-06 14:01:55 | → | ddellaco_ joins (~ddellacos@ool-44c73afa.dyn.optonline.net) |
| 2021-04-06 14:02:41 | × | notzmv quits (~zmv@unaffiliated/zmv) (Ping timeout: 268 seconds) |
| 2021-04-06 14:03:29 | <fendor> | maerwald, while I agree, typescript is really cool, I don't like the ecosystem that comes with it, usually |
| 2021-04-06 14:04:49 | <lortabac> | typescript is cool, but rewrites are almost always a bad idea |
| 2021-04-06 14:04:59 | → | Sgeo joins (~Sgeo@ool-18b98aa4.dyn.optonline.net) |
| 2021-04-06 14:05:58 | <merijn> | I disagree |
| 2021-04-06 14:06:04 | <merijn> | Lots of times they're a great idea |
| 2021-04-06 14:06:05 | <emmanuel_erc> | Regardless, I'm leaving the current job partially because I think the rewrite is a dumb idea and I don't want to work on a codebase that is going to be thrown out eventually. |
| 2021-04-06 14:06:27 | <emmanuel_erc> | They didn't really have an interest in listening to what I had to say about the whole venture. |
| 2021-04-06 14:06:31 | × | `slikts quits (~nelabs@wikipedia/reinis) (Ping timeout: 246 seconds) |
| 2021-04-06 14:06:32 | <emmanuel_erc> | So I've decided to leave. |
| 2021-04-06 14:06:42 | → | Tops21 joins (~Tobias@dyndsl-095-033-088-082.ewe-ip-backbone.de) |
| 2021-04-06 14:07:14 | <maerwald> | merijn: the problem is that most ppl think rewrite should include changing langague |
| 2021-04-06 14:07:20 | <maerwald> | while that's often one of the lesser problems |
| 2021-04-06 14:08:06 | <maerwald> | most of the time the continuous growing of the codebase is what kills the bird |
| 2021-04-06 14:08:33 | <maerwald> | assumptions that were true in the beginning aren't anymore, but are still intrinic part of the architecture |
| 2021-04-06 14:08:38 | <merijn> | maerwald: More people should listen to Brooks. Build one to throw away |
| 2021-04-06 14:08:43 | <maerwald> | everything after that is going to be sh*te |
| 2021-04-06 14:09:42 | <zzz> | if i have 'x = 1 :: Num a => a ; y = x :: Int' are x and y the same or is y a copy of x? |
| 2021-04-06 14:09:50 | <lortabac> | merijn: rewrites in the real world are different, they are often made by different people, who end up reinventing the same wheels and making the same mistakes |
| 2021-04-06 14:10:02 | <merijn> | zzz: Yes, no, maybe, you shouldn't care :) |
| 2021-04-06 14:10:08 | <maerwald> | so we have ppl switch languages, frameworks and whatnot... but they rarely switch their *approach* to software engineering |
| 2021-04-06 14:10:24 | <merijn> | lortabac: I'm not responsible for people doing sensible things in a stupid way, thereby ruining the sensibility |
| 2021-04-06 14:10:25 | <lortabac> | "Build one to throw away" is a very good idea if you gain knowledge from the first try |
| 2021-04-06 14:10:31 | × | Tops2 quits (~Tobias@dyndsl-095-033-088-082.ewe-ip-backbone.de) (Ping timeout: 260 seconds) |
| 2021-04-06 14:10:47 | <merijn> | maerwald: Wait...I have to think to program? |
| 2021-04-06 14:10:58 | <merijn> | maerwald: I thought I could just copy&paste from SO |
| 2021-04-06 14:11:39 | <zzz> | merijn: i see. 'x / 2' is fine but 'y / 2' is not |
| 2021-04-06 14:11:49 | <maerwald> | yeah and read blog posts from Google engineers to figure out what framework you need |
| 2021-04-06 14:12:06 | <maerwald> | (because you really have the same set of problem as google has, right?) |
| 2021-04-06 14:12:38 | Guest15377 | is now known as stilgart |
| 2021-04-06 14:13:24 | <merijn> | zzz: Yes, but that's unrelated? |
| 2021-04-06 14:13:33 | × | ddellaco_ quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection) |
| 2021-04-06 14:13:42 | → | tetrahedron joins (~hypercube@137.112.237.23) |
| 2021-04-06 14:13:46 | × | rdivyanshu quits (uid322626@gateway/web/irccloud.com/x-frmbfjisqfxmhgqn) (Quit: Connection closed for inactivity) |
| 2021-04-06 14:13:53 | → | ddellaco_ joins (~ddellacos@ool-44c73afa.dyn.optonline.net) |
| 2021-04-06 14:15:00 | × | haskellstudent quits (~quassel@213-225-9-45.nat.highway.a1.net) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
| 2021-04-06 14:15:15 | → | haskellstudent joins (~quassel@213-225-9-45.nat.highway.a1.net) |
| 2021-04-06 14:15:51 | → | kiweun joins (~kiweun@dsl-173-206-238-190.tor.primus.ca) |
| 2021-04-06 14:15:59 | × | haskellstudent quits (~quassel@213-225-9-45.nat.highway.a1.net) (Client Quit) |
| 2021-04-06 14:16:05 | <zzz> | merijn: it is? |
| 2021-04-06 14:16:13 | <merijn> | :t (/) |
| 2021-04-06 14:16:14 | <lambdabot> | Fractional a => a -> a -> a |
| 2021-04-06 14:16:15 | → | haskellstudent joins (~quassel@213-225-9-45.nat.highway.a1.net) |
| 2021-04-06 14:16:30 | <merijn> | zzz: / only works on types that are instances of Fractional |
| 2021-04-06 14:16:38 | <merijn> | zzz: Int is not an instance of Fractional |
| 2021-04-06 14:16:44 | <tdammers> | maerwald: and also because the choice of framework is the one thing that defines you as an "engineer" |
| 2021-04-06 14:16:45 | × | kiweun quits (~kiweun@dsl-173-206-238-190.tor.primus.ca) (Remote host closed the connection) |
| 2021-04-06 14:16:49 | <merijn> | So using / on something of type Int is a type error |
| 2021-04-06 14:17:05 | × | frozenErebus quits (~frozenEre@37.231.244.249) (Ping timeout: 252 seconds) |
| 2021-04-06 14:17:10 | × | barthandelous quits (~calebbrze@2600:1007:b0a1:3aa7:b579:e4ea:b055:38a9) (Ping timeout: 276 seconds) |
| 2021-04-06 14:17:15 | <merijn> | zzz: 'y' has type "Int" (whether it's the same as x or not) |
| 2021-04-06 14:17:24 | <merijn> | zzz: You probably want div |
| 2021-04-06 14:17:34 | <merijn> | > 10 `div` 3 |
| 2021-04-06 14:17:36 | <lambdabot> | 3 |
| 2021-04-06 14:17:54 | <zzz> | no. thats the thing |
| 2021-04-06 14:18:00 | <zzz> | ok, let me try to explain |
| 2021-04-06 14:18:04 | <merijn> | Then you want fromIntegral |
| 2021-04-06 14:18:13 | <zzz> | (1 :: Num a => a) / 2 |
| 2021-04-06 14:18:13 | <merijn> | > (10 :: Int) / 3 |
| 2021-04-06 14:18:15 | <lambdabot> | error: |
| 2021-04-06 14:18:15 | <lambdabot> | • No instance for (Fractional Int) arising from a use of ‘/’ |
| 2021-04-06 14:18:15 | <lambdabot> | • In the expression: (10 :: Int) / 3 |
| 2021-04-06 14:18:17 | <merijn> | eh |
| 2021-04-06 14:18:18 | <merijn> | what |
| 2021-04-06 14:18:20 | <zzz> | > (1 :: Num a => a) / 2 |
| 2021-04-06 14:18:21 | × | jpds quits (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 240 seconds) |
| 2021-04-06 14:18:21 | <lambdabot> | 0.5 |
| 2021-04-06 14:18:22 | <merijn> | ah, right |
| 2021-04-06 14:18:32 | <merijn> | > fromIntegral (10 :: Int) / 3 |
| 2021-04-06 14:18:34 | <lambdabot> | 3.3333333333333335 |
| 2021-04-06 14:18:45 | <zzz> | no merijn, here's my problem |
| 2021-04-06 14:18:47 | <merijn> | :t fromIntegral |
| 2021-04-06 14:18:48 | <lambdabot> | (Integral a, Num b) => a -> b |
| 2021-04-06 14:18:57 | <zzz> | i get that, but listen |
| 2021-04-06 14:19:05 | <zzz> | ill try to be concise |
All times are in UTC.