Re: The node.js Community is Quietly Changing the Face of Open Source

2013-04-17 Thread Antoine Pitrou
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

2013-04-17 Thread Steven D'Aprano
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

2013-04-17 Thread Stefan Behnel
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

2013-04-16 Thread Rodrick Brown
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

2013-04-16 Thread Ned Batchelder

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

2013-04-16 Thread Sven
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

2013-04-16 Thread Andrew Berg
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

2013-04-16 Thread rusi
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

2013-04-16 Thread Andrew Berg
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

2013-04-16 Thread Terry Jan Reedy

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

2013-04-16 Thread Chris Angelico
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

2013-04-16 Thread rusi
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

2013-04-16 Thread rusi
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