From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail4-relais-sop.national.inria.fr (mail4-relais-sop.national.inria.fr [192.134.164.105]) by walapai.inria.fr (8.13.6/8.13.6) with ESMTP id pB6AaZW9025741 for ; Tue, 6 Dec 2011 11:36:35 +0100 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AqYBAG7v3U7RVdY2kGdsb2JhbABEmiyNNIJzCCIBAQEBCQkNBxQEIYFyAQEBAwESAiwBGxIMAwELBgULDQ0hIgERAQUBChIGARISAgYIh2UIl14Ki2SCa4UhPYhxAgUKg2iHQASUZo1sPYN4 X-IronPort-AV: E=Sophos;i="4.71,304,1320620400"; d="scan'208";a="122208512" Received: from mail-bw0-f54.google.com ([209.85.214.54]) by mail4-smtp-sop.national.inria.fr with ESMTP/TLS/RC4-SHA; 06 Dec 2011 11:36:17 +0100 Received: by bkat2 with SMTP id t2so12670335bka.27 for ; Tue, 06 Dec 2011 02:36:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :content-type:content-transfer-encoding; bh=Zk9G8WrvutR9bnth7q2siIRalT0noZYbGwIZ4GVWY+s=; b=uP5/vp7hLIlQtzi4ovIdQhRi5T1EgMklYoSlr/4GsHnmuNswEg8bKMfSHTEnk3d33I pLVGwhhym+Es1C/c4baDeg7SS65ijNDs7XnsI1W62V8NQzZr91O/wT/J3OknMpVAwl+C ZWeB/wRXh5sHccFEMh5OJ9ruutDngTsUBxWMk= Received: by 10.180.4.37 with SMTP id h5mr17015916wih.45.1323167776552; Tue, 06 Dec 2011 02:36:16 -0800 (PST) MIME-Version: 1.0 Received: by 10.227.43.4 with HTTP; Tue, 6 Dec 2011 02:35:55 -0800 (PST) In-Reply-To: <1B0D83BD-1902-4F7C-B3FB-B759122D6AB9@googlemail.com> References: <1B0D83BD-1902-4F7C-B3FB-B759122D6AB9@googlemail.com> From: Gabriel Scherer Date: Tue, 6 Dec 2011 11:35:55 +0100 Message-ID: To: Benedikt Meurer , caml users Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by walapai.inria.fr id pB6AaZW9025741 Subject: Re: [Caml-list] OCaml maintenance status / community fork I would like to comment on a tangential aspect of the rationale you gave: > Given that OCaml is such a nice language with a lot of useful frameworks available, > it is too sad to see it loosing ground just because of it's closed development process > and lack of time of the official team. I don't think OCaml "losing ground" can be just-because-explained by a closed development process. It's a fact that the OCaml community is generally less active than other communities of comparable programming languages, the first example coming to mind being Haskell. It is interesting to discuss what we could/should do to get a comparably healthy community. I agree with the analysis that the OCaml language implementation is not as open as it could be, and I understand the idea that this probably had a detrimental effect on the "OCaml community" as a whole. But this is by no mean obvious (and difficult to objectively verify), and it is certainly not the only factor -- or even, I claim, the main factor -- to explain OCaml feeble community growth. There have been numerous "OCaml community meeting" discussing precisely these issues. I attended the 2008 meeting, and several aspects were discussed, including among others (1) the lack of openness of the compiler development (what you discuss here) (2) the apparent stagnation of the OCaml language itself (3) the lack of a comprehensive general-purpose set of software libraries that newcomers could just use as a standard starting point (4) the lack of visibility of user-contributed OCaml code, tools and libraries, or perceived difficulties to install and deploy such code (5) (related) the lack of communication of OCaml users about what they do You are singling out problem (1) as *the* problem with OCaml. I think this is more a reflect of your personal preferences (indeed, you are now a distinguished OCaml backend hacker) than a global analysis of the needs of the "OCaml community". I agree that (1) hasn't changed much since 2008; as you noted (at least from an external point of view), there are important human factors that make the situation difficult : not everyone can contribute to the compiler as there are both technical and social barriers to contribution. (2) has clearly turned to be wrong. I distinctly remember being surprised at that time by the announcement of 3.12's first-class module, and thinking when Xavier Leroy mentioned GADTs -- at the 2008 meeting -- that it would just never happen. (3) is currently being worked on by different people. The OCaml Batteries Included project as an ambitious goal to provide a community-built "distribution" of OCaml software in a coherent whole (the idea was later taken, and impressively performed, by the "Haskell Platform" effort). It has since restrained it ambitions to providing a superset of the libraries distributed with the compiler, as a wider "standard library". Jane Street Core's library similarly aims to provide a "bigger standard library", with in particular an impressive offering regarding the pervasive cross-module aspects such as marshalling / unmarshalling data and similar datatype-generic concerns. http://batteries.forge.ocamlcore.org/ http://ocaml.janestreet.com/?q=node/13 Using, contributing to or talking about those projects would also help OCaml not to "loose ground". I won't make any judgement on whether a more complete library is more or less useful that a change to the compiler toolchain, and it certainly is a different kind of work prone to interest different peoples. But it is also an important aspect of the OCaml ecosystem. I have irregularly contributed to the Batteries project, and I know for sure that the project is willing to accept any help on things to improve (in particular unit testing and documentation). Even, or especially, small one-shot contributions can help : three unit tests for a given function, a new tiny auxiliary function in such module, a bunch of typo fixes for the documentation... The problem (4), which is really a multi-faceted set of related problem, has also been tackled by different people with different projects. In particular, GODI and Oasis are both impressive efforts in the right direction, and I suspect both projects would benefit from contributions, eg. packaging existing libraries, reporting issues with either tool, communicating about them and disseminating exemple packages that other can look upon to reproduce for their own software. If think specific progress on (5) resulted from those meeting. There is now an OCaml Planet, which has interesting posts about OCaml from, for example, Matías Giovannini ( http://alaska-kamtchatka.blogspot.com/ ). Activity on the planet come and goes, but everyone can help by posting interesting stories that would be of interest to an OCaml audience, or targeted at non-ocaml people that may be interested in the language. As a starter, you could just suscribe to the planet, read the posts, and submit stimulating feedback to the writers. http://planet.ocamlcore.org/ Having a personal blog is not the only way to help disseminate information about OCaml. If you participate to news-aggregation sites such as Slashdot, Reddit or whatever, you should consider submitting OCaml-related content that could be of interest to the target audience, or participating in relevant discussions when appropriate. "Appropriate" is the key word here : quality should be favored over quantity, and I personally try not to get involved in negative discussions (in particular language flamewars: informed users of other programming languages are not enemies, even if they are frustratingly better at propaganda, have a nicer surface syntax, and indulge themselves into letting people think that "pure" necessarily means "better", hint hint :-). The OCaml community should have a public face to be proud of; it is currently gradually moving out of total silence. I'm not trying to say that your fork is a bad idea, not useful or anything. I have really no opinion; we'll see how things turn out. But I wouldn't want people to start thinking that "indeed, compiler development is the biggest problem with OCaml today, we need the great Xavier, Benedikt, Jun, Jacques, Alain, Fabrice... to sort things out", hiding or neglecting other issues that are not so delicate (on the human side) to handle, could easily benefit from efforts from everyone, and may have an equal or higher impact in the long term. Dear reader, if you wish to help OCaml strive as a language, there are a lot of different ways you can help. Improving the compiler toolchain may be one of them, but there are others that are also useful, important, lack manpower and have a lower barrier to entry. Consider how you could be involved according to your interests; I'm not talking about a huge, demanding personal investment from some key people, but lots of small contributions by anyone interested. A community is a collective effort. On Tue, Dec 6, 2011 at 9:25 AM, Benedikt Meurer wrote: > Dear caml-list, > > During the last year or two it seems that time and interest in OCaml maintenance from the official OCaml development team is diminishing. It takes several months to get a patch reviewed (if at all), which is quite frustrating for OCaml contributors and even worse for OCaml users. I suspect that this is one of the top reasons why there are only a few active contributors to OCaml (and the number of active users, at least on the mailing list, is declining). > > I understand that INRIA does not necessarily pay people for full time maintenance jobs on OCaml (and Coq), and the official dev team is probably already doing as much as possible to maintain OCaml. Given that OCaml is such a nice language with a lot of useful frameworks available, it is too sad to see it loosing ground just because of it's closed development process and lack of time of the official team. > > I'd therefore propose to open up OCaml development to a wider range of developers / contributors, to ensure that OCaml will be ready for the (functional programming) future. There are already various "OCaml forks" in the wild, with different goals and patch sets, so simply starting another fork would be rather useless. Instead I'd suggest to bundle efforts in a new "OCaml community fork", which is always based on the most recent upstream OCaml release (starting point would be 3.12.1 for now), and takes care to review and integrate pending patches as well as developing and testing new features. Let's say we'd name the fork "OCaml-ng", then we'd try to release a new patch set every month or two, based on the official OCaml release, i.e. "ocaml-3.12.1+ng201112" and so on, to get early testing and feedback (should work together closely with the Debian/Ubuntu/etc. OCaml maintainers). > > With this process, OCaml upstream could merge (tested) patches from OCaml-ng once they proved working in the wild, and thereby > > 1. maintenance overhead for INRIA people is reduced, > 2. maintenance status of OCaml would be way better, > 3. there would be a lot less frustration for possible contributors, and > 4. users benefit from a better and more up to date OCaml. > > Now that does of course raise a few questions: > > 1. What is the opinion of the official development team / INRIA on this? > 2. Who would help with the community fork? > 3. What about infrastructure? > > Feedback and suggestions are welcome. > > Benedikt > > -- > Caml-list mailing list.  Subscription management and archives: > https://sympa-roc.inria.fr/wws/info/caml-list > Beginner's list: http://groups.yahoo.com/group/ocaml_beginners > Bug reports: http://caml.inria.fr/bin/caml-bugs >