5 ms·
I hope that the node.js community will embrace even more democracy and even more choice when handling the "standard library" and the "external library". Here is
by amix 15y ago
I hope that the node.js community will embrace even more democracy and even more choice when handling the "standard library" and the "external library". Here is what I wrote 2 years ago about the ideas for a future language that embraces democracy instead of tyranny.
What I can see is that npm relies heavily on GitHub and the tools that GitHub provides (such as wikis and documentcloud). Personally, this kind of integration could lead to a revolution, since it makes collaboration much easier (it also makes it easier to evaluate reputation of developers, dependencies etc.)
I am a Python developer and I think npm is already a MUCH better platform than PyPi given the tight integration with GitHub and I can only imagine what the future brings.
===
The idea of the social platform is to create a platform where developers can collaborate and a platform that promotes quality software. CPAN, Ruby Gems and Python Package Index are early versions of this vision and they need to become more social to become more useful. The social platform should be applied to the core libraries as well and not just be used for the external libraries. A language's standard library should be a democracy where the best and most used libraries win - and not like now, where libraries win by being selected by a few dictators!
Essentials of this platform are:
* Easy distribution: It should be easy to push out modules to the platform.
* Easy forking: It should be easy to fork modules, to apply patches and to send patches back. Using something like git or mercurial is a must.
* Reviews and a reputation system: The platform should have reviews, but also reputation, something like Stack Overflow's excellent reputation system. I.e. a system where helpful developers are rewarded for their hard work.
* Search and discovery: It should be easy to find modules you are looking for and to compare modules. If I am looking for a template library, then I might want to sort template libraries by how many others are using them or by a developer's reputation.
* Fully integrated into the language: This platform should be fully included in the language and ship with the language. The signup process to get on the platform should be very easy.
* Trac like features included: This platform should include tickets, timeline of changes and a basic wiki.
Most of these pieces are partially implemented, especially in products like GitHub and BitBucket. What is needed is a much better integration with the languages. The bottom line is that languages should embrace "social programming" and implement a platform similar to GitHub/BitBucket that enables developers for easy collaboration.
from http://amix.dk/blog/post/19475 http://amix.dk/blog/post/19475
- masklinn 15y ago> Essentials of this platform are: I think most of your ideas are wrong, and are in fact what hamper pypi: the desire to have everything built in. You mention CPAN, the CPAN ecosystem has most of the features you describe, but virtually none of these come from CPAN itself. Instead, they come from what people have built on top of and alongside CPAN, CPAN mostly hosts package data and metadata and provides the core on which everybody else can build useful services (search engines, bug trackers, comments systems, testing/CI systems, CPAN.pm/CPANPLUS, etc...) Pypi has made huge progress in the "search & discovery" category not from improvements to pypi but from `pip` being separately created. Pypi tried to add reviews and reputations, it stank and was removed. > A language's standard library should be a democracy where the best and most used libraries win No, a standard library is a core of broadly useful batteries, just because "Rails" or "LXML" are very popular does not mean they belong anywhere near a standard library.