How stable and widespread is "OCaml Batteries Included" and is it recommended?
Asked Answered
A

2

17

I'm just getting back into OCaml for a new small research project after many years of SML, Haskell and F#.

I quickly found myself missing some things when using the OCaml libraries, and I also missed having a syntax for monadic comprehensions.

OCaml Batteries Included seems to fill exactly these gaps. But I'm a little unsure whether it has reached the point of being mature, stable and widespread enough for this project. Part of my doubt comes from having a number of hiccups when installing it - including discovering that currently the installation instructions are out of date, and it was only by Googling that eventually found a response to a support request that explained what was required.

Is Batteries relatively stable? (Or at least more stable than the above would suggest?) Is its use relatively widespread? (E.g., is 10% of new OCaml code written using it?)
What kinds of projects would it be recommended for?
(And, in particular would it be recommended for a small-medium sized research project that should yield a small library that likely would be maintained for some time.)
Any other recommendations?

Archuleta answered 22/7, 2010 at 10:41 Comment(6)
I wasn't aware there'd been such a large change. I've just checked the Caml-list archive message counts by month, and for what it's worth those don't seem to have changed much over the last four years: caml.inria.fr/pub/ml-archives/caml-list/index.en.html Can you point to any references that show the plummet? Or, at least explain how you determined that there was a plummet? Do you haveArchuleta
@Jon: That's a pretty bold claim, and one that I'm disinclined to believe unless you can back it up with sound statistics from a reasonably impartial source.Prosper
@Archuleta and bcat: I just ripped out the statistics for the two OCaml mailing lists and they have both fallen consistently year on year every year for four years in a row, going from 663 posts/month in 2007 to 276 now (58% decline). Sales of our OCaml-related products have fallen 60% in the same period and, consequently, we have dropped OCaml. Google trends shows a similar trend with ~60% decline in the proportion of Google searches that are for OCaml.Sorcim
The reason is, of course, that OCaml was left behind in the shift to multicore.Sorcim
@Jon Right - the link I posted is for similar stats, I think. And from 4 years ago (as you said originally) until this year the difference is less. If you pick the peak of 663, then yes it drops, but so does anything if you deliberately pick it's very highest point. I'd characterize the situation as there was much higher OCaml activity for a year or so around 2007, and now it's returned to what is was prior and we'll have to see what happens next. I agree though that multicore is an issue - perhaps the JVM backend will help... (tail calls in the JVM is an issue though).Archuleta
@RD1: To put it another way, traffic on the OCaml mailing lists is the lowest it has been for 10 years. Given that functional programming is booming right now, that is a really strong statement.Sorcim
C
12

Semi-disclaimer: I am one of current developers of Batteries Included.

It hasn't seen a great deal of uptake yet so far as I know. I haven't seen any packages released that depend on it. However, that alone shouldn't stop you from using it. Hopefully it will gain some traction as it continues to mature. I personally use it for all of my new OCaml development, both for personal projects and for my research work.

Expect to see it in a fair amount of flux for the duration of the 1.x cycle. We're committed to keeping the APIs backwards-compatible for all 1.x releases, but new things will be added and old modules/functions likely deprecated. Much of it should be pretty stable, although we are still finding and fixing bugs. That will be greatly aided, though, by having more people use it and report the bugs we haven't seen yet.

We hope that the 2.0 release will be much more static and have a greater degree of consistency between modules, but 2.0 is likely a ways off.

My advice would be: if you would use Extlib, use Batteries. It has absorbed Extlib's feature set (indeed, most of its code), and fleshes it out quite a bit. If you find bugs, please report them :).

Conservatism answered 23/7, 2010 at 0:35 Comment(1)
Cheers, great answer. That is good enough from my point of view, so I'll be using it.Archuleta
S
9

Well, I personally recommend OCaml Batteries Included. Of course, it just happens so that I'm the original author :)

The use is not widespread yet, but it's now part of Debian/testing and Ubuntu Lucid Lynx, in addition to GODI, so you can expect a number of people to test it for bugs.

Solvable answered 22/7, 2010 at 13:26 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.