From the article: "In fact, offhand I can only think of one commercial greenfield Ruby project I’ve participated in."
I can say the same of C, C++ and Python in the context of my personal work history. Is Avdi's experience so unusual in the Ruby world? It seems that most development jobs primarily involve working on other people's code if the language has been around for any time at all.
Edited to add: I've also seen everything listed in the "But Rails is different!" section in every commercial project I've ever worked on. I suspect most developers that just want to hack away on commercial code without any discipline end up having nearly the same set of justifications, no matter what language they're using. (Especially that bit about ignoring/disabling warnings.)
Sure, but that's why I mentioned Python: Ruby is only 4 years younger than Python, but I haven't run across that many greenfield projects that involved Python.
Of course maybe I just haven't looked in the right places. :)
And they're both older than Java, but you're more likely to see greenfield projects in Ruby or Python than Java because Java gained acceptance much more quickly. The year that the first compiler for a language was written is kind of irrelevant — it's time at certain popularity thresholds that really determines a language's maturity.
Is it significant that Ruby on Rails seems frequently learned "framework first, then language" -- many people first learn Rails, then go to work learning Ruby. Whereas I think frameworks like Django are learned by people already familiar with Python. It's possible that folks can more easily get through the hassles and design questions posed by unit tests with a better grounding in the underlying language.
> Django are learned by people already familiar with Python
If only that were true. Like the OP I've been working with mostly legacy Django codebases the last few years and much of the same issues he raises could be applied to those projects as well.
The product I am currently working in aims to keeps all it's components small enough, so that you could rewrite each one of them in a few weeks at most.
When a daemon gets too big, we split it up.
That makes each writing each new part feel much more like a green-field exercise than you'd expect from a product this size.
I think it depends a lot on age/experience and how you got into development. In my case, I'm relatively young, lack a college degree, and started out in sysadmin and, shortly thereafter, operations engineering roles. I've discovered good ops people are a pain in the ass to find, and I had the misfortune to be very good at it, so I naturally keep getting already-"running" systems dropped on me with instructions to maintain, fix, and interface with them. I've only had one true greenfield project (still in progress) since I started getting paid for my work.
Most of the other developers I know are older, have computer science and/or EE degrees, and have been around the startup block a few times, and have several greenfield projects under their belt.
I can say the same of C, C++ and Python in the context of my personal work history. Is Avdi's experience so unusual in the Ruby world? It seems that most development jobs primarily involve working on other people's code if the language has been around for any time at all.
Edited to add: I've also seen everything listed in the "But Rails is different!" section in every commercial project I've ever worked on. I suspect most developers that just want to hack away on commercial code without any discipline end up having nearly the same set of justifications, no matter what language they're using. (Especially that bit about ignoring/disabling warnings.)