From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@sympa.inria.fr Delivered-To: caml-list@sympa.inria.fr Received: from mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) by sympa.inria.fr (Postfix) with ESMTPS id 061707FE36 for ; Thu, 30 Jun 2016 13:50:16 +0200 (CEST) IronPort-PHdr: 9a23:LTPfvxJtcTEc+TueMNmcpTZWNBhigK39O0sv0rFitYgUIv3xwZ3uMQTl6Ol3ixeRBMOAuqoC0rWd7/iocFdDyK7JiGoFfp1IWk1NouQttCtkPvS4D1bmJuXhdS0wEZcKflZk+3amLRodQ56mNBXsq3G/pQQfBg/4fVIsYL+kQsiL0I/rj6ibwN76W01wnj2zYLd/fl2djD76kY0ou7ZkMbs70RDTo3FFKKx8zGJsIk+PzV6nvp/jtLYqySlbuuog+shcSu26Ov1gFf0LRAghZkw47cujiRnESBOU4X1UBmkbmxxTAwXf8BH9W4/qtS3Sue902S3cNsrzG+MaQzOnuohmUhOgszsAMyY8+WfRwphxiqxciB2svRA62JLTZJmQPfx4OK/QK4BJDVFdV9pcAnQSSri3aJECWq9YZb5V Authentication-Results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=info@gerd-stolpmann.de; spf=None smtp.mailfrom=info@gerd-stolpmann.de; spf=None smtp.helo=postmaster@mout.kundenserver.de Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of info@gerd-stolpmann.de) identity=pra; client-ip=212.227.17.13; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="info@gerd-stolpmann.de"; x-sender="info@gerd-stolpmann.de"; x-conformance=sidf_compatible Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of info@gerd-stolpmann.de) identity=mailfrom; client-ip=212.227.17.13; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="info@gerd-stolpmann.de"; x-sender="info@gerd-stolpmann.de"; x-conformance=sidf_compatible Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of postmaster@mout.kundenserver.de) identity=helo; client-ip=212.227.17.13; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="info@gerd-stolpmann.de"; x-sender="postmaster@mout.kundenserver.de"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0CxAAA3B3VXhw0R49RahBR9uz4XC4V1AoE5OxEBAQEBAQEBAREBAQEIDQkJIS+CMoIbAQEEIzIkEAtCAgJXBhMJC4ggAQmyYoMIjRUBAQEBBgIBFg6FMIRCgQOEHDCCPQstE4JHBYgXhWiLDIE3Aoo7gk2BaheHRgQjhTyQBTSCKBELgU5sAYgDgUQBAQE X-IPAS-Result: A0CxAAA3B3VXhw0R49RahBR9uz4XC4V1AoE5OxEBAQEBAQEBAREBAQEIDQkJIS+CMoIbAQEEIzIkEAtCAgJXBhMJC4ggAQmyYoMIjRUBAQEBBgIBFg6FMIRCgQOEHDCCPQstE4JHBYgXhWiLDIE3Aoo7gk2BaheHRgQjhTyQBTSCKBELgU5sAYgDgUQBAQE X-IronPort-AV: E=Sophos;i="5.26,551,1459807200"; d="asc'?scan'208";a="183314975" Received: from mout.kundenserver.de ([212.227.17.13]) by mail3-smtp-sop.national.inria.fr with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 30 Jun 2016 13:49:40 +0200 Received: from office1.lan.sumadev.de ([188.107.37.72]) by mrelayeu.kundenserver.de (mreue104) with ESMTPSA (Nemesis) id 0LZwFx-1bjzDT3K61-00lkFs; Thu, 30 Jun 2016 13:49:38 +0200 Received: from [192.168.65.10] (unknown [192.168.65.10]) by office1.lan.sumadev.de (Postfix) with ESMTPSA id 0FC9FDC05D; Thu, 30 Jun 2016 13:49:38 +0200 (CEST) Message-ID: <1467287373.6080.84.camel@e130.lan.sumadev.de> From: Gerd Stolpmann To: Dean Thompson Cc: "caml-list@inria.fr" Date: Thu, 30 Jun 2016 13:49:33 +0200 In-Reply-To: References: Content-Type: multipart/signed; micalg="pgp-sha1"; protocol="application/pgp-signature"; boundary="=-9YXkLNWGcYos3pcGxEkg" X-Mailer: Evolution 3.10.4-0ubuntu2 Mime-Version: 1.0 X-Provags-ID: V03:K0:k9v1hZwYf38nGL5WqR1C0H2+Z8Jer6Z0oBCO0OAM9wkYcCH9sWh aJ2lU8gBS/O3Rni9rYWHMt0rA+6o1KbV8zJ41UdVZUokF/PmE9BwCV8C7BEapbdqMYYKydC Sag07bYaiSzjl8XksUWWk2f6Q4C+3zv8EsoDD6mLjZrzHTa5qRIvP/7k6woNfL2Z7x85bJg hfUIXBO04vFrKmcXM4RPQ== X-UI-Out-Filterresults: notjunk:1;V01:K0:s/M2AvQCuiQ=:AkWATEv6m9+jDsENwdGtKy ivA/jf7r/cSeWGWHHnDd6+IoAWjd510Futim1rSb/u8bjqB0gb8ZBaHk0CrTFYVF8VdyyEeSQ bWwFOJ+SeSvVV09gPKtgBu1phps+h3IMMJtDShJfA5642mW/rIobPwLvAffADIX9ElunAgqGJ NHu+n98s9Rsse+ZsrJcH37DmodbM681ZwXEqkNhNFI8I3rLbR1VlfETznEPyTSejeumRRY+i8 f2FosmWxGPJAooHrLU2VtJxCmRUA/SuBwsVCLXCu2l8AoiK4wRwyMZKPOIfycOXiomxU5t5dL FTgayC/IcV/XHx1VZ+B5fY8iakQRPjYEab5YIR3433Ca6Jl5FW25ZMuLxIwwRgE1kfdbU+NBA //2LQQ3Txm5LK11TNITR+Z0LkVL0kfepaxhUfYQilcLUUGIP1sslFdCLF1PjU5I9jx4arXl9B YUShNFpf/ozahN7zYDbVbIjmHuiLmL0Bpg6Yn8zLlYyJinU/EshCVANnS93rwK5yKJUnoNSSM wFmgpwLZMPsTCjBl+a57sWDbWkjzQWSsNSmVmPkHoq/7CWFFkU2Sd1n58p3sI/rMNBPOVCJgh 646zWOynDa524Kynwp7k/6d7QVJSjSsi6GSU3vvY6AGP6lQ1pU3wV+mQJiKhf7FXGhrxekDM8 PJX7Y7YgokJ7l+bovetbeUJ0aTYWprP4QlhftG/ZonKolLNNma7UQlJn7/lxe6hLQ+nM= Subject: Re: [Caml-list] how to encourage adoption of OCaml? --=-9YXkLNWGcYos3pcGxEkg Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable 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 1= 5 years primarily in Java, I decided I needed a new =E2=80=9Chome=E2=80=9D = programming language. I then spent a frustrating few years studying what=E2= =80=99s out there. I have felt like a man without a country. I developed fa= irly 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. >=20 > I have converged on OCaml. It is a beautiful language and a highly practi= cal 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 s= mart, friendly, and engaged. Some amazing technology is available or work-i= n-progress (such as js_of_ocaml and Mirage). >=20 > But this feels like a fragile new home unless we can build a bigger commu= nity! For one thing, if our community shrinks much, it may no longer be via= ble. Also, while I love 1,000 packages on opam, I want 100,000! >=20 > As a newcomer to the community, I have to say that there are daunting bar= riers to a potential new user considering OCaml for a new project. If you l= ike 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 yo= u try to move from RWO to, well, using OCaml in the real world, you discove= r that there is no consensus on Core as a standard library, and that Camlp4= is deprecated. >=20 > It appears to me that if, instead, you come to OCaml as a potential new u= ser 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 consensu= s on standard library comes up pretty quickly. I=E2=80=99m more of a langua= ge manual guy than a tutorial guy, so I quickly notice that, although the O= Caml language manual is well written, has a lovely introductory flow, and h= as great examples, it fairly quickly gets into terse description of languag= e constructs while providing limited help to a beginner in developing intui= tion for the language as a whole and how best to use it. >=20 > This is one man=E2=80=99s experience and one man=E2=80=99s opinions. Do o= thers on this list feel the ramp to OCaml adoption is smoother than my impr= ession suggests? Who here is excited about making OCaml approachable to new= comers? Where is the main ongoing work on this? Who are the main leaders fr= om this perspective? >=20 > Dean > -------- > Dean Thompson > http://www.linkedin.com/in/deansthompson/ >=20 >=20 --=20 ------------------------------------------------------------ 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 ------------------------------------------------------------ --=-9YXkLNWGcYos3pcGxEkg Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQEcBAABAgAGBQJXdQdNAAoJEAaM4b9ZLB5ToyYIAJH3ApIZw4K1bPr3lcAfbbOQ 2kD5k+Jv0bWAIpxHDWrXzkztuvccDdpkbUZHkswHr/2efVgzmwDom5nOaDevZcH2 sfILg09Lm99VnxBRuJP6dxXnR9DO9voI6jwlyMZif6KK/zvimy7MxPHctvVkhhWI Rx7ahEup99GDKuVNne2LzD+uGJJO+A2kkj5W9GCt/okbAMDLMw8zQy2iWK+hbWwy 2SI3Th97yAzt0K1si0ZPE+A2JaUVvKI9lc/DEdrtg1Gb4XrFvsAmkevD/O2rGFPL /6drop7ygQaoGUmMcuW9CyVm73FYjYUJ60hjS13Rkv2dJmwAY9A1JA6tpRriTqY= =ZVxp -----END PGP SIGNATURE----- --=-9YXkLNWGcYos3pcGxEkg--