Hacker Newsnew | past | comments | ask | show | jobs | submit | akkad33's commentslogin

You can use Ocaml today and achieve all the correctness

OCaml has a lot of other cons though that Rust doesn't have. I would definitely pick Rust over OCaml even for projects that can tolerate a runtime with GC pauses. (And clearly most people agree.)

What cons?

The ecosystem. The language is lovely, but dune/opam is not up to the standard of the Go or Rust build systems, and the set of useful libraries is somewhat skewed. Whenever I write a program in Caml, I gain an hour thanks to the nice language, and then lose two fighting with dune/opam.

There's also the support for concurrency and parallelism, which has started to improve recently, but is still years behind what is available in Go (but still better in my opinion than what is available in Rust).


For example, multicore OCaml is not free of race conditions. The GC, while super efficient (pauses are in the milliseconds), is not suitable for hard realtime.

Still, where absolute max performance or realtime are not required, I'd choose OCaml as it is elegant & a pleasure to code in (personal opinion, ymmv).


Poor windows support, confusing and buggy tooling (yeah really), mediocre documentation, global type inference, weird obsession with linked lists leading to performance gotchas, difficult syntax (yeah really), small community.

I can expand on any of those if you disagree with them.


> all the correctness

When did OCaml get affine types? Or unique references?



But good data structure is not always evident from the get go. And if your types are too specific it would make future development hard if the specs change. This is what I struggle with


Professionally I'm a data architect. Modeling data in a way that is functional, performant and forward facing is not an easy problem so it's perfectly fine to struggle with it. We do our best job with what we've got within reasonable constraints - we can't do anything more than that.

I found that over time my senses have been honed to more quickly identify things that are important to deeply study and plan right now and areas where I can skimp more and fix it later if problems develop. I don't know if there was a short cut to honing those senses that didn't involve a lot of pain as I needed to pick apart and rework oversights.


Good strong (read specific) types encourage easier redactors.

Changing the function signature or the type then generated cascade of compiler errors that tells you exactly what you touched.

Weak non specific types does not have that property and even with tests you cannot be sure about the change and cannot even be sure you are upholding invariants


This website is asking me for permissions on my phone. Why?


I'm not seeing that. Which permissions?


Not op, but it asked me to "use other apps and services in this device" android, crime


Google translate was not very good, it didn't get context. Deepl was better


And many people don't know what Google stands for. Just like they probably didn't care what AOL stands for, or MSN


I have started using chatgpt for everything from financial planning to holiday planning to product purchase. Whenever I think I hit something useful I add it to memory. I'm a "go" plan user because they had a promotional offer that gave me free access to the plan for a year. Will I continue after one year? Truth is nothing I have in chatgpt cannot be recreated elsewhere. But if I care about keeping those memories I might. I think the real challenge for me now is finding back out conversations, it seems their history search is quite bad.


Are you talking about Macron?


No, but it is a European leader that has ~recently enjoyed that situation, but is no longer in it. Sorry, but I don't want to spell it out too obviously, for my own privacy.


It didn't say BLM supporter. It says black lives matter. If you take offence to that, that's a you problem


How is it hosted if you don't mind saying


Wake up and smell the coffee: fsharp is dead. Look at the release notes of fsharp. It's laughable for a major version update. It's maintained by like 5 people working in eastern Europe and they only do maintenance updates basically. C# is getting all its features and DotNet is basically c# oriented anyway. So even in the past you had to learn C# to program in F#


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: