caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Gerd Stolpmann <info@gerd-stolpmann.de>
To: Dean Thompson <deansherthompson@gmail.com>
Cc: "caml-list@inria.fr" <caml-list@inria.fr>
Subject: Re: [Caml-list] how to encourage adoption of OCaml?
Date: Thu, 30 Jun 2016 13:49:33 +0200	[thread overview]
Message-ID: <1467287373.6080.84.camel@e130.lan.sumadev.de> (raw)
In-Reply-To: <F22920FE-D730-4057-B6AD-3B31916C2518@gmail.com>

[-- Attachment #1: Type: text/plain, Size: 5134 bytes --]

Dean,

it is great to see that OCaml is again seen as attractive. This is
fairly different now than, say, 10 years back, when OCaml had a really
hard time (academic projects were finished, and it was unclear whether
other users could be found). At that time, this home was really fragile,
short before collapsing. Fortunately, this did not happen, and now there
is a supporting community, small but to large parts brilliant.

In some sense, there is now the problem of too much choice. You say
you'd like to see 100000 packages. Actually, I'm fearing such a
situation - picking up a common metaphor it would mean there are lots of
wheels which are incompatible to each other. That's not only the choice
of standard library, but also other important base libraries like for
asynchronous networking. I'm not against choice of implementation, but
this small community should definitely do more to avoid unnecessary
fragmentation. Jeremy Yallop kind of answered this for the standard
library: the one coming with the compiler should be the one establishing
base types (like result) so that other libraries can pick that up and
remain compatible on this level. Libraries like Core would then be pure
add-ons.

Fortunately, OCaml added some features that could turn out as very
helpful in that respect. In particular first-class modules help here:
you can now pass modules around like values. I'm hoping that this is
picked up to make currently incompatible implementations again
interoperable on a fundamental level (e.g. Async and Lwt could agree on
a common module type for the core features so that users can run Lwt
with Async's core and vice versa). This gives users additional freedom,
and they are not faced with the question whether they should either go
to Lwt-land or Async-land.

But anyway, I guess you are not yet at this point, and are enjoying
things that are working well. I recently got thrown into the muddy
waters of Scala, and while they are better organized it is feeling like
a dinosaur language. I definitely prefer OCaml's minimalism.

Gerd

Am Donnerstag, den 30.06.2016, 06:01 -0400 schrieb Dean Thompson:
> A few years ago, with over 30 years of programming experience including 15 years primarily in Java, I decided I needed a new “home” programming language. I then spent a frustrating few years studying what’s out there. I have felt like a man without a country. I developed fairly serious crushes on Scala and then on Haskell, but after a few serious dates with them I moved on. I have read deeply about many, many more.
> 
> I have converged on OCaml. It is a beautiful language and a highly practical functional language. Although infrastructure such as compilers, editor/IDE support, and libraries are on the minimal side, the essentials are all there and are lovingly maintained. Although the community is small, it is smart, friendly, and engaged. Some amazing technology is available or work-in-progress (such as js_of_ocaml and Mirage).
> 
> But this feels like a fragile new home unless we can build a bigger community! For one thing, if our community shrinks much, it may no longer be viable. Also, while I love 1,000 packages on opam, I want 100,000!
> 
> As a newcomer to the community, I have to say that there are daunting barriers to a potential new user considering OCaml for a new project. If you like starting on a new programming language with a book, as I do, you likely start with Real World OCaml. That book is very inspiring! But then when you try to move from RWO to, well, using OCaml in the real world, you discover that there is no consensus on Core as a standard library, and that Camlp4 is deprecated.
> 
> It appears to me that if, instead, you come to OCaml as a potential new user through ocaml.org, there are other barriers. It is hard for me to judge because I came through RWO, but it appears to me that the lack of consensus on standard library comes up pretty quickly. I’m more of a language manual guy than a tutorial guy, so I quickly notice that, although the OCaml language manual is well written, has a lovely introductory flow, and has great examples, it fairly quickly gets into terse description of language constructs while providing limited help to a beginner in developing intuition for the language as a whole and how best to use it.
> 
> This is one man’s experience and one man’s opinions. Do others on this list feel the ramp to OCaml adoption is smoother than my impression suggests? Who here is excited about making OCaml approachable to newcomers? Where is the main ongoing work on this? Who are the main leaders from this perspective?
> 
> Dean
> --------
> Dean Thompson
> http://www.linkedin.com/in/deansthompson/
> 
> 

-- 
------------------------------------------------------------
Gerd Stolpmann, Darmstadt, Germany    gerd@gerd-stolpmann.de
My OCaml site:          http://www.camlcity.org
Contact details:        http://www.camlcity.org/contact.html
Company homepage:       http://www.gerd-stolpmann.de
------------------------------------------------------------


[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 473 bytes --]

  parent reply	other threads:[~2016-06-30 11:50 UTC|newest]

Thread overview: 65+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-06-30 10:01 Dean Thompson
2016-06-30 10:16 ` Kakadu
2016-06-30 10:41   ` Dean Thompson
2016-06-30 10:46   ` Anil Madhavapeddy
2016-06-30 10:17 ` Jeremy Yallop
2016-06-30 10:31   ` Dean Thompson
2016-06-30 12:12     ` Yaron Minsky
2016-06-30 13:13       ` Ivan Gotovchits
2016-07-01  0:13         ` Yaron Minsky
2016-07-01  0:41           ` [Caml-list] Async and lwt Hendrik Boom
2016-07-01  1:26             ` Yaron Minsky
2016-07-01 12:44           ` [Caml-list] how to encourage adoption of OCaml? Dean Thompson
2016-07-01 12:46             ` Yaron Minsky
2016-07-04 14:12           ` sp
2016-06-30 11:49 ` Gerd Stolpmann [this message]
2016-07-04 14:45 ` sp
2016-07-08 12:57   ` Dean Thompson
2016-07-08 13:45     ` Francois Berenger
2016-07-08 14:40     ` Gabriel Scherer
2016-07-08 15:16       ` Duane Johnson
2016-07-08 15:33         ` Roberto Di Cosmo
2016-07-08 16:25           ` Yotam Barnoy
2016-07-08 16:50             ` Roberto Di Cosmo
2016-07-08 16:54         ` Mohamed Iguernlala
2016-07-08 17:02           ` Yotam Barnoy
2016-07-08 17:09             ` Yotam Barnoy
2016-07-08 17:29               ` Kakadu
2016-07-08 17:41                 ` Dean Thompson
2016-07-08 17:49                   ` Yotam Barnoy
2016-07-08 17:28             ` Duane Johnson
2016-07-09 13:46             ` Ashish Agarwal
2016-07-09 13:51               ` Gabriel Scherer
2016-07-09 14:13                 ` Dean Thompson
2016-07-09 17:29                   ` Duane Johnson
2016-07-10 14:03                     ` Gabriel Scherer
2016-07-10 14:25                       ` Yotam Barnoy
2016-07-10 14:29                         ` Jesse Haber-Kucharsky
2016-07-10 14:34                           ` Gabriel Scherer
2016-07-10 14:47                             ` Yotam Barnoy
2016-07-10 16:45                               ` Glen Mével
2016-07-10 16:59                                 ` Yotam Barnoy
2016-07-10 18:40                                   ` Yotam Barnoy
2016-07-10  3:06                 ` Yotam Barnoy
2016-07-10  2:32               ` Yotam Barnoy
2016-07-10 19:17                 ` Ashish Agarwal
2016-07-08 19:16         ` [Caml-list] Getting the word out Hendrik Boom
2016-07-08 20:51           ` moosotc
2016-07-08 22:48             ` Hendrik Boom
2016-07-08 20:57           ` Steven Shaw
2016-07-08 21:13             ` Duane Johnson
2016-07-08 22:54               ` Yotam Barnoy
2016-07-08 23:11                 ` Duane Johnson
2016-07-09 13:13                   ` Ashish Agarwal
2016-07-08 22:02           ` SP
2016-07-08 21:56         ` [Caml-list] how to encourage adoption of OCaml? SP
2016-07-08 22:18           ` Fabrice Le Fessant
2016-07-08 22:39             ` Duane Johnson
2016-07-08 23:00               ` Yotam Barnoy
2016-07-09 13:03             ` Armaël Guéneau
2016-07-09 13:42               ` Dean Thompson
2016-07-08 21:46       ` SP
2016-07-08 22:05         ` Robert Muller
2016-07-08 23:11           ` Gerd Stolpmann
2016-07-09  1:37             ` Markus Mottl
2016-07-09 22:19               ` Yaron Minsky

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1467287373.6080.84.camel@e130.lan.sumadev.de \
    --to=info@gerd-stolpmann.de \
    --cc=caml-list@inria.fr \
    --cc=deansherthompson@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).