3 ms·
I would say the same thing-- "it's all about being productive"-- with regard to technology wars but I take a different stance. I'm not going to limit the focus
by michaelochurch 14y ago
I would say the same thing-- "it's all about being productive"-- with regard to technology wars but I take a different stance. I'm not going to limit the focus to OS projects, though it applies to them, but also to peoples' jobs.
When Ruby programmers brag about being "Java-free for 5 years", as the stereotype goes, what they would mean to say if they had more insight into the situation is that they've been in high-productivity programming for 5 years. That's what actually matters. Language correlates somewhat to low vs. high productivity, but it's actually the productivity level that matters.
On one side, there's the risk-averse corporate bullshit where you do what a boss tells you to do and you're lucky to crank out 10 LoC per day, because most of what you do is maintenance and catch-up and filling out on makework so you can be evaluated (in a years-long dues-paying period) for real work, which is allocated as a political token. Working in those jobs rots your brain, but that probably what 75+ percent of professional programmers face.
Then there's high-productivity programming, in which you write code like it actually matters, because it does. 100-500 delta-lines per day is typical. (That doesn't mean you grow the codebase by 100 lines; removing 100 lines can be just as potent.) Every day, you leave the state of the software in a materially better state than it was in when you began the day (or, occasionally, you fail to do so but you improve your knowledge).
Risk-averse manageosaurs like low-productivity programming because it's "safe" and easy to commoditize. Scaling up means hiring five times as many CommodityDevelopers. It also makes it easier to undertake Big Software projects-- monolithic Java/C#/VB programs, with bulky Despondency Infarction Frameworks attached, on which disengaged developers plug along at 7.35 LoC per day. It is, however, a horrible way to build software. It makes awful products, and it's bad for peoples' careers (except managers) because people actually decline as the years go on.
That's what's actually at stake in language wars. It's not worth it to alienate whole communities because you think Ruby is slightly better than Clojure or vice versa. Agree to disagree, and use the right tool for the job (which may be the other guy's language just because you're in a better position to adapt than he; deal with it). It is, however, worth it to fight for a high-productivity environment and to name and shame the horsemen of the low-productivity apocalypse.
Unfortunately, there are a lot of people who associate JVM => low-productivity programming and Ruby => high-productivity when they're only catching one slice of the story. A true high-producitivity programmer uses the right tool for the job-- sometimes Ruby or Clojure, sometimes C, sometimes Python, sometimes Scala.
I do hate hate hate low-productivity programming. God intended the programmer-to-program relationship to be one-to-many, not many-to-one. However, I don't think it's useful to attack everything Java just because of the historical association (I used to be that way; then I grew up). Corporate hell is not James Gosling's fault.