Re: The node.js Community is Quietly Changing the Face of Open Source
rusi rustompmody at gmail.com writes: Just what I said: ecosystem matters. We may or may not argue about more than language, but it surely matters. Some examples: 1. In the link that Roderick originally posted there is a long comment that adds perl to the languages the author discussed. As a language perl is… um well… its perl. Yet when perl wins its because CPAN wins. 2. Haskell as a language is very well designed. However its package system -- cabal+hackage -- is completely broken. I think you are deluded. Haskell may very well designed from a language theoretist's point of view, but I suspect most average programmers would find it a hell to code in. Regards Antoine. -- http://mail.python.org/mailman/listinfo/python-list
Re: The node.js Community is Quietly Changing the Face of Open Source
On Tue, 16 Apr 2013 12:02:01 -0400, Rodrick Brown wrote: I came across this article which sums up some of the issues I have with modern programming languages. I've never really looked at Javascript for anything serious or Node itself but I found this article really informational. The “Batteries included” philosophy of Python was definitely the right approach during the mid 90’s and one of the reasons that I loved Python so much; this was a time before modern package management, and before it was easy to find and install community-created libraries. Nowadays though I think it’s counter-productive. Developers in the community rarely want to bother trying to compete with the standard library, so people are less likely to try to write libraries that improve upon it. What of corporate users on locked-down boxes where installing software is either a firing offence, or simply cannot be done at all? Or they have to fill out long and tiresome forms requesting permission. Or students using shared machines, where even if you install something, it will be gone the next time you come in? What of people who don't want the hassle of trolling through 7 different maths libraries looking for the best one to use, or who might not trust random packages found on the Internet by authors you know nothing about. Or those who don't want to spend their time reading licences? With the Python standard library, you know you can use anything in that library without worrying about the licence. With third party libraries, you have to decide whether or not you are legally allowed to distribute that library, and if not, how do you install it for your customers? There are all sorts of reasons why people might not want to *hunt and install* their own packages, starting with laziness and ending with I like my job very much thank you, and I'd rather not get the sack. I think it shows astonishing privilege of the author to just assume that because he finds it easy to install third-party software, everybody must. http://caines.ca/blog/programming/the-node-js-community-is-quietly- changing-the-face-of-open-source/ Just three sentences after telling us how the right URL library to use for Python is the third-party requests module, the author tells us that developers rarely want to bother trying to compete with the standard library, so people are less likely to try to write libraries that improve upon it. Like requests, huh? He then compares node.js packages with Twitter: Just like the 140 character limit on twitter makes people “blog” more, the node.js community has a culture of publishing tiny modules that makes people more comfortable with publishing smaller packages, and so it happens vastly more often. Yeah, because the vast bulk of 140-character tweets are something to aspire to. What matters is not how often people publish tiny packages that nobody uses. That's not a good measure of the health of a developer's culture. How many of those tiny packages are published, only to then languish in obscurity, lost and forgotten? How many are ever used by anyone other than their author? ActiveState includes almost 4000 Python recipes: http://code.activestate.com/recipes/langs/python/new/ and I would say that the great bulk of them are rubbish, or so specialised as to be of interest to very few people, or both. Or suffering from NIH syndrome. I see about 100 different recipes for implementing enums: http://code.activestate.com/search/recipes/#q=enums I don't think that 100 different recipes for enums is a good measure of Python's health, and I don't think that hundreds of little tiny packages are a good measure of the health of node.js either. If you look at the node.js site, the first thing that jumps out at me is that the culture encourages churning out packages rather than encouraging quality packages. The front page offers author recognition for being prolific, but not for writing good code. Good (or at least *popular*, which is not the same thing) packages get their name on the front page, but *authors* get their name on the front page by writing loads of packages regardless of quality. The current most prolific author is Sindre Sorhus, and if you look at his list of packages, you will see a certain amount of replication. This is what happens when you reward people for quantity: # generator-jasmine Yeoman generator for Jasmine # generator-webapp Default Yeoman generator for scaffolding out a front- end web app # generator-testacular Yeoman generator for Testacular # generator-chromeapp Yeoman generator for Chrome App # generator-angular Yeoman generator for AngularJS # generator-mocha Yeoman generator for Mocha # generator-bbb Yeoman generator for Backbone Boilerplate # generator-backbone Yeoman generator for Backbone.js https://npmjs.org/~sindresorhus I wonder, how much copy-and-pasting between packages does he do? -- Steven --
Re: The node.js Community is Quietly Changing the Face of Open Source
Steven D'Aprano, 17.04.2013 11:16: If you look at the node.js site, the first thing that jumps out at me is that the culture encourages churning out packages rather than encouraging quality packages. The front page offers author recognition for being prolific, but not for writing good code. Good (or at least *popular*, which is not the same thing) packages get their name on the front page, but *authors* get their name on the front page by writing loads of packages regardless of quality. The current most prolific author is Sindre Sorhus, and if you look at his list of packages, you will see a certain amount of replication. This is what happens when you reward people for quantity: # generator-jasmine Yeoman generator for Jasmine # generator-webapp Default Yeoman generator for scaffolding out a front- end web app # generator-testacular Yeoman generator for Testacular # generator-chromeapp Yeoman generator for Chrome App # generator-angular Yeoman generator for AngularJS # generator-mocha Yeoman generator for Mocha # generator-bbb Yeoman generator for Backbone Boilerplate # generator-backbone Yeoman generator for Backbone.js https://npmjs.org/~sindresorhus I wonder, how much copy-and-pasting between packages does he do? It's possible that the answer is none, and that you actually need to install all of his packages in order to make use of one. Stefan -- http://mail.python.org/mailman/listinfo/python-list
The node.js Community is Quietly Changing the Face of Open Source
I came across this article which sums up some of the issues I have with modern programming languages. I've never really looked at Javascript for anything serious or Node itself but I found this article really informational. The “Batteries included” philosophy of Python was definitely the right approach during the mid 90’s and one of the reasons that I loved Python so much; this was a time before modern package management, and before it was easy to find and install community-created libraries. Nowadays though I think it’s counter-productive. Developers in the community rarely want to bother trying to compete with the standard library, so people are less likely to try to write libraries that improve upon it. http://caines.ca/blog/programming/the-node-js-community-is-quietly-changing-the-face-of-open-source/ -- http://mail.python.org/mailman/listinfo/python-list
Re: The node.js Community is Quietly Changing the Face of Open Source
On 4/16/2013 12:02 PM, Rodrick Brown wrote: I came across this article which sums up some of the issues I have with modern programming languages. I've never really looked at Javascript for anything serious or Node itself but I found this article really informational. The Batteries included philosophy of Python was definitely the right approach during the mid 90's and one of the reasons that I loved Python so much; this was a time before modern package management, and before it was easy to find and install community-created libraries. Nowadays though I think it's counter-productive. Developers in the community rarely want to bother trying to compete with the standard library, so people are less likely to try to write libraries that improve upon it. http://caines.ca/blog/programming/the-node-js-community-is-quietly-changing-the-face-of-open-source/ I don't want to get into a package pissing match, but this math is just silly: *python*: 29,720 packages / 22 years =*1351 packages per year* *ruby*: 54,385 packages / 18 years = *3022 packages per year* *node.js* 26,966 packages / 4 years = *6742 packages per year * If you want to know how fast something is growing, you don't measure 22 years and divide by 22. You look at the number of packages added in the last year (or month). Also the assertion that people don't want to compete with the stdlib seems like pure supposition. There are plenty of well-loved packages that compete with the stdlib. Lxml, Requests, Twisted, etc, and plenty of packages in the stdlib that started as outside competition. --Ned. -- http://mail.python.org/mailman/listinfo/python-list
Re: The node.js Community is Quietly Changing the Face of Open Source
On 16 April 2013 17:25, Ned Batchelder n...@nedbatchelder.com wrote: On 4/16/2013 12:02 PM, Rodrick Brown wrote: I came across this article which sums up some of the issues I have with modern programming languages. I've never really looked at Javascript for anything serious or Node itself but I found this article really informational. The “Batteries included” philosophy of Python was definitely the right approach during the mid 90’s and one of the reasons that I loved Python so much; this was a time before modern package management, and before it was easy to find and install community-created libraries. Nowadays though I think it’s counter-productive. Developers in the community rarely want to bother trying to compete with the standard library, so people are less likely to try to write libraries that improve upon it. http://caines.ca/blog/programming/the-node-js-community-is-quietly-changing-the-face-of-open-source/ I don't want to get into a package pissing match, but this math is just silly: *python*: 29,720 packages / 22 years =* 1351 packages per year* *ruby*: 54,385 packages / 18 years =*3022 packages per year* *node.js* 26,966 packages / 4 years = *6742 packages per year * If you want to know how fast something is growing, you don't measure 22 years and divide by 22. You look at the number of packages added in the last year (or month). Also the assertion that people don't want to compete with the stdlib seems like pure supposition. There are plenty of well-loved packages that compete with the stdlib. Lxml, Requests, Twisted, etc, and plenty of packages in the stdlib that started as outside competition. Even looking at the last year/month might be give skewed results. If a technology is new, there's a lot more packages that need writing than if it's been around for 22 years, thus I'd expect to see the first year or second year as a good comparison point. -- ./Sven -- http://mail.python.org/mailman/listinfo/python-list
Re: The node.js Community is Quietly Changing the Face of Open Source
On 2013.04.16 11:02, Rodrick Brown wrote: I came across this article which sums up some of the issues I have with modern programming languages. I've never really looked at Javascript for anything serious or Node itself but I found this article really informational. I don't think the author really knows Python. I am not familiar with node.js, but I do know that it is not Python. Python's package management is suboptimal (though it is being worked on), but the main reason to have no dependencies is that Python changes. Guess how many people are using Python 3 (which was released over 4 years ago) and how many people are still using Python 2. The standard library just works on the latest version, no matter how much changes - it /has/ to. I find it somewhat amusing that he says that the standard library discourages better tools to compete with the standard library right after mentioning requests, which is... a better tool to compete with the standard library. The idea that developers will rarely ever compete against the standard library is absurd - we have not only requests to compete with the HTTP libraries, but also Twisted and greenlet and Stackless to compete with the async libraries. It's also just plain dumb to have a bunch of libraries doing the same thing. If the standard library isn't doing a good job, something will compete with it. If it is doing a good job, there is no reason to write a library to do the same thing. With third-party libraries everywhere, there can easily be duplicate functionality where there doesn't need to be (there could be silly bikeshed issues or perhaps one developer simply doesn't know about the other project). While the process can be slow, the standard library will change. In fact, 3.4 is going to have a new async I/O library because asyncore and asynchat are just not good enough - after all, that's why projects like Twisted started. Perhaps having a minimal core works well for node.js, but Python is much, much better off having its batteries included. -- CPython 3.3.0 | Windows NT 6.2.9200 / FreeBSD 9.1 -- http://mail.python.org/mailman/listinfo/python-list
Re: The node.js Community is Quietly Changing the Face of Open Source
For javascript *the language* this is a good watch: http://www.youtube.com/watch?v=kXEgk1Hdze0 However I believe that the language view is a bit dated. On Apr 16, 9:50 pm, Andrew Berg bahamutzero8...@gmail.com wrote: Perhaps having a minimal core works well for node.js, but Python is much, much better off having its batteries included. Standalone this statement is hardly arguable. However combine it with your other statement Python's package management is suboptimal (though it is being worked on), and a different picture emerges, viz that *the ecosystem around the language matters more than the language* Ive talked about this in my blog http://blog.languager.org/2011/02/cs-education-is-fat-and-weak-1.html and following (Warning: CS teacher's bias) -- http://mail.python.org/mailman/listinfo/python-list
Re: The node.js Community is Quietly Changing the Face of Open Source
On 2013.04.16 12:14, rusi wrote: However combine it with your other statement Python's package management is suboptimal (though it is being worked on), and a different picture emerges, viz that *the ecosystem around the language matters more than the language* It was a minor point, and while I think the ecosystem is important, I am not arguing that it is more important than the language itself. This discussion has much to do with ecosystems and little to do with languages, so I'm not sure what your point is here. -- CPython 3.3.0 | Windows NT 6.2.9200 / FreeBSD 9.1 -- http://mail.python.org/mailman/listinfo/python-list
Re: The node.js Community is Quietly Changing the Face of Open Source
On 4/16/2013 12:02 PM, Rodrick Brown wrote: I came across this article which sums up some of the issues I have with modern programming languages. I've never really looked at Javascript for anything serious or Node itself but I found this article really informational. The “Batteries included” philosophy of Python was definitely the right approach during the mid 90’s and one of the reasons that I loved Python so much; this was a time before modern package management, and before it was easy to find and install community-created libraries. Nowadays Python gets used in places like corporations and schools where one cannot simply install stuff off the net, but must fill out a form asking permission, or maybe not ask at all. though I think it’s counter-productive. Developers in the community rarely want to bother trying to compete with the standard library, so people are less likely to try to write libraries that improve upon it. Except that there is competition for many modules. That said, there are old modules that probably would not be added today, and some the dev would like to remove. (Some were for 3.0.) http://caines.ca/blog/programming/the-node-js-community-is-quietly-changing-the-face-of-open-source/ The irony is that the author goes on to say that the node.js community 'works' because they all use the same infrastructure battery: git and git-hub ;-). -- Terry Jan Reedy -- http://mail.python.org/mailman/listinfo/python-list
Re: The node.js Community is Quietly Changing the Face of Open Source
On Wed, Apr 17, 2013 at 2:50 AM, Andrew Berg bahamutzero8...@gmail.com wrote: On 2013.04.16 11:02, Rodrick Brown wrote: I came across this article which sums up some of the issues I have with modern programming languages. I've never really looked at Javascript for anything serious or Node itself but I found this article really informational. With third-party libraries everywhere, there can easily be duplicate functionality where there doesn't need to be (there could be silly bikeshed issues or perhaps one developer simply doesn't know about the other project). Or, since developers don't know about everything that's available, they hand-roll equivalent functionality directly into the application, instead of using a library/module. One of the problems I had installing a Ruby app was that some of the dependencies weren't as tidily packaged as could be hoped. I had to fidget with them to make them build on my system (from C source), which is something that doesn't particularly bother me (I install stuff from source all the time), but it did make it rather harder to deploy the app. Having a larger standard library guarantees that they'll all work on all formally-supported platforms. Are third-party extension builders going to guarantee that their code compiles on platforms they can't test on? I doubt it. Now maybe that's not an issue with node.js (if everything's written in the high-level language, platform support is easier, even trivial), but it certainly would be for Python. ChrisA -- http://mail.python.org/mailman/listinfo/python-list
Re: The node.js Community is Quietly Changing the Face of Open Source
On Apr 16, 10:36 pm, Andrew Berg bahamutzero8...@gmail.com wrote: On 2013.04.16 12:14, rusi wrote: However combine it with your other statement Python's package management is suboptimal (though it is being worked on), and a different picture emerges, viz that *the ecosystem around the language matters more than the language* It was a minor point, and while I think the ecosystem is important, I am not arguing that it is more important than the language itself. This discussion has much to do with ecosystems and little to do with languages, so I'm not sure what your point is here. Just what I said: ecosystem matters. We may or may not argue about more than language, but it surely matters. Some examples: 1. In the link that Roderick originally posted there is a long comment that adds perl to the languages the author discussed. As a language perl is… um well… its perl. Yet when perl wins its because CPAN wins. 2. Haskell as a language is very well designed. However its package system -- cabal+hackage -- is completely broken. Unfortunately more mindshare is taken in haskell to -- fancy type sorcery -- new syntax (eg holes) -- compiling to more and more efficient code -- etc than setting right the package-mess. To be very correct here, its not so much that cabal+hackage is a mess as that the haskell community does not devote enough mindshare to it. 3. Linux: Steven was talking of the fact that firefox code is a mess. I would wager that much of the code in heavy use in linux is a mess. Yet linux works. Why? Apt. Long before cloud-computng became a buzzword, I could sit on my debian box and utter the incantation: $ aptitude update; aptitude upgrade and things would (mostly) keep working. 4. There was a recent question here: How to install/uninstall manpages with distutils/setuptools? It seems to be a very basic question. It's received no answer. In case I am chided for fault- finding without answering, let me say, I looked to see if I could help. Found nothing conclusive. Gave up. If it makes me culpable, ok I am contrite. Shouldn't the python community share some of the contrition? Terry wrote: The irony is that the author goes on to say that the node.js community 'works' because they all use the same infrastructure battery: git and git-hub ;-). Its called the paradox of creativity: Constraints cultivate creativity: http://www.keepwriting.com/tsc/paradox.htm -- http://mail.python.org/mailman/listinfo/python-list
Re: The node.js Community is Quietly Changing the Face of Open Source
On Apr 16, 10:42 pm, Terry Jan Reedy tjre...@udel.edu wrote: The “Batteries included” philosophy of Python was definitely the right approach during the mid 90’s and one of the reasons that I loved Python so much; this was a time before modern package management, and before it was easy to find and install community-created libraries. Nowadays Python gets used in places like corporations and schools where one cannot simply install stuff off the net, but must fill out a form asking permission, or maybe not ask at all. Yes I agree. Different healthy organisms are healthy based on different logic/laws. Python has no reason to follow node. [And the Roderick link is obviously a bit of a rant and a polemic] In particular one of the strongest (for me) features of python is the standard library. Recently I have been working with erlang and every so often when scratching my head against some impenetrable documentation, I would find myself saying: God bless Guido for the python-docs So, no, I am not critical of the std-lib. My wish is for a slightly larger perspective. Think of 3 concentric circles: 1. Python the language 2. Python std lib 3. Python 3rd party packages (that use 1 and 2) 1 and 2 are fine. And for any one person or small group to be fully conversant of the whole of 3 is unreasonable. However the surrounding infrastructure needed to populate/explore/use 3 could do with some love: - the distutils/distutils2/distribute/setuptools situation combined with pip and pypi - executable building (py2exe) - handling multiple pythons and packages eg virtualenv - tox and the various alternatives to testing -- http://mail.python.org/mailman/listinfo/python-list