Logs: freenode/#haskell
| 2021-03-11 21:31:06 | <sclv> | there's a book on large program architecture that has a chapter on ghc, i forget what book though! |
| 2021-03-11 21:31:15 | → | borne joins (~fritjof@200116b86413620065fd8eaafdc5f06e.dip.versatel-1u1.de) |
| 2021-03-11 21:31:22 | <sclv> | (oh i should add experience, and lots of articles about many different systems) |
| 2021-03-11 21:31:42 | <koz_> | I think Sandy Maguire was working on a design-style book too, but I forget its name or whether it's finished. |
| 2021-03-11 21:32:12 | <sclv> | re wholemeal programming: https://www.cs.ox.ac.uk/people/ralf.hinze/publications/ICFP09.pdf |
| 2021-03-11 21:32:24 | <sclv> | " Wholemeal programming means to thinkbig: work with an entire list, rather than a sequence of elements; de-velop a solution space, rather than an individual solution; imaginea graph, rather than a single path." |
| 2021-03-11 21:32:32 | <kupi> | i once read a program made by one person who had 20 years of experience, about 10 of it was java. That program was full of god classes cyclically dependent on each other! |
| 2021-03-11 21:33:10 | <kupi> | that was when I learnt "experience" is not enough, books and code reviews are essential |
| 2021-03-11 21:34:05 | <koz_> | To be fair, experience in Java is inversely proportional, so it's 10 - 10 = 0 years of actual experience. :P |
| 2021-03-11 21:34:10 | <sclv> | oh here's the book i was thinking of: https://www.aosabook.org/en/index.html |
| 2021-03-11 21:34:28 | × | roconnor quits (~roconnor@host-45-58-192-182.dyn.295.ca) (Ping timeout: 260 seconds) |
| 2021-03-11 21:34:33 | <sclv> | maybe marlow's book on concurrency would pair well |
| 2021-03-11 21:34:45 | <koz_> | I would recommend that book regardless (Marlow's). |
| 2021-03-11 21:34:52 | <koz_> | It's _really_ useful. |
| 2021-03-11 21:36:53 | → | frozenErebus joins (~frozenEre@94.128.82.20) |
| 2021-03-11 21:37:44 | → | stree joins (~stree@68.36.8.116) |
| 2021-03-11 21:37:45 | <kupi> | is there newer version of this? https://twitter.com/lambda_conf/status/803695008100466688 |
| 2021-03-11 21:37:59 | → | cake_eater joins (~kiweun@2607:fea8:2a62:9600:2c7a:ef2c:8374:86d) |
| 2021-03-11 21:38:01 | <sclv> | I hope not! |
| 2021-03-11 21:38:08 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 2021-03-11 21:38:09 | <sclv> | its a terrible idea and we all dunked on it at the time |
| 2021-03-11 21:38:28 | × | geekosaur quits (82650c7a@130.101.12.122) (Quit: Connection closed) |
| 2021-03-11 21:38:33 | <kupi> | is there an alternative? |
| 2021-03-11 21:39:36 | <sclv> | imho there's no "right" way to construct such a thing |
| 2021-03-11 21:39:42 | <subttle> | 1 |
| 2021-03-11 21:39:50 | <koz_> | subttle: 2 |
| 2021-03-11 21:39:54 | × | qih quits (~pi@210-54-120-166.adsl.xtra.co.nz) (Quit: Lost terminal) |
| 2021-03-11 21:40:02 | × | rj quits (~x@gateway/tor-sasl/rj) (Ping timeout: 268 seconds) |
| 2021-03-11 21:40:04 | <subttle> | haha sorry typo meant to be "/1" to change windows :) |
| 2021-03-11 21:41:08 | <Psybur> | Anybody have an idea on how to fix 'cannot find ld' when using stack build? It appears to be on my path, dont know why im getting this https://pastebin.com/Xp5gSjtN |
| 2021-03-11 21:41:26 | × | kiweun quits (~kiweun@2607:fea8:2a62:9600:7dbd:671b:4d2e:c5b4) (Ping timeout: 264 seconds) |
| 2021-03-11 21:43:03 | → | kiweun joins (~kiweun@2607:fea8:2a62:9600:3c91:d3d3:8013:3404) |
| 2021-03-11 21:44:26 | × | cake_eater quits (~kiweun@2607:fea8:2a62:9600:2c7a:ef2c:8374:86d) (Ping timeout: 264 seconds) |
| 2021-03-11 21:44:53 | → | idhugo__ joins (~idhugo@87-49-147-45-mobile.dk.customer.tdc.net) |
| 2021-03-11 21:45:00 | <sclv> | kupi: the "right" metric is to keep reading code and writing code and learning as youo go |
| 2021-03-11 21:45:12 | <sclv> | there's no "ladder" to climb |
| 2021-03-11 21:45:22 | → | rj joins (~x@gateway/tor-sasl/rj) |
| 2021-03-11 21:45:52 | × | DataComputist quits (~lumeng@50.43.26.251) (Ping timeout: 265 seconds) |
| 2021-03-11 21:46:12 | × | son0p quits (~son0p@181.58.39.182) (Quit: leaving) |
| 2021-03-11 21:47:31 | → | DataComputist joins (~lumeng@50.43.26.251) |
| 2021-03-11 21:48:02 | × | kiweun quits (~kiweun@2607:fea8:2a62:9600:3c91:d3d3:8013:3404) (Ping timeout: 264 seconds) |
| 2021-03-11 21:48:05 | → | Varis joins (~Tadas@unaffiliated/varis) |
| 2021-03-11 21:48:23 | → | danvet_ joins (~danvet@212-51-149-181.fiber7.init7.net) |
| 2021-03-11 21:48:26 | × | idhugo__ quits (~idhugo@87-49-147-45-mobile.dk.customer.tdc.net) (Read error: Connection reset by peer) |
| 2021-03-11 21:48:38 | → | idhugo joins (~idhugo@87-49-147-45-mobile.dk.customer.tdc.net) |
| 2021-03-11 21:50:35 | <minoru_shiraeesh> | sclv: "imho most questions of large scale architecture are sort of the same with or without functional programming tbh" |
| 2021-03-11 21:50:57 | <minoru_shiraeesh> | but the language can encourage or discourage certain decisions |
| 2021-03-11 21:51:25 | <minoru_shiraeesh> | I heard that in erlang everything is an actor |
| 2021-03-11 21:51:50 | <sclv> | sure. but there's actor style libs for java even |
| 2021-03-11 21:51:56 | <minoru_shiraeesh> | so an erlang programmer will probably lean towards a solution that involves actors |
| 2021-03-11 21:51:57 | × | [exa] quits (exa@unaffiliated/exa/x-5381537) (Read error: Connection reset by peer) |
| 2021-03-11 21:52:42 | <minoru_shiraeesh> | js encouraged callbacks |
| 2021-03-11 21:52:57 | <sclv> | many languages do |
| 2021-03-11 21:53:12 | <sclv> | its common in python libs too |
| 2021-03-11 21:53:33 | <hololeap> | kupi: it reminds me a bit of this: http://dev.stephendiehl.com/hask/index.html |
| 2021-03-11 21:53:56 | <sclv> | i'm not saying language doesn't matter. i'm saying that large scale architecture is something that lives at a higher level of abstraction than "functional programming" |
| 2021-03-11 21:54:13 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:8ce3:ab05:2761:c61a) (Remote host closed the connection) |
| 2021-03-11 21:54:29 | <sclv> | and by large scale i mean systems with say at least three different interacting processes, typically more |
| 2021-03-11 21:54:29 | <minoru_shiraeesh> | I think they intersect |
| 2021-03-11 21:54:39 | <sclv> | ok good for you |
| 2021-03-11 21:54:43 | <kupi> | thanks a lot, so many links I am completely unsure what to do? shall I finish SICP? then what's next? |
| 2021-03-11 21:55:08 | <minoru_shiraeesh> | in fp there is a distinction between pure and impure code |
| 2021-03-11 21:55:40 | <minoru_shiraeesh> | that's a whole perspective of its own on the design process |
| 2021-03-11 21:55:41 | <koz_> | kupi: My suggestion? Build stuff. |
| 2021-03-11 21:55:43 | <sclv> | kupi: finishing SICP is good. if you got a lot out of it you'd probably be at a level where you get a lot out of HTDP ttoo |
| 2021-03-11 21:55:48 | <sclv> | but yes, build stuff! |
| 2021-03-11 21:55:58 | <koz_> | Like, you can read and theorize all you like, but building stuff helps put it into practice and show you what you're missing. |
| 2021-03-11 21:56:13 | × | Boomerang quits (~Boomerang@2a05:f6c7:2179:0:ccd0:d305:d616:ff16) (Ping timeout: 272 seconds) |
| 2021-03-11 21:56:30 | <sclv> | read things you enjoy and teach you things. and if you stop enjoying and learning from something, then go do something else, or read something else. |
| 2021-03-11 21:56:51 | <koz_> | sclv: Yes, this times a million. |
| 2021-03-11 21:56:53 | <sclv> | all you can get are recommendations, you need to sort thru them and prioritize yourself, you know best |
| 2021-03-11 21:57:26 | <sclv> | minoru_shiraeesh: i think you do not understand what i mean by "large scale" and that's ok |
| 2021-03-11 21:58:34 | × | inkbottle quits (~inkbottle@aaubervilliers-654-1-101-29.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!) |
| 2021-03-11 21:58:48 | × | mouseghost quits (~draco@wikipedia/desperek) (Quit: goodnight, sleep tight) |
| 2021-03-11 21:58:53 | → | inkbottle joins (~inkbottle@aaubervilliers-654-1-101-29.w86-212.abo.wanadoo.fr) |
| 2021-03-11 21:59:20 | <minoru_shiraeesh> | sclv: so what is it? examples |
| 2021-03-11 21:59:51 | <sclv> | "systems with say at least three different interacting processes, typically more" |
| 2021-03-11 22:01:38 | <sclv> | say six long running server processes, multiple protocols and serialization formats, twelve db tables, at least two dbs, multiple supervisors, a databroker and also direct RPC apis of various sorts. |
| 2021-03-11 22:01:53 | <Psybur> | Why did nobody warn me about stack build --verbose |
| 2021-03-11 22:01:54 | <sclv> | a thing you need a whole whiteboard to diagram |
| 2021-03-11 22:02:44 | <sclv> | whether any individual component is written in java, haskell, rust or whatever is a Lot less relevant at that point |
| 2021-03-11 22:03:18 | <sclv> | I would prefer they all be written in haskell, of course. but the architecture questions involved don't relate to that |
| 2021-03-11 22:03:32 | <koz_> | In fact, there is a good chance chunks of it are written in something rather different. |
| 2021-03-11 22:03:36 | <koz_> | (databases for example) |
| 2021-03-11 22:03:50 | × | nbloomf_ quits (~nbloomf@2600:1700:ad14:3020:ac7b:d5c9:2180:6a41) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 2021-03-11 22:04:09 | <sclv> | yep -- in all such systems i've worked on there have been at least three languages in play, not to mention the DBs |
| 2021-03-11 22:04:39 | <koz_> | In the system I'm currently dealing with, there's three. |
| 2021-03-11 22:04:43 | × | jollygood2 quits (~bc8134e3@217.29.117.252) (Quit: http://www.okay.uz/ (Session timeout)) |
| 2021-03-11 22:04:53 | <koz_> | (well, four technically) |
| 2021-03-11 22:05:07 | <sclv> | let me guess, there are three teams! |
| 2021-03-11 22:05:48 | → | idhugo_ joins (~idhugo@80-62-117-241-mobile.dk.customer.tdc.net) |
| 2021-03-11 22:05:50 | <koz_> | sclv: There are considerably more than three teams. |
| 2021-03-11 22:05:57 | × | ubert quits (~Thunderbi@p200300ecdf25d965e6b318fffe838f33.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 2021-03-11 22:06:03 | <sclv> | lol i was going for a conway's law thing |
| 2021-03-11 22:06:03 | <koz_> | In fact, I discover new ones almost daily. |
| 2021-03-11 22:06:21 | <koz_> | Yeah, lol. |
| 2021-03-11 22:06:22 | <minoru_shiraeesh> | sounds like we make a sudden jump from designing chairs and tables to designing cities, but there are things in between that you can design too |
| 2021-03-11 22:06:43 | <minoru_shiraeesh> | you can design a cross-roads for example |
| 2021-03-11 22:06:43 | <sclv> | anyway that's me clarifying what i meant by "large" |
| 2021-03-11 22:06:58 | <Gurkenglas_> | "stack --resolver nightly-2020-12-14 install ghc" says "ghc-8.6.5" but https://www.stackage.org/nightly-2020-12-14 says "ghc-8.10.2". Hm? |
All times are in UTC.