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 mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by sympa.inria.fr (Postfix) with ESMTPS id 670BC82355 for ; Mon, 18 Dec 2017 18:27:24 +0100 (CET) Authentication-Results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=gary.trakhman@gmail.com; spf=Pass smtp.mailfrom=gary.trakhman@gmail.com; spf=None smtp.helo=postmaster@mail-wm0-f42.google.com Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of gary.trakhman@gmail.com) identity=pra; client-ip=74.125.82.42; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="gary.trakhman@gmail.com"; x-sender="gary.trakhman@gmail.com"; x-conformance=sidf_compatible Received-SPF: Pass (mail2-smtp-roc.national.inria.fr: domain of gary.trakhman@gmail.com designates 74.125.82.42 as permitted sender) identity=mailfrom; client-ip=74.125.82.42; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="gary.trakhman@gmail.com"; x-sender="gary.trakhman@gmail.com"; x-conformance=sidf_compatible; x-record-type="v=spf1" Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of postmaster@mail-wm0-f42.google.com) identity=helo; client-ip=74.125.82.42; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="gary.trakhman@gmail.com"; x-sender="postmaster@mail-wm0-f42.google.com"; x-conformance=sidf_compatible IronPort-PHdr: =?us-ascii?q?9a23=3AGpM4bRaLfbe1CJigSqRlSmj/LSx+4OfEezUN459i?= =?us-ascii?q?sYplN5qZoMSybnLW6fgltlLVR4KTs6sC17KP9fi4EUU7or+5+EgYd5JNUxJXwe?= =?us-ascii?q?43pCcHRPC/NEvgMfTxZDY7FskRHHVs/nW8LFQHUJ2mPw6arXK99yMdFQviPgRp?= =?us-ascii?q?OOv1BpTSj8Oq3Oyu5pHfeQpFiCagbb9oMBm6sRjau9ULj4dlNqs/0AbCrGFSe+?= =?us-ascii?q?RRy2NoJFaTkAj568yt4pNt8Dletuw4+cJYXqr0Y6o3TbpDDDQ7KG81/9HktQPC?= =?us-ascii?q?TQSU+HQRVHgdnwdSDAjE6BH6WYrxsjf/u+Fg1iSWIdH6QLYpUjm58axlVAHnhz?= =?us-ascii?q?sGNz4h8WHYlMpwjL5AoBm8oxBz2pPYbJ2JOPZ7eK7WYNEUSndbXstJWCNBDIGz?= =?us-ascii?q?YYsBAeQCIOhWsZXyqkAUoheiHwShHv/jxiNKi3LwwKY00/4hEQbD3AE4HtwBqm?= =?us-ascii?q?7UrdXoP6kMS+C61qrIzTXGb/xM3zf29Y/Fch87rvGWXbN8a9bRyVM1GAPGjlWQ?= =?us-ascii?q?rJbqPzWO2+QCtmiU9etgVea1h2E7rAFxpyGiy8ExgYfKnoIY0lLJ+CpjzIooO9?= =?us-ascii?q?G1SFR3bN26HJdKuCyWKY17Sd44TW5yoiY10LgGtIa7fCcUzJQnwAbSa/mdfIiJ?= =?us-ascii?q?5hLvTeiQITJkiH58drKyiAi+/VKvyu37Ucm031JKoTRfntbQsXAN0gTf6smBSv?= =?us-ascii?q?Rj4keswTSC2g/J5u1ZP0w5lbDXJp0/zrIqmZcfr1zPHirsl0X3iK+WeF8k+u+t?= =?us-ascii?q?6+n/bbXpvIWcNo9uhgHiKKQhgM+/AeQ9MgcUWWiW4uu81Lj58k34RLVGlOE5kq?= =?us-ascii?q?7csJzCP8QUura5AxNJ0oYk8xuwEy2p0NEcnXUeKFJFeQmHj5TyNlHVIPH4CO+/?= =?us-ascii?q?jE62nDdqwfDGJLzhDY/XInjNireyNYp6vmxR0xI+15h74I9VEfkoJv7+QFT8sp?= =?us-ascii?q?SMDBIiKwGuheLgFdRmkIoYVW+VGaKfGKzXuF6MoOkoJr/fSpUSvWPSIuI0r8L0?= =?us-ascii?q?hHw5nFYbNf2m1IEGLmyiF/dmJkyfSXXpi9YFV2wNu1xtH6TRlFSeXGsLND6JVK?= =?us-ascii?q?Um62R+Udr+AA=3D=3D?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0AdAQAM+jdafypSfUpcHAEBAQQBAQoBA?= =?us-ascii?q?YUYFBOEBoE2l3OCAJFRh2UKhTsChQdDFAEBAQEBAQEBAQESAQEJCwsIJjGCOCQ?= =?us-ascii?q?BgkYBAQEDASMdARsRDAEDAQsGBQsNKgICIQEBEQEFARwGExQFiXgBAw0InWNAj?= =?us-ascii?q?BCCBQUBHIMLBYNaChknDVmCTQEBAQEBBQEBAQEBAQEZAgYSg1yCDoFWgWmCHoE?= =?us-ascii?q?OgmpFhQOCYwWKapgVPYI7jXOEfpNzjVmJCxQkgRc2gXFMI1EygXeCRIISQTcBi?= =?us-ascii?q?hYBAQE?= X-IPAS-Result: =?us-ascii?q?A0AdAQAM+jdafypSfUpcHAEBAQQBAQoBAYUYFBOEBoE2l3O?= =?us-ascii?q?CAJFRh2UKhTsChQdDFAEBAQEBAQEBAQESAQEJCwsIJjGCOCQBgkYBAQEDASMdA?= =?us-ascii?q?RsRDAEDAQsGBQsNKgICIQEBEQEFARwGExQFiXgBAw0InWNAjBCCBQUBHIMLBYN?= =?us-ascii?q?aChknDVmCTQEBAQEBBQEBAQEBAQEZAgYSg1yCDoFWgWmCHoEOgmpFhQOCYwWKa?= =?us-ascii?q?pgVPYI7jXOEfpNzjVmJCxQkgRc2gXFMI1EygXeCRIISQTcBihYBAQE?= X-IronPort-AV: E=Sophos;i="5.45,422,1508796000"; d="scan'208,217";a="306006935" Received: from mail-wm0-f42.google.com ([74.125.82.42]) by mail2-smtp-roc.national.inria.fr with ESMTP/TLS/AES128-GCM-SHA256; 18 Dec 2017 18:27:22 +0100 Received: by mail-wm0-f42.google.com with SMTP id r78so30551923wme.5 for ; Mon, 18 Dec 2017 09:27:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=Sf0rFKXeQ5eJAoOVOXUHOmUW1vptyrdI77z8NwYgenU=; b=BbNmQj/e8pPhZ03dV+czuYdoYSo16y/BrfUj8ZaDfAEkGbAY8p6DIG9QzQN92duEhB NAzIJnZ/6uAgvIH2XcYFYFcpxeaGGxgpesmJXVFsgKxQ1NPIeO2tMN5Ak87uU7/5GIPL n9qhBGFWE3mJfWxBuQ74zDgACTlMFGuI5nbq5Q7kDLm/dI97Kp6UfZ84OXHwY81qvbrZ NtkM2x4Ctqv+fy+SrBJr96ve6AhrYr9pM2HgGta2l+z/S3hu/jHUkllalxJDm8TVpCVe +Vev1691ktsYgYEj68IUrZ13hqVUK4QZWjA1Fjc80lJRhVXNWw4ty6GGYuQKo2AOdCZ4 J7uw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=Sf0rFKXeQ5eJAoOVOXUHOmUW1vptyrdI77z8NwYgenU=; b=NX52jUd/D8PkNmMiIsZt61QN0qbMoIb6EhXlS9AWeaYjCcpuwWHO85cpW0j0w28JQ/ 5PAbxHtlcIQnhQYGqt4b4HWkofpZXbyEZXmsxLrR+cv3yuDVI/ZR6tcXTWXqhqZYPjSi 5ompfPX2HtE/7/j9Cyf/a+OfdwAGepJYNRKJj1QGLSF0p/UUz9PnkCmENXSSFhvaLILl b12gVMg/IUPJfjbYOO+rcoNZ7pFAi42xALf/nc95FFqH9tTABvlxASHu0iOd6h8rFsD6 W9aOPVkJONjBqoakORgmdPpbr+GlgyuVw6jiJH8f33F0+kZsQJbzGi4icz2iatvq9bSp UWtA== X-Gm-Message-State: AKGB3mIoJxYpoXZd5iat2ImtN7SLfpz7MLjjiFO7jK33ntTvBAyjrExX +sjEe2EyRoVDcP1Pt3njFOiM3VCdtKRnzzSrqzs= X-Google-Smtp-Source: ACJfBouZSYmomvqtLGRjvsYTKU727QTLfn556IYIDGWzLFnBCrZ6Z2Ll8/oxc987OlRSEohhe3iJBVc4XBNOMyc+D1I= X-Received: by 10.28.14.141 with SMTP id 135mr515344wmo.104.1513618042383; Mon, 18 Dec 2017 09:27:22 -0800 (PST) MIME-Version: 1.0 References: <20171211095444.75abacda@zinid.ru> <20171217201356.djjygim6oelagvt6@matica.foolinux.mooo.com> <20171218193605.05d83846@zinid.ru> In-Reply-To: From: Gary Trakhman Date: Mon, 18 Dec 2017 17:27:11 +0000 Message-ID: To: Jesper Louis Andersen Cc: Evgeny Khramtsov , caml-list@inria.fr Content-Type: multipart/alternative; boundary="001a114446f8be1f370560a0a9a5" Subject: Re: [Caml-list] ReasonML concrete syntax --001a114446f8be1f370560a0a9a5 Content-Type: text/plain; charset="UTF-8" Being an experienced clojure/lisp expatriat, it's easy to not get too attached to syntax, since few see the value of the one I like the most. Ocaml syntax was pretty strange, but the mental model of the code itself was not that different from what I was doing before. Reason looks like another half day or so of learning. I see these as fixed costs. It's usually in the language community's interest to lower the barrier to entry because it increases the chance of a future contribution. I don't really see how an additional syntax can threaten or take away from ocaml in the large. And my personal opinion is, 'whatever, it's just syntax'. The repetitive things should be easy and small and the weird occasional stuff can be weird. Tuples fall into the bucket of things I don't usually want to use, so making a notation sacrifice there seems relatively fine. In fact, I'm pretty annoyed by semicolon separators in lists/arrays and the general leading-semicolon style, since no other language does it that way. Why shouldn't the more common use-case be 'terser'? Bare tuples are confusing like that. I guess when I see a bikeshedding flame war like this, I just wonder what other silent bystanders like me think, who are happy to be using an expressive, type-safe language like ocaml (hey, it's not java) but not specifically attached to any implementation detail. I think it's pretty interesting what the Reason team is doing with cross-syntax compilers, since having great AST-level tooling makes writing editor tooling and ultimately end user code much easier, and that addresses recurring costs that I face day to day at work more than any syntax does. On Mon, Dec 18, 2017 at 12:01 PM Jesper Louis Andersen < jesper.louis.andersen@gmail.com> wrote: > On Mon, Dec 18, 2017 at 5:43 PM Evgeny Khramtsov > wrote: > >> >> There is a very similar story: Erlang and Elixir. If somebody doesn't >> know: Elixir runs in Erlang VM (BEAM) and has Ruby-like syntax (Erlang, >> on its turn, has obscure for many Prolog-like syntax). No doubt, Elixir >> became more popular than Erlang (at least, judging by Github stars), >> but still not popular enough (below top20 in any language charts). I >> think this is because it's still functional language and this distracts >> many. Furthermore, such separation splitted the community into two >> camps, writing the same tools/programs, but only in different languages. >> What's worse, now all job offers contain Erlang/Elixir requirement >> (which makes no sense to me, frankly). >> >> > FWIW, I think the Erlang community is greatly benefiting from the Elixir > community and vice versa. I'd hope the same thing happens with ReasonML and > OCaml. > > Elixir got a pretty firm ground to stand on since you have many years of > (industrial) backing in the Erlang ecosystem. But a lot of the better > improvements in the quality-of-life of a programmer is a direct result of > Elixir's core team wanting to improve notation, error reporting and so on > for the developer. These changes are definitely improving Erlang as well. > > I think it is wrong to see these things as "wars". People, when > programming, are subjective and prefer different notations. I've always > been partial to statically typed ML languages such as OCaml and Standard > ML, and I find their notation more clear than e.g., the Erlang or Haskell > notation[0]. But judging by people in general, '{' / '}' bracketed notation > stemming from a language such a C looks to be extremely popular and familar > to people. To the point where "Erlang syntax is ugly", in which as much is > misunderstood about its semantics as are its syntax. > > The key point is that you have a large group of programmers, mostly > Javascript, Python or Ruby people, who would never ever pick up Erlang due > to its syntax. But they'll gladly pick Elixir as their core language. All > we have to teach them is proper error handling Erlang/OTP style and they'll > easily give back to the community at large. If there are a good argument > for diversity in an ecosystem, this is really it. > > [0] I may be "Erlang user of the year, 2017", and have many years of > Erlang experience, but I've always lamented that the language has no static > type system. > --001a114446f8be1f370560a0a9a5 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Being an experienced clojure/lisp expatriat, it's easy= to not get too attached to syntax, since few see the value of the one I li= ke the most.=C2=A0 Ocaml syntax was pretty strange, but the mental model of= the code itself was not that different from what I was doing before.=C2=A0= Reason looks like another half day or so of learning.=C2=A0 I see these as= fixed costs.=C2=A0 It's usually in the language community's intere= st to lower the barrier to entry because it increases the chance of a futur= e contribution.=C2=A0 I don't really see how an additional syntax can t= hreaten or take away from ocaml in the large.=C2=A0 And my personal opinion= is, 'whatever, it's just syntax'.=C2=A0 The repetitive things = should be easy and small and the weird occasional stuff can be weird.=C2=A0= Tuples fall into the bucket of things I don't usually want to use, so = making a notation sacrifice there seems relatively fine.=C2=A0 In fact, I&#= 39;m pretty annoyed by semicolon separators in lists/arrays and the general= leading-semicolon style, since no other language does it that way.=C2=A0 = Why shouldn't the more common use-case be 'terser'? Bare tuples= are confusing like that.

I guess when I see a bikeshedding flame wa= r like this, I just wonder what other silent bystanders like me think, who = are happy to be using an expressive, type-safe language like ocaml (hey, it= 's not java) but not specifically attached to any implementation detail= .=C2=A0 I think it's pretty interesting what the Reason team is doing w= ith cross-syntax compilers, since having great AST-level tooling makes writ= ing editor tooling and ultimately end user code much easier, and that addr= esses recurring costs that I face day to day at work more than any syntax d= oes.

On Mon, Dec 1= 8, 2017 at 12:01 PM Jesper Louis Andersen <jesper.louis.andersen@gmail.com> wrote:
On Mon, Dec 18, 2017 at = 5:43 PM Evgeny Khramtsov <xramtsov@gmail.com> wrote:

There is a very similar story: Erlang and Elixir. If somebody doesn't know: Elixir runs in Erlang VM (BEAM) and has Ruby-like syntax (Erlang,
on its turn, has obscure for many Prolog-like syntax). No doubt, Elixir
became more popular than Erlang (at least, judging by Github stars),
but still not popular enough (below top20 in any language charts). I
think this is because it's still functional language and this distracts=
many. Furthermore, such separation splitted the community into two
camps, writing the same tools/programs, but only in different languages.
What's worse, now all job offers contain Erlang/Elixir requirement
(which makes no sense to me, frankly).


FWIW, I think the Erlang community is greatly benefiting from = the Elixir community and vice versa. I'd hope the same thing happens wi= th ReasonML and OCaml.

Elixir got a pretty firm ground to stand on since you have= many years of (industrial) backing in the Erlang ecosystem. But a lot of t= he better improvements in the quality-of-life of a programmer is a direct r= esult of Elixir's core team wanting to improve notation, error reportin= g and so on for the developer. These changes are definitely improving Erlan= g as well.

I think it is wrong to see these things as "wars". People, w= hen programming, are subjective and prefer different notations. I've al= ways been partial to statically typed ML languages such as OCaml and Standa= rd ML, and I find their notation more clear than e.g., the Erlang or Haskel= l notation[0]. But judging by people in general, '{' / '}' = bracketed notation stemming from a language such a C looks to be extremely = popular and familar to people. To the point where "Erlang syntax is ug= ly", in which as much is misunderstood about its semantics as are its = syntax.

The key point is that you have a large group of programmers, mostly Javas= cript, Python or Ruby people, who would never ever pick up Erlang due to it= s syntax. But they'll gladly pick Elixir as their core language. All we= have to teach them is proper error handling Erlang/OTP style and they'= ll easily give back to the community at large. If there are a good argument= for diversity in an ecosystem, this is really it.

[0] I may be "Erlang user= of the year, 2017", and have many years of Erlang experience, but I&#= 39;ve always lamented that the language has no static type system.
--001a114446f8be1f370560a0a9a5--