<masterbuilder>
Mister_Magister: what things do you think are cursed? genuinely curious
Serpent7776 has quit [Ping timeout: 260 seconds]
olle has quit [Ping timeout: 276 seconds]
YuGiOhJCJ has quit [Quit: YuGiOhJCJ]
<discocaml>
<mbacarella> it's the only language I've ever used that feels like it was done by people who were good at programming language design and a lot of tradeoffs are intentional aesthetic choices. a lot of other PLs feel like people fumbling around blindly, not really aware of the full ramifications of decisions they're making
<discocaml>
<mbacarella> except for the object system lol
bartholin has joined #ocaml
Serpent7776 has joined #ocaml
<discocaml>
<astreamingcomesacrossthesky> What are some languages you've used that you feel are exceptionally poorly designed @pilothole
<discocaml>
<mbacarella> all of them? 😅
<discocaml>
<mbacarella> javascript and python
<discocaml>
<mbacarella> the ones i'm forced to use because they're industry standards but would never pick otherwise
<discocaml>
<astreamingcomesacrossthesky> I don't mind JS from an ergonomics perspective really, it's the fact that it's not a fully-implemented PL
<discocaml>
<astreamingcomesacrossthesky> Python on the other hand is just gross and terrible to use
<discocaml>
<astreamingcomesacrossthesky> At least there's a reason that OCaml's stdlib is minimal, JS makes you use an external library for everything bc sloppy corporate race to the finish mentality
zenmov has quit [Ping timeout: 260 seconds]
zenmov has joined #ocaml
Everything has joined #ocaml
YuGiOhJCJ has joined #ocaml
agentcasey has quit [Ping timeout: 255 seconds]
<dh`>
idk, javascript is a lot more prone to semantic excursions than python
<discocaml>
<astreamingcomesacrossthesky> What do you mean by semantic excursions?
zenmov has quit [Ping timeout: 260 seconds]
<dh`>
it's a polite word for "insane behavior"
YuGiOhJCJ has quit [Quit: YuGiOhJCJ]
mange has joined #ocaml
user__ has quit [Remote host closed the connection]
Tuplanolla has joined #ocaml
bartholin has quit [Quit: Leaving]
Serpent7776 has quit [Ping timeout: 245 seconds]
<discocaml>
<astreamingcomesacrossthesky> Oh yes that's probably true on the whole. Lol I thought it was some fancy PL theory term I had never encountered
<discocaml>
<astreamingcomesacrossthesky> Python is just a completely clumsy and inexpressive language imo
<discocaml>
<astreamingcomesacrossthesky> A real disgrace to good whitespace languages like OCaml
<discocaml>
<contificate> I don't understand how anyone can prefer JS to Python
<discocaml>
<contificate> JS is just like fundamentally unsuited for computer programming, can't even easily specify a custom key type for a hash table (it all devolves to strings) - at least with Python you have `__hash__` etc. and dataclasses and `match` which is a fairly adequate emulation of ML-like pattern matching
<discocaml>
<contificate> the most shocking part is that TypeScript doesn't even begin to address the problems with JS, just gives people a gradually typed discipline for doing basic DOM manipulations - great stuff
<discocaml>
<astreamingcomesacrossthesky> I prefer neither and have the great good fortune to not be subjected to them at work. Your criticism of TS is true tho, it doesn't actually fix the fact that JS is an incomplete language, just adds a bolted-on type system
<discocaml>
<contificate> I used to dislike Python but now I find it a very versatile tool for "one off" programs
<discocaml>
<astreamingcomesacrossthesky> Anecdotally tho I don't see Python's nicer features much used tho. Every library I encounter is chock full of MyPy annotations and then people are still writing `if foo is not None: print(foo)`
<discocaml>
<contificate> yeah I mean you need to approach it with the heavens in your head already, right
<discocaml>
<contificate> same way you can hire for C positions by getting OCamlers who are guaranteed to do a tagged union ridden greenspun's 10th law job of it 💯
<discocaml>
<contificate> excellent
<discocaml>
<yawaramin> i just implemented a design for parsing query parameters in Go, based on one i did in OCaml. it dramatically simplified the code. ama
<discocaml>
<leviroth> OCaml is not a whitespace language though?
<discocaml>
<astreamingcomesacrossthesky> What do you call those blank areas of identation
<discocaml>
<astreamingcomesacrossthesky> What do you call those blank areas of indentation
<discocaml>
<leviroth> Whitespace
<discocaml>
<astreamingcomesacrossthesky> I confess I don't understand your point
<discocaml>
<yawaramin> OCaml is not whitespace-sensitive*
<discocaml>
<yawaramin>
<discocaml>
<yawaramin> *Minor exceptions apply
<discocaml>
<astreamingcomesacrossthesky> Good to know, I was merely referring in my perpetual ignorance to the aesthetic quality of much code I have seen in the wild and also written myself
<discocaml>
<leviroth> Well, most languages will conventionally be written with indentation etc. to make them more readable for humans
<discocaml>
<astreamingcomesacrossthesky> Yeah that's true, I just tend to group languages (that I have used) into three broad categories: brackets, whitespace, and Lisp