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 1E9977FE44 for ; Fri, 8 Jul 2016 19:49:59 +0200 (CEST) IronPort-PHdr: 9a23:+kJHXxQ37tUYwhg72qbnIMJCJ9psv+yvbD5Q0YIujvd0So/mwa64bBSN2/xhgRfzUJnB7Loc0qyN4vimAjRLuM/b+Fk5M7V0HycfjssXmwFySOWkMmbcaMDQUiohAc5ZX0Vk9XzoeWJcGcL5ekGA6ibqtW1aJBzzOEJPK/jvHcaK1oLshrj0oMWYOlwSzBOGIppKZC2sqgvQssREyaBDEY0WjiXzn31TZu5NznlpL1/A1zz158O34YIxu38I46Fp34d6XK77Z6U1S6BDRHRjajhtpZ6jiR6WYQaG4DMgUmITigFPBUCR4BzzWIzxvzHmtu14wDKdO+X5SLk1XXKp6KI9GzHyjyJSBjkl+WSfoMVqiqVK6EawoAB2xoTdeoeSJdJxe6rceZURQm8XDZUZbDBIHo7pN9hHNOEGJ+sN6tCl/1Y= Authentication-Results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=yotambarnoy@gmail.com; spf=Pass smtp.mailfrom=yotambarnoy@gmail.com; spf=None smtp.helo=postmaster@mail-yw0-f174.google.com Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of yotambarnoy@gmail.com) identity=pra; client-ip=209.85.161.174; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="yotambarnoy@gmail.com"; x-sender="yotambarnoy@gmail.com"; x-conformance=sidf_compatible Received-SPF: Pass (mail3-smtp-sop.national.inria.fr: domain of yotambarnoy@gmail.com designates 209.85.161.174 as permitted sender) identity=mailfrom; client-ip=209.85.161.174; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="yotambarnoy@gmail.com"; x-sender="yotambarnoy@gmail.com"; x-conformance=sidf_compatible; x-record-type="v=spf1" Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of postmaster@mail-yw0-f174.google.com) identity=helo; client-ip=209.85.161.174; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="yotambarnoy@gmail.com"; x-sender="postmaster@mail-yw0-f174.google.com"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0BkAAC05n9Xhq6hVdFRCoQUfAamCZR/GoJHgzcCgSEHOxEBAQEBAQEBAREBAQEICwsJIS+CMoIbAQUSER0BGxEHBQEDDAYFCw0CAiYCAiEBAREBBQEcBhMUBweHcwEDF6EfgTE+MYs7gWqCWgWFcAoZJw1Sg0kBAQEHAQEBARsCBhBxhSaDSoEDgkOBViiDAYJaBY4Eilw0hgyGL4IUgWpOhAqIaogahjUSHoEPNII6gXMgMokyAQEB X-IPAS-Result: A0BkAAC05n9Xhq6hVdFRCoQUfAamCZR/GoJHgzcCgSEHOxEBAQEBAQEBAREBAQEICwsJIS+CMoIbAQUSER0BGxEHBQEDDAYFCw0CAiYCAiEBAREBBQEcBhMUBweHcwEDF6EfgTE+MYs7gWqCWgWFcAoZJw1Sg0kBAQEHAQEBARsCBhBxhSaDSoEDgkOBViiDAYJaBY4Eilw0hgyGL4IUgWpOhAqIaogahjUSHoEPNII6gXMgMokyAQEB X-IronPort-AV: E=Sophos;i="5.28,331,1464645600"; d="scan'208";a="184319213" Received: from mail-yw0-f174.google.com ([209.85.161.174]) by mail3-smtp-sop.national.inria.fr with ESMTP/TLS/AES128-GCM-SHA256; 08 Jul 2016 19:49:57 +0200 Received: by mail-yw0-f174.google.com with SMTP id j17so42744714ywg.0 for ; Fri, 08 Jul 2016 10:49:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=1F/XPgRleX4H4fIMH2d6JuSjxkq1idUlrFEqSY1z0NA=; b=HdDZZX0bFBm4yT7R9GGyD2e8ers2pMl4OjjNz6IC/FLJTbpudXIy8Oez1YtPEZm97y X9DwXCogb4jbJgp3nsOyBr5ixw3jEDkvVLJUOf/GGP+yDr5AXsdVv+jdgXRnitO0jAKZ kQc3dWsbgp/h35aKuc/gkYaWuX9Us9XcpxFrF9pZ3B6pDA9hpKrIFnP9J5HHBPn/MFq+ RqfKs1HBAHJ9nl6yHPUARbiPSEB7tPaPnUuvhq0uJWuI+WRCluPmDWiIqOIwHXs+EkOR lW+m9HvO+P5ZVt9Wb/rtV7Ns3GE/dbYfcMUQWARmpaCWjb3weMmA8maZLOjYP1LrS59f R5Xg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=1F/XPgRleX4H4fIMH2d6JuSjxkq1idUlrFEqSY1z0NA=; b=fzW+8s3oPgMSS+PAm+Q9hwlr7izYFy3I6PPvClAXcYPgt/EMUVHMwntDhNxOv6uXyE gy3XwaAkxvl6H0XNXK0VTqlPOf5wnuoePvjONwbLN+o576N7LcpO8Bk6FinXvDg1cXfL O/eEJgQlg1I9iOXwFGY1ZnziTxPRmK4sv94rfHhHJ0F438c/DMQIbDZJWMT4iXfUi3km I5igdo+udjw1vMad1R/+y4HsFT1TvMMgnWmci//UWYfzTRuo5kw0s5QMqmsRm8QHWf+2 BeFD+et2ZEP2n7qOHizmvaN/XlsvVfqIx5pP2dMh2StFKXUcTvaDUHDpazwTTO52aSmS ogRA== X-Gm-Message-State: ALyK8tIx6Oxww6YNY0vDumM24YOQGDQ0RSygl0ZmQk8M3TwmN+OSh18AsCQssT64Uwwx2T9MqrKMqlw8CBSHSA== X-Received: by 10.129.20.214 with SMTP id 205mr5387540ywu.161.1468000196872; Fri, 08 Jul 2016 10:49:56 -0700 (PDT) MIME-Version: 1.0 Received: by 10.37.115.66 with HTTP; Fri, 8 Jul 2016 10:49:37 -0700 (PDT) In-Reply-To: References: <20160704144512.GB2458@Razor> <577FDAE1.7080207@gmail.com> From: Yotam Barnoy Date: Fri, 8 Jul 2016 13:49:37 -0400 Message-ID: To: Dean Thompson Cc: "caml-list@inria.fr" Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Subject: Re: [Caml-list] how to encourage adoption of OCaml? Thank you so much for starting this discussion, Dean. I started reading this with my 'cynical glasses' on, and have disposed of them along the way. As one first step, it would be really nice to get more channels of discussion going, with faster iteration of ideas. We need to increase bandwidth so that even people who are not at the stage of commenting on PRs can contribute, and the best way I can think of for that is gitter.im channel(s). The keys are in the hands of those people who have github permissions to the OCaml organization. Could we please create an ocaml/ocaml gitter.im room, and perhaps an ocaml/ocamlbuild room as well? If it turns out to be an abject failure, we can always shut them down later. On Fri, Jul 8, 2016 at 1:41 PM, Dean Thompson wrote: > Great comments from lots of people. > > I am in the mobile app business, so I find myself thinking about this as a > conversion funnel: > > (1) Some number of people will hear enticing things about OCaml. So Gabri= el > Scherer=E2=80=99s point is important: > > The best thing I can think of is to communicate more and better, talk abo= ut > the cool world that is being done in the OCaml communities, and important= ly > talking about it outside it. Supporting software projects that have a > potential for impact outside the OCaml community is also key -- Coq, > MLdonkey, Coccinelle, Flow, the SLAM static verifier toolkit, just to nam= e a > few. > > > (2) Once someone realizes OCaml is enticing, they will poke around the web > to see what the community looks like. We want to maximize the percentage = who > decide the community looks solid enough for them to invest effort in > learning OCaml. So Duane Johnson=E2=80=99s point, for example, is importa= nt: > > In summary, all of the signals that I usually depend on to evaluate the > community around a technology are either weak or give me the impression of > =E2=80=9Cold and barely stable". > > > (3) Once someone decides the community is solid enough for their purposes, > they begin learning. We want to maximize the percentage who have sufficie= nt > positive experiences that they decide to persevere. So, for example, Gabr= iel > Scherer makes additional important points: > > Regarding usability, I think the tooling ecosystem is too complex today. = If > I wanted to bootstrap a beginner to do stuff I would have to tell them ab= out > the OCaml compiler tools (ocamlc, ocamlopt), ocamlfind, a build system (m= ake > or ocamlbuild for example), oasis, Merlin, opam, and get them to learn > either Vim or Emacs. > > > (4) Further along in the learning process, Hendrik Boom=E2=80=99s points = on an > earlier thread (for example) are important: > > That's the hurdle I face whenever I program in OCaml =E2=80=94 figuring o= ut which > libraries are usable, and which are actually documented. Not documented in > the sense that someone has written an API guide and a tutorial, but > documented in the sense that it is actually possible to find them. > > There are often multiple packages to accomplish a single task. You don't > know which one to use. > > > On the more encouraging side, we also have this from Gabriel Scherer on t= he > earlier thread: > > a large part of the problem is rather of the "death by thousand cuts" kin= d: > small things that add up to create an overall unpleasant experience. This > portion of the general problem is both too large for a single person to f= ix > (no one person can guess all use-cases), it is easily amenable to > crowd-fixing: reporting and/or fixing issues one at a time as you discover > them. > > > Is it possible we should be organizing ourselves to map the main flows of > the beginner experience, identify the most severe cuts along those flows, > and systematically address them? We could start with cheap solutions, like > FAQs, and work our way to engineering fixes. > > Dean