Question

I've been studying at a lot of enterprise applications for insurance and banking recently and something struck me: Pretty much every application is written in Java and deployed using an Application Server such as JBoss.

  • Why are these pair of technologies the default choice in the enterprise application space?
  • Why don't folks use new frameworks/languages/servers such as Django?

I suspect the choice is made for some combination of security, performance and licensing reasons, however those exact reasons aren't clear to me.

Much thanks.

Was it helpful?

Solution

Although Java initially didn't target server side apps/enterprise stuff, once it attracted the attention of the "enterprise" crowd, it has constantly evolved catering to their needs. Here are a few Java advantages (compared to Pythong & Django, Ruby, PHP, etc.):

  • very clear syntax with strong rules and many safety mechanisms (no inferred/dynamic types which can lead to nasty bugs, few cryptic symbols, all kinds of compile-time checks, mandatory exception-handling in certain situations, etc. - many inexperienced people are annoyed by some of these things - but it's exactly these things that make programs less error-prone and the enterprise people love it)
  • very strong security (despite all kinds of media reports criticizing java for suspected vulnerabilities (usually related to browser applet)s, there has never been a single major security breach on the server side - which is why it is trusted by the banking industry
  • versatile and very fast VM (java applications can be almost as fast as native c/c++ for pure computations) that can run on many powerful servers, being able to harness their entire power (python, php and ruby can't even handle multithreading properly)
  • a very large number of frameworks that can do a lot of things (from technical frameworks like the search engine lucene to more enterpresey stuff like OfBiz, Alfresco etc.)
  • tight integration with other enterprise products (servers, databases, etc.)
  • it is supported by one of the largest software companies in existence (Oracle) and other powerful third party companies like IBM, RedHat and many others
  • lots of professional, high quality tools (Eclipse, Netbeans, IntelliJ IDEA, JDeveloper etc.)

OTHER TIPS

Many companies do not trust new frameworks/languages/servers like Django, Python, node.js and such because some of them are not mature enough to be trusted, or not trusted enough to be considered as mature software. Also, finding a good Java developer is easier than finding a good Rails developer.

But trust is not the only factor, as scalability of the solution (framework or server) may be more and more important as the company tends to grow. i.e: Storing customers data in excel files may be a thing if you're running a SMB, but it will become a bad idea to keep this scheme as the number of customers keeps increasing. The same goes to your frameworks/servers/languages.

The link in the comment gives many general reasons, one I don't see which is specific to your question about why not Django. Type checking at compile time avoids a whole class of runtime errors that non-typed languages do not.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top