On Mon, 2016-01-25 at 07:44 -0500, Andrei Alexandrescu via Digitalmars- d-announce wrote:
> Could you please back up that assertion a little bit? From all I > see, > standard libraries of most languages grow very fast with each > release. > What are your facts? -- Andrei Go has a very small core, if you want anything else you write a library and publish it. There is a massive and vibrant activity writing many versions of stuff most of which wither by lack of use. Some, usually one or two, in each domain thrive and become the de facto standard. Everything depends on Git, Mercurial, Bazaar, and go get. Rust threw out large tracts of what was in the original library, including all concurrency and parallelism things, in favour of separate crates. There is a massive and vibrant activity writing many versions of stuff most of which wither by lack of use. Some, usually one or two, in each domain thrive and become the de facto standard. Everything depends on crates.io and Cargo. Python used to be batteries included, then they moved to having a core to which only Python committers have access. There is a massive and vibrant activity writing many versions of stuff most of which wither by lack of use. Some, usually one or two, in each domain thrive and become the de facto standard. Everything depends on PyPI, pip, and virtualenv. Or Anaconda. There are many facts out there favouring distributed over centralized for everything except the language itself and the runtime system, you just have to look. Calling for an explicit, detailed catalogue is not a way forward in this debate. Consider Java Platform, the system where lots gets deprecated and nothing is removed. Ever. The library is big, and grows, but with JDK9 it will, finally be split up into modules, most of which will be ignored since they are from the mid-1990s. There is a massive and vibrant activity writing many versions of stuff most of which wither by lack of use. Some, usually one or two, in each domain thrive and become the de facto standard. Everything depends on Gradle or Maven, and Bintray and Maven Central. Distributed means duplicated effort, yes. It means many projects die. Some will gain a following that leads to traction. Centralized systems lead to stagnation and lack of contribution from all but the inner circle, which often means a lack of energy and new idea (but sometimes not). The energy in the Go, Rust, Python, and indeed JVM-based communities creating new libraries throwing them away, contributing a bit to the core library, but generally leaving it to the core team, is actually something missing from D except for the energy around vibe.d. Just looking at the threads about DMD, druntime, Phobos, it is almost all about angst rather than genuine progress. The whole "graphics library" thing is an interesting case in point. Lots of individual projects, very little consensus, no contribution in the main playing fields of Windows, OSX, Wx, and Qt. I've got GtkD for all my needs, so I don't actually care much, but as we see others care about a cross platform GUI system, but it just isn't happening. There is point at which small one person projects have to be pushed together by management and made to work. Either than or one gets funded because some organization does that. cf. PyQt, JavaFX, Qt. Even if you do not rate this as facts it all is. The moral of the story is, for me, very simple: Dub needs to be front and centre, it represents D, not DMD, LDC, GDC, druntime, Phobos. The core of a D distribution is Dub. In this D is like Rust, Ceylon, Python, and JVM. And unlike Go. Go is too libertarian in my view. Rust, Ceylon, Python, JVM have the right view for me: centralized repository and management of distributed projects. What Rust and Ceylon are missing that PyPI has is an highly opinionated metric that helps you decide what is good and what is dross. Of course Dub needs a better story around executables rather than library packages. Go (go install) and Rust (Cargo build) do this so much better. But then Go has a project structure model, and Rust uses TOML. -- Russel. ============================================================================= Dr Russel Winder t: +44 20 7585 2200 voip: sip:russel.win...@ekiga.net 41 Buckmaster Road m: +44 7770 465 077 xmpp: rus...@winder.org.uk London SW11 1EN, UK w: www.russel.org.uk skype: russel_winder
signature.asc
Description: This is a digitally signed message part