Home liberachat/#haskell: Logs Calendar

Logs: liberachat/#haskell

←Prev  Next→
Page 1 .. 984 985 986 987 988 989 990 991 992 993 994 .. 18030
1,802,926 events total
2021-07-17 12:00:07 favonia joins (~favonia@user/favonia)
2021-07-17 12:01:40 × Vajb quits (~Vajb@2001:999:62:1d53:26b1:6c9b:c1ed:9c01) (Read error: Connection reset by peer)
2021-07-17 12:02:29 Vajb joins (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi)
2021-07-17 12:03:15 × gentauro quits (~gentauro@user/gentauro) (Read error: Connection reset by peer)
2021-07-17 12:03:49 gentauro joins (~gentauro@user/gentauro)
2021-07-17 12:04:48 <kuribas> Every time I come with rational arguments, I get a reply like "But I don't like types, they get in the way". Or "programming languages don't matter, business logic does". Or "I don't care it's more robust, we want to move fast and solve bugs as we go".
2021-07-17 12:11:30 × favonia quits (~favonia@user/favonia) (Ping timeout: 240 seconds)
2021-07-17 12:11:41 Kaiepi joins (~Kaiepi@nwcsnbsc03w-47-54-173-93.dhcp-dynamic.fibreop.nb.bellaliant.net)
2021-07-17 12:11:50 × _xor quits (~xor@74.215.232.67) (Quit: WeeChat 3.2)
2021-07-17 12:14:02 favonia joins (~favonia@user/favonia)
2021-07-17 12:15:10 × fef quits (~thedawn@user/thedawn) (Ping timeout: 244 seconds)
2021-07-17 12:15:54 _xor joins (~xor@74.215.232.67)
2021-07-17 12:16:02 mnrmnaugh joins (~mnrmnaugh@pool-96-252-87-182.bstnma.fios.verizon.net)
2021-07-17 12:18:06 <dibblego> get used to it
2021-07-17 12:18:47 <tom__> kuribas: I feel your pain
2021-07-17 12:18:53 Guest77 joins (~Guest77@2402:e280:2117:297:e041:4ae1:dd3c:1f08)
2021-07-17 12:19:43 <tom__> "Types get in the way" then spends three hours NULL chasing
2021-07-17 12:20:50 <kuribas> tom__: exactly! I spend far more time thinking about types in clojure than in haskell.
2021-07-17 12:21:11 <maerwald> types can get in the way, especially since haskell lacks structural typing
2021-07-17 12:21:34 <tom__> haha sometimes you want types to get in the way
2021-07-17 12:21:51 <maerwald> I know of at least one Haskell dev who now works full-time with typescript and doesn't regret it
2021-07-17 12:22:09 <maerwald> I probably wouldn't, but it's a valid position
2021-07-17 12:22:50 peterhil_ joins (~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi)
2021-07-17 12:22:55 <tom__> Clojure to me is just javascript with some immutability
2021-07-17 12:22:58 burnsidesLlama joins (~burnsides@dhcp168-011.wadham.ox.ac.uk)
2021-07-17 12:23:06 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 255 seconds)
2021-07-17 12:23:22 <kuribas> maerwald: I find that often, it just amounts to having a bit more boilerplate. Or having duplicate type definitions.
2021-07-17 12:23:40 <maerwald> it can be a *lot* of boilerplate
2021-07-17 12:24:00 <maerwald> and prohibits you of expressing certain relationships between data
2021-07-17 12:24:19 <tom__> Haskell, Rust and Julia - desert island stack
2021-07-17 12:24:37 <tom__> Havent tried the latter two :D
2021-07-17 12:24:58 <maerwald> class based solutions don't work well when you need an *actual* data type for serialisation
2021-07-17 12:25:38 brian_da_mage joins (~Neuromanc@user/briandamag)
2021-07-17 12:25:45 <maerwald> typescript is surprisingly simple and powerful on these matters... certainly less elegant and unsound in a few places, but that's the tradeoff the make
2021-07-17 12:25:47 × peterhil quits (~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi) (Ping timeout: 268 seconds)
2021-07-17 12:26:10 <kuribas> tom__: rust is only my "to learn list" :)
2021-07-17 12:26:42 <kuribas> maerwald: you can be less elegant and unsound in haskell too...
2021-07-17 12:27:02 <maerwald> kuribas: yeah, but that usually involves MORE complexity, not less
2021-07-17 12:27:10 <maerwald> so the opposite of typescript
2021-07-17 12:27:16 × thelounge9230681 quits (~thelounge@cpe-75-85-161-60.san.res.rr.com) (Remote host closed the connection)
2021-07-17 12:27:22 <tom__> You can be and then people who don't understand what a theoretical model is say that it must mean Haskell is pointless
2021-07-17 12:28:12 <kuribas> maerwald: I don't agree
2021-07-17 12:28:47 <maerwald> well, you *can* do some forms of structural typing/subtyping, but it all ends in esoteric libraries
2021-07-17 12:29:00 <kuribas> maerwald: so don't do it.
2021-07-17 12:29:03 <maerwald> while you get all that in TS for free without complexity
2021-07-17 12:29:45 <maerwald> well, I'm not commenting on which language is better, I'm just commenting on "types can get in the way", because they can
2021-07-17 12:29:55 <kuribas> maerwald: plenty of ways to get around that: 1) partially applied functions (the Endo trick), create a new type with some of the fields. 3) just make the fields all Maybe.
2021-07-17 12:30:56 <kuribas> maerwald: there is a difference between "the types sometimes get in the way", and "the types always get in the way", the latter is what they seem to be implying.
2021-07-17 12:31:02 <maerwald> 1) difficult for serialisation, Show instances, debugging, ... 2) boilerplate, 3) unexpressive, because now you have two cases of `Maybe`
2021-07-17 12:31:40 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-07-17 12:32:02 <kuribas> You don't need two cases of Maybe
2021-07-17 12:32:44 <kuribas> and 4) just put default values.
2021-07-17 12:33:32 <maerwald> 1. there's no such value, because the computation doesn't return one for the given input, 2. there's no such value, because the computation can *never* return one
2021-07-17 12:33:45 <maerwald> now you also have to wonder: 3. there's a value, but there shouldn't be one
2021-07-17 12:33:47 <maerwald> oops
2021-07-17 12:33:47 <kuribas> IMO, the more you want correctness, the more you are restricted in what you write. It has nothing to do with types (directly).
2021-07-17 12:34:28 <kuribas> maerwald: if you grab to clojure, you don't care anyway...
2021-07-17 12:34:48 <maerwald> default values.. what's my default account balance? :p
2021-07-17 12:34:54 <dibblego> like I said, get used to it
2021-07-17 12:35:03 × awth13 quits (~user@user/awth13) (Remote host closed the connection)
2021-07-17 12:35:20 <tom__> ^ yes and get used to makeNegative = (*) -1
2021-07-17 12:35:49 <kuribas> Which is my point, haskell can be a nice unsafe language to. Just make a big sum type, and partial functions over it (don't forget to add error messages though...).
2021-07-17 12:36:17 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 265 seconds)
2021-07-17 12:36:21 <maerwald> well, with structural typing you don't need to be partial
2021-07-17 12:36:24 <int-e> Or unsafeCoerce everything and program untyped lambda calculus? :)
2021-07-17 12:36:36 × acidjnk quits (~acidjnk@p200300d0c72b9530b41c89c6d6c03a30.dip0.t-ipconnect.de) (Ping timeout: 255 seconds)
2021-07-17 12:36:48 <arahael> kuribas: Mind you, Clojure seems to offer alternative methods to allow you to type ocrrect code. In particular, Clojure seems to have a fantastic runtime repl.
2021-07-17 12:37:15 <arahael> kuribas: Such that you're running the live program and debugging it and replacing functions on the fly.
2021-07-17 12:37:26 <int-e> I like types, they prevent some of the more embarrassing programming errors from being run as code.
2021-07-17 12:37:44 <tom__> Revenge is forcing them to write a web app in the Lean proof assistant fully verified.
2021-07-17 12:37:49 <tom__> It has IO.
2021-07-17 12:38:13 × krz3si quits (~quassel@185.217.117.220) (Ping timeout: 265 seconds)
2021-07-17 12:38:25 <maerwald> right... clojure: forget a closing bracket, code still compiles, but doesn't compute prime numbers... instead it compiles to a chess engine
2021-07-17 12:38:42 <tom__> haha
2021-07-17 12:38:45 <maerwald> type safe? Yeah maybe. But.
2021-07-17 12:38:48 <kuribas> arahael: I think you never actually used clojure?
2021-07-17 12:38:57 × zeenk quits (~zeenk@2a02:2f04:a106:9600:82fb:aed9:ca9:38d3) (Quit: Konversation terminated!)
2021-07-17 12:39:03 <int-e> tom__: That's deep in "overdoing it" territory. At least if the specification is anything more elaborate than "something in, something out", and even that may be tricky if you interpret it as a promise to fulfil request in finite time.
2021-07-17 12:39:18 yoctocell joins (~user@h87-96-130-155.cust.a3fiber.se)
2021-07-17 12:39:26 <kuribas> arahael: it's a very mediocre runtime IMO, compared to java. Error messages are nearly incomprehensible. Tracing is nice though...
2021-07-17 12:39:39 <tom__> int-e: Yeah pointless torture :)
2021-07-17 12:39:50 <maerwald> the only upside of clojure is interactive development
2021-07-17 12:39:55 aman joins (~aman@user/aman)
2021-07-17 12:40:08 <tom__> The haskell compiler feels pretty interactive
2021-07-17 12:40:29 <maerwald> if HLS works, maybe
2021-07-17 12:40:37 <arahael> kuribas: Seemed to be effective enough.
2021-07-17 12:40:53 <arahael> But no, I haven't personally used it.
2021-07-17 12:41:00 <maerwald> but on the other hand: usually not. Compile times are too slow
2021-07-17 12:41:12 <kuribas> arahael: clojurists just have a different idea of "correct code".
2021-07-17 12:41:15 <arahael> I personally quite like ghcid.
2021-07-17 12:41:27 <arahael> kuribas: Indeed, but I think it's the process of discovery that they like.
2021-07-17 12:41:57 <arahael> kuribas: In haskell, we seem to prefer to test functions in isolation. Clojure people seem to prefer to test functions in the live system.
2021-07-17 12:42:00 <maerwald> if you're working on 300+ modules and your Type module has a whitespace change, you're gonna need to restart cabal a few times, because your machine OOMed due to TH
2021-07-17 12:42:18 <tom__> Which library is recommended for sampling probability distributions?
2021-07-17 12:42:42 <arahael> maerwald: The amount of memory Haskell uses is crazy high. Sadly, I find it way faster than Swift. :/
2021-07-17 12:44:32 machinedgod joins (~machinedg@24.105.81.50)
2021-07-17 12:45:45 <kuribas> arahael: lispers will boast about how easy it is to hot patch live systems. They don't tell you that it becomes very hard to see who changed what and when.
2021-07-17 12:46:03 × favonia quits (~favonia@user/favonia) (Ping timeout: 255 seconds)
2021-07-17 12:46:05 <kuribas> arahael: so you'll end up with CI/CD anyway.
2021-07-17 12:46:32 favonia joins (~favonia@user/favonia)

All times are in UTC.