caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Yotam Barnoy <yotambarnoy@gmail.com>
To: Ocaml Mailing List <caml-list@inria.fr>
Subject: Re: [Caml-list] We need a rich standard library distributed with OCaml, really
Date: Thu, 27 Aug 2015 16:10:37 -0400	[thread overview]
Message-ID: <CAN6ygOk2=H-hY83PB5XtvNpRRAvx7_E+Ov-Mnv-EqxRUaMm+aA@mail.gmail.com> (raw)
In-Reply-To: <CAFrFfuFuMcDwhsMYhAw77bhth2gjQYpe7HcAusqWCbggRQ6nvg@mail.gmail.com>

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

I'd like to mention the merits of not having a large standard library.
Consider the evolution of OCaml. Many of the paradigms with which OCaml was
born, such as using exceptions everywhere, have gone out of favor.
Hopefully, sometime in the near future, we'll have Modular Implicits
integrated into the language. Assuming this happens, it will almost
certainly impact what would be expected to belong in a standard library.
The official standard library already carries around with it vestigial
organs, such as the Stream module. This will only get worse if we add to it.

At the same time, I recognize a need for a library to represent a large
collection of data types and the functions over said types. It cannot all
be miniature libraries in opam IMO -- for basic programming, there should
be a curated source of basic and even some extended functionality.

What seems to me better than a built-in standard library, though, is a
reference to the best currently available libraries in each area, including
a 'standard' collection of utilities/data structures. Such a reference
could include space for the community to debate the pros and cons of
various libraries, and perhaps even a voting system to indicate to
potential users what the community thinks about said libraries. This is
something I currently have trouble with in opam, since I have no idea if a
given library is a) ancient and unmaintained b) the best in its class c)
rising in popularity d) written by a pro and solid, even if not used much.
The closest I have to that in opam is number of downloads, but given how
much the ecosystem now relies on opam, I think a more advanced display is
needed.

-Yotam

On Thu, Aug 27, 2015 at 3:55 PM, Martin DeMello <martindemello@gmail.com>
wrote:

> On Thu, 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
>> 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
>

[-- Attachment #2: Type: text/html, Size: 4161 bytes --]

  reply	other threads:[~2015-08-27 20:10 UTC|newest]

Thread overview: 52+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-08-27  2:52 Hongbo Zhang
2015-08-27  6:59 ` Christoph Höger
2015-08-27  7:18 ` Anthony Tavener
2015-08-27  8:17   ` Gabriel Scherer
2015-08-27 10:35     ` Romain Bardou
2015-08-27 19:55       ` Martin DeMello
2015-08-27 20:10         ` Yotam Barnoy [this message]
2015-08-27 23:24           ` Drup
2015-08-28 13:23           ` Philippe Veber
2015-08-27 20:17         ` Raoul Duke
2015-08-27 23:10       ` Martin Jambon
     [not found]     ` <20150827174554.14858.6618@localhost>
2015-08-27 18:42       ` [Caml-list] Fwd: " Emmanuel Surleau
2015-08-27 21:17     ` [Caml-list] " Paolo Donadeo
2015-08-27 21:51       ` Oliver Bandel
2015-08-27 21:56         ` Oliver Bandel
2015-08-27 22:04           ` Oliver Bandel
2015-08-28  0:50     ` Hongbo Zhang
2015-08-31 16:06     ` Stéphane Glondu
2015-08-31 16:14       ` Francois Berenger
2015-08-31 16:44         ` Hendrik Boom
2015-08-31 18:04           ` Ian Zimmerman
2015-08-31 17:26         ` Stéphane Glondu
2015-09-01 15:06           ` Anil Madhavapeddy
2015-08-31 17:34       ` Oliver Bandel
2015-09-01 13:46       ` Gabriel Scherer
2015-08-27  8:07 ` Sébastien Hinderer
2015-08-27  8:20   ` Daniil Baturin
2015-08-27  9:34     ` Edouard Evangelisti
2015-08-28  9:07       ` r.3
2015-08-27  8:12 ` Francois Berenger
2015-08-27 11:57   ` Drup
2015-08-27 14:17 ` Yaron Minsky
2015-08-27 16:00   ` Jesse Haber-Kucharsky
2015-08-28  0:33     ` Hongbo Zhang
2015-08-28  1:53       ` Daniel Bünzli
     [not found]       ` <20150828.140826.2157566405742612169.Christophe.Troestler@umons.ac.be>
2015-08-28 12:38         ` Thomas Braibant
2015-08-28 13:00           ` [Caml-list] opam license field (was Re: We need a rich standard library distributed with OCaml, really) Daniel Bünzli
2015-08-28 13:06             ` David Sheets
2015-08-28 14:01         ` [Caml-list] We need a rich standard library distributed with OCaml, really Oliver Bandel
2015-08-31 15:26           ` Hendrik Boom
2015-08-28 14:35         ` Alain Frisch
2015-08-29 19:02           ` David MENTRÉ
2015-08-31 12:37             ` Jon Harrop
2015-08-31 15:05               ` Emmanuel Surleau
2015-08-31 17:31                 ` Oliver Bandel
2015-08-28 15:02         ` Simon Cruanes
2015-08-28 15:27           ` Gabriel Scherer
2015-08-28 15:51         ` Oliver Bandel
2015-08-31 18:40       ` Ashish Agarwal
2016-03-27 20:54     ` Jon Harrop
2016-03-27 21:21       ` Simon Cruanes
2016-03-27 23:48       ` 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='CAN6ygOk2=H-hY83PB5XtvNpRRAvx7_E+Ov-Mnv-EqxRUaMm+aA@mail.gmail.com' \
    --to=yotambarnoy@gmail.com \
    --cc=caml-list@inria.fr \
    /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).