companion_cube changed the topic of #ocaml to: Discussion about the OCaml programming language | http://www.ocaml.org | OCaml 5.2.0 released: https://ocaml.org/releases/5.2.0 | Try OCaml in your browser: https://try.ocamlpro.com | Public channel logs at https://libera.irclog.whitequark.org/ocaml/
rgrinberg has quit [Quit: My Unrecognized Mac has gone to sleep. ZZZzzz…]
f[x] has joined #ocaml
<Mister_Magister> holy shit ocaml is so cursed
<Mister_Magister> i love it
<discocaml> <._null._> How so ?
Tuplanolla has quit [Quit: Leaving.]
f[x] has quit [Remote host closed the connection]
<Mister_Magister> I'm just joking around but coming from c-ish languages some things are definitely alien, and some could say, cursed
<Mister_Magister> also can someone tell me why the ;; as i didn't get that far in tutorial yet
malte has quit [Remote host closed the connection]
malte has joined #ocaml
<discocaml> <._null._> ;; is only really used as a toplevel termination token
<discocaml> <._null._> termination is not the right word, but it ends the input
<Mister_Magister> ah okay thankies
YuGiOhJCJ has quit [Quit: YuGiOhJCJ]
f[x] has joined #ocaml
<Mister_Magister> i'm starting to like it so much fun and :>
<Mister_Magister> jokes aside its pretty based
Everything has quit [Quit: leaving]
agentcasey has joined #ocaml
<discocaml> <darrenldl> @beajeanm that seems to be the common pattern : v
myrkraverk has joined #ocaml
bartholin has joined #ocaml
Serpent7776 has joined #ocaml
<discocaml> <JM> On the contrary, I would argue it's the most correct usage, don't impose on your user some niche concepts they don't care about 🙂
cr1901 has quit [Read error: Connection reset by peer]
cr1901 has joined #ocaml
hsw_ has joined #ocaml
hsw has quit [Remote host closed the connection]
rgrinberg has joined #ocaml
rgrinberg has quit [Client Quit]
olle has joined #ocaml
agentcasey has quit [Remote host closed the connection]
rgrinberg has joined #ocaml
agentcasey has joined #ocaml
bartholin has quit [Quit: Leaving]
casastorta has quit [Ping timeout: 248 seconds]
rgrinberg has quit [Ping timeout: 260 seconds]
casastorta has joined #ocaml
user__ has joined #ocaml
f[x] has quit [Ping timeout: 260 seconds]
oriba has joined #ocaml
YuGiOhJCJ has joined #ocaml
user__ has quit [Remote host closed the connection]
user__ has joined #ocaml
oriba has quit [Quit: https://quassel-irc.org - Chat comfortably. Anywhere.]
<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
Haudegen has joined #ocaml