"Orders of magnitude more productive" isn't true -- except in the case that the productivity of people on a failed project is zero.
For projects that get completed, I could believe two or three... Maybe more in cases that are trivial to do with rails.
The nightmare I've seen happen with Ruby projects is that the "developers" are often web designers who know how to do things that are easy (or trivial) to do with rails, but get in over their heads rapidly.
Python, on the other hand, has a culture of doing the 20% of the work that gets you 80% of the way to production, announcing that they're done, moving on to a greenfield project, and then laughing at the "Blub" programmers in PHP and Java who work so much harder to get things production-ready.
Java's greatest strength, on the other hand, is it's greatest weakness. Java has a huge number of libraries that make it possible to do wonderful things, like Lucene and Hadoop. There's "more than one way to do it", which means that real-life systems might have 5 different JSON libraries used in different parts of the system. A programmer who needs to work on a small part of an application might need to wait for Maven to download 650 megabytes worth of JAR files. When you have 650 megabytes of dependencies to deal with to work on 65 kilobytes of code, it takes a very small amount of bullshit per kilobyte in the dependencies for you to spend more hours messing around with the build system than you spend developing.
> Ruby (...) "developers" are often web designers who know how to do things that are easy (or trivial) to do with rails
> Python (...) has a culture of doing the 20% of the work that gets you 80% of the way to production, announcing that they're done, moving on to a greenfield project
I have met, during my career, a lot of incompetent professionals like the ones you describe above. Most of the time, they work with "safe" technologies, the ones they are sure there will be demand for. Java, PHP, C#, ABAP and VB are their favorite tools. When you see someone proposing something crazy, like using Python (or Ruby, or Smalltalk, or Lisp, or Erlang) on a very enterprisey application, they are either lunatics or just very, very smart. BTW, to be fair, I've seen lots of very competent Java, PHP, C# and even VB programmers. But they are exceptions, not the norm.
And no. I have developed tons of Python code from concept to production. If we have this 80/20 culture, I have, so far, managed to be completely oblivious to it. The main difference between your anecdote and Java projects I have seen in the past is that nobody but management claims they are done.
Comments
"Orders of magnitude more productive" isn't true -- except in the case that the productivity of people on a failed project is zero.
For projects that get completed, I could believe two or three... Maybe more in cases that are trivial to do with rails.
The nightmare I've seen happen with Ruby projects is that the "developers" are often web designers who know how to do things that are easy (or trivial) to do with rails, but get in over their heads rapidly.
Python, on the other hand, has a culture of doing the 20% of the work that gets you 80% of the way to production, announcing that they're done, moving on to a greenfield project, and then laughing at the "Blub" programmers in PHP and Java who work so much harder to get things production-ready.
Java's greatest strength, on the other hand, is it's greatest weakness. Java has a huge number of libraries that make it possible to do wonderful things, like Lucene and Hadoop. There's "more than one way to do it", which means that real-life systems might have 5 different JSON libraries used in different parts of the system. A programmer who needs to work on a small part of an application might need to wait for Maven to download 650 megabytes worth of JAR files. When you have 650 megabytes of dependencies to deal with to work on 65 kilobytes of code, it takes a very small amount of bullshit per kilobyte in the dependencies for you to spend more hours messing around with the build system than you spend developing.
I have to disagree with your two misconceptions:
> Ruby (...) "developers" are often web designers who know how to do things that are easy (or trivial) to do with rails
> Python (...) has a culture of doing the 20% of the work that gets you 80% of the way to production, announcing that they're done, moving on to a greenfield project
I have met, during my career, a lot of incompetent professionals like the ones you describe above. Most of the time, they work with "safe" technologies, the ones they are sure there will be demand for. Java, PHP, C#, ABAP and VB are their favorite tools. When you see someone proposing something crazy, like using Python (or Ruby, or Smalltalk, or Lisp, or Erlang) on a very enterprisey application, they are either lunatics or just very, very smart. BTW, to be fair, I've seen lots of very competent Java, PHP, C# and even VB programmers. But they are exceptions, not the norm.
And no. I have developed tons of Python code from concept to production. If we have this 80/20 culture, I have, so far, managed to be completely oblivious to it. The main difference between your anecdote and Java projects I have seen in the past is that nobody but management claims they are done.