4 ms·
So, which battle are Java haters fighting? Java is mostly-ubiquitous and is "good enough" for a number of common tasks, and has good enough structure for medio
by sqrt17 15y ago
So, which battle are Java haters fighting?
Java is mostly-ubiquitous and is "good enough" for a number of common tasks, and has good enough structure for mediocre programmers working on important-but-uninteresting problems. As a result (and the blog author says this), there is enough hate-worthy Java code there, just as there used to be enough hate-worthy C and C++ code around, and there probably is enough hate-worthy COBOL and Ada code around, if you know where to look.
It's worth noting that the relationship between C++ and Java switched around in the last 12 years or so - before, C++ was the method of choice to write segfaulting bug-ridden Windows applications (MFC anyone?), whereas Java was a rather slow (as in, non-JIT-ted) language that was up and coming and was interesting because it combined familiar C-like syntax with garbage collection.
Fast forward, and we have not only smart pointers (which ease many headaches of non-garbage-collected C++) but also template metaprogramming which really took off and makes C++ much more palatable to the one-man-army approach (i.e., one smart guy who does work that would take several mediocre programmers otherwise). Java has also evolved - Java 1.2's List/Map/Set are much nicer than the old collections, and Java 1.5's generics help avoid much of the old ugliness - but it carefully avoids any constructs that would make it more useful for one-man-army stuff - where Rubyists and Pythonistas are monkey-patching metaclass decorators, the Java world has one or two libraries that do bytecode generation to do something useful, but nothing more magic.
People who hate Java are really out against the programmer-as-a-fungible-resource way of living where programming is treated like shoveling dirt instead of a creative activity. Programming is both - perspiration and inspiration - and some people will be allowed to chose their tools (Java or not) whereas other people are not or have to fight for it.
- Hisoka 15y agoI definitely agree with your sentiment. If you're working on your own personal projects/startup, most of the time you aren't gonna choose Java, but another language whether it be Python, Ruby, etc. But if you're in a corporation, you don't have the flexibility and freedom to choose what you want to work for. This association of corporate life with Java contributes to people's hatred of using Java. I bet if corporations started using Python, more and more people would hate Python as well if they had to use it on a daily basis for boring, business processes When I actually used Java in one of my first personal projects, i found it very fun to use. But when I had to use it in my first job, my interest and enthusiasm waned.
- rbanffy 15y ago> This association of corporate life with Java contributes to people's hatred of using Java. This association happens because the wrong people are defining which technologies will be used. When a manager makes manager-ish decisions, Java is what you get. Or Windows and .NET. > I bet if corporations started using Python, more and more people would hate Python Won't happen because a) Python is actually good b) The same people who make manager-ish decisions won't pick Python. > When I actually used Java in one of my first personal projects, I too had a more optimistic opinion of Java when I started playing with it. But then I remembered how it felt to program with Smalltalk (I learned OOP with it, later played with Actor on Windows). Then I met Python, and Zope and realized web development doesn't need to suck. The company I work for maintains several Java applications and a couple PHP and Django ones. The difference of productivity from the Java projects and the Django ones is absolutely shocking.
- andrewflnr 15y agoYou really don't think Python is reaching the point where a manager type would be comfortable with it? It's mature, it has tons of libraries, it's used in all kinds of successful projects. I really don't know. It just doesn't seem anything like a high-risk choice to me.
- rbanffy 15y agoNo Python vendor will wine-and-dine the pointy-haired-manager, nor pay a trip to a conference. Oracle will.
- andrewflnr 15y agoGood point.
- reinhardt 15y ago> If you're working on your own personal projects/startup, most of the time you aren't gonna choose Java ... for some values of "you", apparently ;) Lucene, Hadoop, Cassandra, Hudson/Jenkins, RapidMiner, GWT and a gazillion other best of breed open source projects have selected Java, for better or for worse.
- jrockway 15y agoSo, which battle are Java haters fighting? Not using Java. Not hiring people that will only program Java. Not tolerating "enterprise grade design" when a two line Perl script will do the job more quickly and more correctly. I assume that's where the complaint comes from. The author of the blog post is mad that people hate Java and are using that hate to make themselves better tools that are not Java.
- uriel 15y ago> where Rubyists and Pythonistas are monkey-patching metaclass decorators I hate Java, and this is one of the main reasons I also hate Ruby and Python. The opposite of the Java-bureaucracy is not necessarily "features" that are a few times over too clever for their own good. If there is only one thing Java ever got right for example is to avoid multiple-inheritance and operator overloading. Also the Java vs. C++ dichotomy you present is not shared by many Java hatters, just take a look at all the quotes here that mention C++: http://harmful.cat-v.org/software/java http://harmful.cat-v.org/software/java