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/
Tuplanolla has quit [Quit: Leaving.]
<discocaml> <diligentclerk> I haven't really read too many conversations online where people talk about tooling in a way that's really specific and actionable. People usually just say "I had a good experience with it" or "it sucks."
mange has joined #ocaml
<discocaml> <diligentclerk> I would love to read a clear technical argument for why Go's tooling facilitated its rapid growth.
<discocaml> <diligentclerk> Are there good user experience study papers where they interview programmers or monitor them to see how they use their tooling?
<discocaml> <diligentclerk> or even just a blog post where somebody argues "these are the top 15 features that need to be implemented in tooling for a language before you can expect people to use it"
<discocaml> <yawaramin> cross-platform lockfiles?
<discocaml> <yawaramin> fast installs
<discocaml> <yawaramin> using native Windows tooling on Window
<discocaml> <yawaramin> using native Windows tooling on Windows
troydm has quit [Quit: What is Hope? That all of your wishes and all of your dreams come true? To turn back time because things were not supposed to happen like that (C) Rau Le Creuset]
<discocaml> <contificate> All this tooling stuff comes down to the fact that most developers don't RTFM. I'm always surprised at the amount of things I learn about tools I've used for years if I glance over the manual.
<discocaml> <contificate> I'd hazard a guess that the general competence level among employed software engineers with, say, git is fairly low (for example).
troydm has joined #ocaml
<discocaml> <contificate> However, you are immediately more competent with git if you know how it works (even if you don't know the 2-8 subcommands that achieve the same thing). People don't know the aforementioned `dune` stuff that I think is important, and that probably makes it feel like like flailing around with opaque S-expr nonsense to most beginners.
<discocaml> <yawaramin> no but seriously, faster installs would be great. creating and installing packages in an opam switch is pretty painful
<discocaml> <yawaramin> admittedly i haven't tried the new dune package management yet
<discocaml> <contificate> when relocatable compiler eta
<discocaml> <contificate> my understanding is that OCaml's compiler couldn't really be moved around the file system after being built
<discocaml> <yawaramin> i've heard some noises that it's close
<discocaml> <dubious245> I mean there is enough stuff under the sun that already has to be learned. Making a build system a big part of what you have to learn to start using a programming language definitely increases that burden enough I can see people bouncing off the language.
<discocaml> <dubious245> So to start doing stuff in Ocaml for an average dev they need to learn a new non-c syntax, plus ocaml, plus the domain they are trying to implement, and them on top of that you add Dune.
<jutty> I think Dune could be simpler. And have some defaults where projects could omit trivial dune files. But binary package management aside, I just want defining custom commands in Dune to be easier. Usually OCaml projects have a Makefile with a bunch of phony targets just to ship project-related commands.
<companion_cube> if it were simpler, at the cost of not working for existing OCaml projects, it'd be dead
<companion_cube> begin flexible enough to work in a variety of situations is necessary when you're working with an already existing ecosystem
chiselfuse has quit [Remote host closed the connection]
chiselfuse has joined #ocaml
Guest1 has joined #ocaml
<Guest1> Does the dune repository itself support incremental building? I'm trying to make some changes and recompiling, but every time I type `make release` or `make dev` it restarts with progress 0/1530. I would have expected it to just recompile the 3-4 changed files and link them.
<discocaml> <barconstruction> What is a lock file? Is it equivalent to like, a specific set of dependencies and version numbers that guarantees a reproducible build?
Guest1 has quit [Quit: Ping timeout (120 seconds)]
Guest1 has joined #ocaml
myrkraverk has joined #ocaml
myrkraverk_ has quit [Ping timeout: 252 seconds]
<discocaml> <bluddy5> I think discussions about dune's syntax in terms of simplification and commands are mostly moot at this point. The reality is that everyone comes in with an AI assistant or two. For example, while getting systems configuration stuff done in linux used to be a pain, it's now much easier due to the fact that I can just ask chatgpt how to do it. Suddenly linux is a power-tool platform for *everyone*, and truly exceeds what windows can do. The sam
semarie_ has joined #ocaml
dmbaturin_ has joined #ocaml
johnel_ has joined #ocaml
cross_ has joined #ocaml
mange has quit [Ping timeout: 260 seconds]
semarie has quit [Ping timeout: 260 seconds]
hanker has quit [Ping timeout: 260 seconds]
cross has quit [Ping timeout: 260 seconds]
dmbaturin has quit [Ping timeout: 260 seconds]
semarie_ is now known as semarie
bartholin has joined #ocaml
Guest1 has quit [Quit: Client closed]
Serpent7776 has joined #ocaml
agentcasey has quit [Read error: Connection reset by peer]
agentcasey has joined #ocaml
LainIwakura has joined #ocaml
Haudegen has joined #ocaml
LainIwakura has quit [Ping timeout: 240 seconds]
bartholin has quit [Quit: Leaving]
wbooze has quit [Ping timeout: 260 seconds]
dhil has joined #ocaml
wbooze has joined #ocaml
wbooze has quit [Quit: Leaving]
Anarchos has joined #ocaml
wbooze has joined #ocaml
wbooze has quit [Max SendQ exceeded]
wbooze has joined #ocaml
wbooze has quit [Max SendQ exceeded]
wbooze has joined #ocaml
Haudegen has quit [Quit: Bin weg.]
Anarchos has quit [Quit: Vision[]: i've been blurred!]
Anarchos has joined #ocaml
hanker has joined #ocaml
<companion_cube> @barconstruction yes, normally a lockfile contains the whole set of (transitive) dependencies with their versions, and typically their hash
Haudegen has joined #ocaml
Haudegen has quit [Ping timeout: 252 seconds]
Haudegen has joined #ocaml
euphores1 has joined #ocaml
euphores has quit [Ping timeout: 252 seconds]
trillion_exabyte has quit [Ping timeout: 252 seconds]
Anarchos has quit [Quit: Vision[]: i've been blurred!]
trillion_exabyte has joined #ocaml
wbooze has quit [Quit: Leaving]
Anarchos has joined #ocaml
Anarchos has quit [Quit: Vision[]: i've been blurred!]
<discocaml> <yawaramin> see also https://go.dev/ref/mod#go-sum-files
<companion_cube> or just cargo lockfiles really
Serpent7776 has quit [Ping timeout: 260 seconds]
Haudegen has quit [Quit: Bin weg.]
<discocaml> <contificate> all I'll say is using dune is much easier than using the toolchain directly
<discocaml> <contificate> in fact, I only know how to use the toolchain directly from using `dune --verbose`
wbooze has joined #ocaml
<discocaml> <cod1r> i like dune too
<discocaml> <cod1r> me and my homies are dune lovers
<discocaml> <contificate> need more OCaml tutorials on YouTube - workflows and the like
<discocaml> <contificate> can only get so far with Twitch grifters having their mouth agape at the concept of passing a function to another function
wickedshell has joined #ocaml
leonardus has joined #ocaml
bartholin has joined #ocaml
dhil has quit [Ping timeout: 260 seconds]
Haudegen has joined #ocaml
Anarchos has joined #ocaml
<discocaml> <gabyfle> Hello ! I was wondering, design wise, when do you use Modules and when do you use Classes ?
<discocaml> <gabyfle> I'm currently implementing digital filters and I think that both modules (with functors) and classes (with inheritance) would fit the case
<discocaml> <gabyfle> And since I have both options I'm unsure of what to choose
<discocaml> <gabyfle> <https://discuss.ocaml.org/t/objects-use-cases-in-ocaml/2282/15> seems to lead to a "not use objects" principle but I'm wondering if things changed over the years (the discussion is 7 years old)
<discocaml> <cod1r> i used to be that twitch grifter ngl 🤣
<discocaml> <cod1r> WOAH, HIGHER ORDER FUNCTIONS?!?!?!?!? 😱
Serpent7776 has joined #ocaml
patrick_ is now known as patrick
patrick has quit [Changing host]
patrick_ has joined #ocaml
dhil has joined #ocaml
Haudegen has quit [Quit: Bin weg.]
dhil has quit [Ping timeout: 252 seconds]
Tuplanolla has joined #ocaml
Haudegen has joined #ocaml
Serpent7776 has quit [Ping timeout: 252 seconds]
Anarchos has quit [Quit: Vision[]: i've been blurred!]
bartholin has quit [Quit: Leaving]
YuGiOhJCJ has joined #ocaml
oriba has joined #ocaml
Tuplanolla has quit [Quit: Leaving.]