Hacker News new | ask | show | jobs
by cpeterso 5278 days ago
What was the initial motivation for writing an alternative "standard" library? Is it self-sufficient or does it build new frameworks onto of OCaml's standard library?
2 comments

The std-lib in OCaml's official release by INRIA is very basic and not enough to be used in medium/large projects, and some people would rather call it "base-lib" instead of "std-lib" . Two major libraries can be used as an alternative, i) Jane Street's Core libraries. and ii) the comunity-driven "Batteries included".

Related links:

Core: https://bitbucket.org/yminsky/ocaml-core/wiki/Home Batteries: https://github.com/ocaml-batteries-team/batteries-included

For someone just starting out with OCaml, what are the pros and cons of one over the other? (or which would you recommend and why?)

I've been interested in OCaml for a good few years now and have tinkered with it from time to time, but I think its time I gave it serious try.

First, I think for beginners the std-lib is fairly enough for basic learning tasks. Choosing a library is something one should consider only after he has gained some insight of the language.

Second, As no better than someone "just starting out with OCaml" myself, I'd like to redirect you to this page on StackOverflow for a comparison between Batteries and Core:

http://stackoverflow.com/questions/3889117/what-are-the-pros....

Great, thanks for the link!

Choosing a library is something one should consider only after he has gained some insight of the language.

Well, like I said, I've tinkered with OCaml in the past and have a reasonable idea what it has to offer. While I still have a lot to learn before I can properly make use of OCaml idioms and such, I would prefer if I didn't have to relearn the library as soon as I get to a level where I can write real programs. From the link I see that Batteries is backwards compatible with the standard library, so perhaps its the better one to start with for a beginner.

I'm really not the right person to be answering this. I haven't been at Jane Street that long, and I have no experience programming OCaml without Core. You'll likely get a much better answer on the mailing list: https://groups.google.com/forum/#!forum/ocaml-core. (I've also posted a link there to this discussion already, so hopefully someone will come by and give you a better answer.)

Probably the biggest difference between Core and the INRIA (default) standard library is that Core itself is mostly written in OCaml. This has many benefits: code is less verbose, easier to read, it's easier to verify correctness, etc.