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 0261B7F168 for ; Thu, 27 Aug 2015 21:55:12 +0200 (CEST) IronPort-PHdr: 9a23:2HDW0hAUPHWClG99GZggUyQJP3N1i/DPJgcQr6AfoPdwSP7zocbcNUDSrc9gkEXOFd2CrakU0KyI7+u5BTVIyK3CmU5BWaQEbwUCh8QSkl5oK+++Imq/EsTXaTcnFt9JTl5v8iLzG0FUHMHjew+a+SXqvnYsExnyfTB4Ov7yUtaLyZ/njKbsp9aKP1wArQH+SI0xBS3+lR/WuMgSjNkqAYcK4TyNnEF1ff9Lz3hjP1OZkkW0zM6x+Jl+73YY4Kp5pIZoGJ/3dKUgTLFeEC9ucyVsvJWq5lH/Sl614X4VU2NeuBNSDw/YpEXgWZL4sy28vONn1C6HFczwV7E9Hzq4ufRFUhjt3QIOLSI49in7h+l9iKZc6EakrgZjwojYbYSYMP55VqzYdNIeA2FGW5ACBGR6HoqgYt5XXKI6NuFCoty4/gNWoA== Authentication-Results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=martindemello@gmail.com; spf=Pass smtp.mailfrom=martindemello@gmail.com; spf=None smtp.helo=postmaster@mail-yk0-f176.google.com Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of martindemello@gmail.com) identity=pra; client-ip=209.85.160.176; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="martindemello@gmail.com"; x-sender="martindemello@gmail.com"; x-conformance=sidf_compatible Received-SPF: Pass (mail3-smtp-sop.national.inria.fr: domain of martindemello@gmail.com designates 209.85.160.176 as permitted sender) identity=mailfrom; client-ip=209.85.160.176; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="martindemello@gmail.com"; x-sender="martindemello@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-yk0-f176.google.com) identity=helo; client-ip=209.85.160.176; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="martindemello@gmail.com"; x-sender="postmaster@mail-yk0-f176.google.com"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0BtAgBpat9VlLCgVdFehFgGq1yGR5NOAoEvBzwQAQEBAQEBAQEQAQEBAQcLCwkfMIIdggcBAQQSER0BGx0BAwwGBQQHDSoCAiIBEQEFARwGEwgah3YBAxKlIIEvPjGLQIFsgnmKIQoZJw1WhEcBAQEBAQUBAQEBAQEWAQUOi1OEImkHgmmBQwWNYYdcjHOZFRIjgRcXhC4eM4JNAQEB X-IPAS-Result: A0BtAgBpat9VlLCgVdFehFgGq1yGR5NOAoEvBzwQAQEBAQEBAQEQAQEBAQcLCwkfMIIdggcBAQQSER0BGx0BAwwGBQQHDSoCAiIBEQEFARwGEwgah3YBAxKlIIEvPjGLQIFsgnmKIQoZJw1WhEcBAQEBAQUBAQEBAQEWAQUOi1OEImkHgmmBQwWNYYdcjHOZFRIjgRcXhC4eM4JNAQEB X-IronPort-AV: E=Sophos;i="5.17,423,1437429600"; d="scan'208";a="144004526" Received: from mail-yk0-f176.google.com ([209.85.160.176]) by mail3-smtp-sop.national.inria.fr with ESMTP/TLS/AES128-GCM-SHA256; 27 Aug 2015 21:55:11 +0200 Received: by ykdt205 with SMTP id t205so32337261ykd.1; Thu, 27 Aug 2015 12:55:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=iRVbLExiPK+RTlpd+3jLeg7+Yxn0lY79AKH8VSh0SjA=; b=rm5UN2zDoYk44vxKodRPguodFPnvQ//S8iOHSCUtM/ILfG4nit+z+PFD8tREo7cD04 UxA0QwwI62eNq1CYPz/D+r6fssichmA1scxDMIovjZeP/ML6sKvODXBM0tMxVvhGZ00x aNuWebVzPsdjQKadZO/fZAeG9BSC9SUI4Girdml/RoGn+P1TiLOsVxh26Vbw/qXkgsWF eQUFh1F7Yt7gg2Zqo2O6lwW+PC4Pr9buKKLHllcxK6ZhourK2zDdVfBbC1+d4k9+tR3c jCC7jgBzQw83VWIUBh/e37VZqyJjdJBS+fGAycozew385s/o+8WZKXE/R2je/10OHH4T kX4Q== MIME-Version: 1.0 X-Received: by 10.170.198.88 with SMTP id p85mr5146174yke.94.1440705310304; Thu, 27 Aug 2015 12:55:10 -0700 (PDT) Received: by 10.129.135.71 with HTTP; Thu, 27 Aug 2015 12:55:10 -0700 (PDT) In-Reply-To: <55DEE7E5.1020104@inria.fr> References: <1C02B1E2-D17D-4008-998E-B17048C62DFA@gmail.com> <55DEE7E5.1020104@inria.fr> Date: Thu, 27 Aug 2015 12:55:10 -0700 Message-ID: From: Martin DeMello To: Romain Bardou Cc: "caml-list@inria.fr" Content-Type: multipart/alternative; boundary=001a113a045e3f3260051e505805 Subject: Re: [Caml-list] We need a rich standard library distributed with OCaml, really --001a113a045e3f3260051e505805 Content-Type: text/plain; charset=UTF-8 On Thu, Aug 27, 2015 at 3:35 AM, Romain Bardou wrote: > > I agree about smaller, independent packages. This is a very general API > design principle: avoid coupling (the fact that using a module implies > using another). This may be the main reason I avoid external libraries. For > instance, Martin Jambon's Yojson depends on biniou, cppo and easy-format. I > believe Martin is an awesome programmer but this particular point just > baffles me as there is absolutely no need for *any* external dependency to > solve such a simple problem (JSON parsing, pretty-printing and AST > constructors). I understand that Martin wants to reuse its own code and be > able to integrate Yojson easily with other libraries of his, and that is > great. For him and users of his other libraries. Not for those who just > want a JSON parser and have had to install all dependencies manually on > Windows. > Part of the promise of an ecosystem of small libraries is that you should be able to use them for any code you write, including other libraries. This is not the same thing as API coupling; as an end user of library C you should be able to use it without caring about whether it is self-contained in terms of code or whether it uses libraries A and B internally. The fact that dependencies need to be installed manually on windows is a failure of the ocaml windows ecosystem (which I'm definitely sympathetic towards; I once had to manually copy a bunch of code from batteries into my own project just to avoid depending on it); it is not a sign that libraries need not to depend on each other. martin --001a113a045e3f3260051e505805 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
On T= hu, Aug 27, 2015 at 3:35 AM, Romain Bardou <romain.bardou@inria.fr> wrote:
I agree about smaller, independent packages. This is a very general API des= ign principle: avoid coupling (the fact that using a module implies using a= nother). This may be the main reason I avoid external libraries. For instan= ce, Martin Jambon's Yojson depends on biniou, cppo and easy-format. I b= elieve Martin is an awesome programmer but this particular point just baffl= es me as there is absolutely no need for *any* external dependency to solve= such a simple problem (JSON parsing, pretty-printing and AST constructors)= . I understand that Martin wants to reuse its own code and be able to integ= rate Yojson easily with other libraries of his, and that is great. For him = and users of his other libraries. Not for those who just want a JSON parser= and have had to install all dependencies manually on Windows.

Part of the promise of an ecosystem of small librar= ies is that you should be able to use them for any code you write, includin= g other libraries. This is not the same thing as API coupling; as an end us= er of library C you should be able to use it without caring about whether i= t is self-contained in terms of code or whether it uses libraries A and B i= nternally. The fact that dependencies need to be installed manually on wind= ows is a failure of the ocaml windows ecosystem (which I'm definitely s= ympathetic towards; I once had to manually copy a bunch of code from batter= ies into my own project just to avoid depending on it); it is not a sign th= at libraries need not to depend on each other.

mar= tin
--001a113a045e3f3260051e505805--