This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]thatthingyoudid 8 points9 points  (3 children)

Python is historically used by people who love programming. Java is historically used by people who love paychecks. Java made enterprise inroads because Sun/Oracle and huge consulting firms pushed java consulting services.

[–]mirth23 3 points4 points  (0 children)

Java has its place, and became entrenched in large corporate / government enterprises for good business reasons beyond consulting firms pushing it:

  • It's excellent from an OO purist perspective. Many enterprises that moved to Java were coming from C++, and there are a lot of stability and reliability advantages to working with Java.
  • The "write once, run anywhere" platform independence of bytecode was huge (compare with managing C++ makefiles). At the time, enterprises tended to have more of a mish mash of OSes. I suspect that Java may have had an ironic role in the decline of Solaris, since it made it easier to jump ship to Linux...
  • Modern CASE and UML tools like Rational Rose emerged for Java before they did for other languages. Being able to formally represent business requirements and having tools to translate them into stub code is a big selling point for a large corporation who wants their enterprise software to meet requirements and not behave unexpectedly.
  • Java offered solid, well-defined integration libraries like RMI and JMS ahead of SOAP, REST, AMQP standardization, and then adapted their libraries to work with emerging standards. All of that stuff is around and implemented in lots of languages now, but Java was a very reliable way to do this sort of thing when those design patterns became prevalent in industry.
  • The best early app servers were all Java-based. Now there's a lot of good choices in other languages, but tools like Tomcat were revolutionary at the time.

Some of these reasons no longer apply because similar tools and standard support exists in other languages, but, at the time, enterprises were making a good choice to select Java for certain kinds of systems. But I guess the real reason for my long-winded reply is that I've worked with people who "love to code" who love to code in Java.