[Teaching] Asking teachers: what support would you want to distribute OCaml to students ?

Louis Gesbert louis.gesbert at ocamlpro.com
Thu Nov 27 08:14:46 GMT 2014

Thanks all for the extensive and fast feedback. I'll try to summarise:

# Support

There is basically no problem on Linux / OSX, but the situation is still quite bad on Windows.
Having a good installer for a working basic OPAM installation would solve the situation, but before we get there, distributing VMs is our best bet. It'd be interesting to take the opportunity to point out what is lacking at the moment in the current distributions (besides OPAM) though [1][2].

Web support: there are fine things going on there ; but that can't cover all use-cases. Since these are by definition easily available online, I think there is little point in bundling them in the box -- let's keep them a different topic ; generating a web environment including a set of OPAM libraries would be an interesting project, though.

So let's restart opam-in-a-box ; I'll attempt to have the editor configuration etc. based on OPAM rather than specific tools or shell scripts, so that it's reusable.

# Libraries

Some libraries and tools like menhir, pa_ounit, qcheck that can be easily installed with OPAM or bundled are common requirements.

What's cruelly lacking, it seems, is a good, portable library for dealing with graphics, and possibly sound and input. I'll try to put together a list of candidates and discuss possibilities for improvement on a different thread.

We could easily choose a custom compiler as well, for example to include Arthur Charguéraud's improved type errors [3]

# Documentation

This should be solved with the upcoming opam-doc release. Including pre-generated HTML doc of the modules included in the bundle would be a plus.

# Tools

* Build system seems not to be too big of a problem for student-sized projects.

* Editors: the situation is quite fragmented with no clear winner.

    - Generic editors: emacs, vim, eclipse, gedit, sublime.
        We may include text-mode emacs and vim in the VM, but in general, that'd be too big (or even not allowed by the license for sublime). What we need to provide is good OCaml configuration straight out of the box for all of them though.

    - Dedicated editors: there seems to be some demand for them, but no satisfactory candidates. The following should work well even on Windows:
        (i) ocaml-top [4]: very basic GTK interface with a clean Windows installer, one-file editor with good OCaml support coupled with a top-level interface. I wrote this so I could improve on it if there is demand for it (e.g. add multi-file project management).
        (ii) ocamleditor [5]: a feature-full GTK IDE. Not sure how nice it is to use, but it looks a bit like Eclipse, has completion, documentation, module browser... Also includes its own basic build system. Not sure how it handles the toplevel.
        Has anyone tried them, or any other candidates ?

  The major work to do here is, I think, to handle a good setup for all above generic editors. By which I mean ocp-indent, merlin, coloration, etc. Otherwise, the issue is just deciding what editors to include.

So I'll get started on finding the best way to bundle editors setup ; and finding a good and customisable way to generate VM images.

Louis Gesbert

[1] http://protz.github.io/ocaml-installer/
[2] http://typerex.ocamlpro.com/ocpwin.html
[3] http://www.chargueraud.org/teach/ocaml/
[4] http://typerex.ocamlpro.com/ocaml-top.html
[5] http://ocamleditor.forge.ocamlcore.org/

More information about the Teaching mailing list