3 ms·
>I have a theory about Java. In the '90s, it was not unheard-of for programmer productivity (individually and for the group) to be measured in LoC. Nah, even b
by tsotha 15y ago
>I have a theory about Java. In the '90s, it was not unheard-of for programmer productivity (individually and for the group) to be measured in LoC.
Nah, even by the mid '80s KLoC was discredited as a metric for programmers.
Java had a couple of big advantages over what had come before. For one thing, it promised, and mostly delivered, a true cross-platform ecosystem. It had a GC and the VM was written with hooks for IDE-based development. And it had a standard GUI package. C++ had none of that.
Java is verbose, but it's verbose because you have to be explicit with everything, which makes the code a lot easier to follow if you didn't write it. Poorly written Java isn't that much harder to follow than well written Java. You can't say the same about C++ or Lisp. Java is a tool for an organization where half the people are below average. Unless you're working for a very small startup or a flavor-of-the-month place like Google, that's probably going to be the story where you work.
EDIT: Oh, and it's been so long I forgot one of the major, major selling points. You could get free binaries. Almost everything else either cost money or had to be compiled (which was a royal pain in the ass in most cases).
- michaelochurch 15y agoI agree about Java's mediocritizing effect, and that it's beneficial if you have a team of low-skill (0.6 to 0.8, on the scale described here: http://michaelochurch.wordpress.com/2012/01/26/the-trajectory-of-a-software-engineer-and-where-it-all-goes-wrong/ http://michaelochurch.wordpress.com/2012/01/26/the-trajector...) programmers. The question is: why are people hiring hundreds of weak programmers in the first place? When a team of 100 mediocrities achieves as much as a (far less costly) team of 20 good programmers in Java or (better yet) 6 good programmers in a decent language, why hire the former at all? The Java+IDE environment seems to be designed for 0.6 to 0.8 programmers under the assumption that it's OK for them to stay at that level indefinitely. That's one thing I really dislike about the Java+IDE environment: it encourages people not to learn how things really work or to get better. It's founded on the assumption that 90% of programmers are unskilled (true) but instead of trying to improve them, it coddles them and keeps them mired in mediocrity. That whole Java+IDE setup is based on a self-fulfilling prophecy that (a) 90% of programmers are mediocre and will stay that way, (b) no one reads code, so it's okay for small programs to be inappropriately split into 10+ files, (c) programmers don't learn outside of work or want to learn new languages, (d) all code turns into shit, so there's no point in making beautiful code possible, and (e) the lifespan of a developer is 5-10 years. I don't agree with any of these. One thing I continue to find amusing is that Clojure and Scala developers learn about Java faster, per unit time, than most Java developers. This is because, when you have a real language to work with (and a REPL) you can tackle harder and more interesting problems. I can't prove this, but I think that anyone who is smart enough to be effective, in spite of the resistance Java throws in the way, can easily become a 1.2-1.5 programmer in a better language. The argument about "stupid" programmers who just can't grok functional programming is silly. If they can handle Java bullshit, they can learn the simpler abstractions on which decent programming is built. I definitely feel stupider when I have to use crappy languages and can't express my thoughts properly, but I hope it's pretty obvious that this "stupidity" is transient. I agree on Java being an improvement over C++, though. C++ is a disaster.
- tsotha 15y ago>The question is: why are people hiring hundreds of weak programmers in the first place? When a team of 100 mediocrities achieves as much as a (far less costly) team of 20 good programmers in Java or (better yet) 6 good programmers in a decent language, why hire the former at all? Because 90% of the people are in the bottom 90%. Not every company can hire programmers in the top 10%. That's a mathematical impossibility. Yes, we'd all love to hire only geniuses, but what do you do when you put out a job req and no geniuses apply? Refuse to hire anyone?
- michaelochurch 15y agoYes, we'd all love to hire only geniuses, but what do you do when you put out a job req and no geniuses apply? Refuse to hire anyone? Easiest: upgrade your language. http://michaelochurch.wordpress.com/2012/01/24/how-any-software-company-can-cross-the-developer-divide/ http://michaelochurch.wordpress.com/2012/01/24/how-any-softw... Harder: expand your "social surface area" by going to conferences, because the best programmers find jobs (just as the best jobs are filled) through social connections before anything is "posted". You actually have to network a lot harder when you're hiring than when you're looking for a job.
- Drbble 15y agoGoogle is flavor of the month? They are 90% C++, Java, Javascript. They even write Java that writes Javascript
- tsotha 15y agoWhat I meant by that is Google has such a reputation as a place to work that they can afford to hire only the cream of the crop. In other words flavor of the month for job applicants.