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

Fabrice Le Fessant Fabrice.Le_fessant at inria.fr
Thu Nov 27 09:03:17 GMT 2014


On Thu, Nov 27, 2014 at 9:14 AM, Louis Gesbert
<louis.gesbert at ocamlpro.com> wrote:
> 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].

Indeed, we have been working for some time on improving Windows
support in the OcpWin distribution
(http://www.typerex.org/ocpwin.html), and we are interested by any
feedback on it.
Documentation is probably what is lacking behind, although the Github
pages should provide more information:
https://github.com/OCamlPro/ocpwin-distrib/blob/master/Readme.md

> 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.

We haven't talked about it much, but there is also the ocp-webedit project:

http://edit.ocamlpro.com/

It is an online editor, with indentation and compilation. The version
on OCamlPro's server is the old version (bytecode compilation is done
in the browser, files are stored on OCamlPro's server, and there is
only support for Str, Unix and graphics libraries, with precompiled
runtimes for Linux, Mac and Windows), while the new version that was
done this summer by an intern is supposed to be installed on a
University's server, projects are stored there, and then compiled
remotely on this server, where OPAM can be used by the teacher to
choose the libraries available to students. We haven't had time to do
a proper release, but the code is available here:

https://github.com/OCamlPro/ocp-webedit

--Fabrice

On Thu, Nov 27, 2014 at 9:14 AM, Louis Gesbert
<louis.gesbert at ocamlpro.com> wrote:
> 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.
>
> Best,
> 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/
>



-- 
Fabrice LE FESSANT
Chercheur en Informatique
INRIA Paris Rocquencourt -- OCamlPro
Programming Languages and Distributed Systems


More information about the Teaching mailing list