3 ms·
I have very fond memories of OCaml. It was OCaml that introduced me to functional programming, way back in 2000 in my freshman year at the uni. I'm a Lisper/Clo
by nathell 13y ago
I have very fond memories of OCaml. It was OCaml that introduced me to functional programming, way back in 2000 in my freshman year at the uni. I'm a Lisper/Clojurian these days, but I think warmly of OCaml's type system, the speed, the self-containedness of the distribution, and the fact that getting the code to compile tends to mean getting it to actually work.
My #1 gripe with OCaml is the fact that its strings are composed of single-byte characters. I know there's Camomile, but not having it as part of the language core creates a sense of disintegration akin to PHP and Python 2.
There's also this: http://www.podval.org/~sds/ocaml-sucks.html http://www.podval.org/~sds/ocaml-sucks.html which I mostly agree with.
But, all in all, OCaml rocks.
- fzltrp 13y ago> I know there's Camomile Camomille is great, but it exhaustively covers the whole UTF standard, which you might not need for more casual uses. There are other libraries bringing lighter support for UTF strings (ocamlnet for instance I believe). Nevertheless, Camomille does a pretty good job if you're concerned by compliance. > There's also this: http://www.podval.org/~sds/ocaml-sucks.html http://www.podval.org/~sds/ocaml-sucks.html which I mostly agree with. It's a pretty old page. I'm not sure its content is still accurate. I'll have to look into that.
- agumonkey 13y ago> created: 2007-01-31 > updated: 2013-02-11 not that old, even though ocaml metabolic rate increased a lot in the recent years
- silentOpen 13y agoExcept it's no longer accurate (e.g. native backtraces work just fine). Would someone really think that OCaml sucks and maintain an accurate page about that fact for 6 years? That sort of nonsensical dedication should at least prompt you to check its facts.
- fzltrp 13y agoWell, I don't know. The "No polymorphism" section is misleading (though polymorphism doesn't carry the same meaning from one language to the next): There's this comment on higher order functions not being supported which surprises me. See the section 7.13[1] and 7.14 of the OCaml documentation. These features are availabe since ver 3.12 of the distribution. [1]: http://caml.inria.fr/pub/docs/manual-ocaml-4.01/extn.html#sec227 http://caml.inria.fr/pub/docs/manual-ocaml-4.01/extn.html#se...
- nousernamesleft 13y ago>It's a pretty old page. I'm not sure its content is still accurate Half of it never was as it is just "ocaml isn't lisp and I can't handle that".
- samdk 13y ago> There's also this: http://www.podval.org/~sds/ocaml-sucks.html http://www.podval.org/~sds/ocaml-sucks.html I also mostly agree with it for base OCaml (and I write OCaml every day), but it's worth noting a lot of the complaints--even the ones outside of the 'standard library' section--can be fixed by using a better standard library. (Like Jane Street's Core/Async, which is what I'm most familiar with.) I do disagree with several of those complaints though (not auto-converting between numeric types is a feature, not a bug!), and several of them are the kind of things that seemed like a big deal when I first started using OCaml and now no longer do. (Like the record field names issue...if you're writing well-organized code each type almost always has its own module anyway, so this doesn't matter much.)
- jordwalke 13y agoThe record field names collision issue has since been fixed in 4.0.1! That single issues was causing me to cling to SML, but now I'm happy that I get to join the growing OCaml community and benefit from the great mindshare and tooling. For example, the excellent Vim/Emacs plugin Merlin that provides in-editor type information and completion.
- zem 13y agoif you've not looked at ocaml recently, the community has really taken off in the last year. it's an exciting time to be using the language.