Logo 
Search:

Java Answers

Ask Question   UnAnswered
Home » Forum » Java       RSS Feeds
  Question Asked By: Sunil Garg   on Sep 04 In Java Category.

  
Question Answered By: Jim Williamson   on Sep 04

Well for sure the main reason behind Java is not being used at least in core
banking is that most customers are already satisfied with what core is supposed
to do. They just need to provide new channels and capabilities on top of this
core.

But, to answer your question, I have to say _yes_ there are obviously some
well-known deficiencies in current standard JVM that prevents Java being used in
mission critical and dependable systems. To be fair, this is the nature of a
general purpose language like Java that fails to provide some (rarely used)
enterprise level capabilities in favor of less complexity and ease of use, but
these rare features are sometimes the main players in mission-critical and high
dependable systems.

So, theoretically there are issues preventing Java be used in every kind of
systems. I will try to mention some of them based my limited experience but
perhaps there may exist other issues whom I haven't came across yet.

- The first and the most important one is that Java has failed to provide a
dependable incremental garbage collection mechanism upon now. There have been
some major improvements quite recently (thank to BEA) in providing parallel
incremental GC but we are not where we are supposed to be yet. This looks a
minimal issue at the first glance but becomes a real pain when system has to
answer thousand of request per second and still remain compliant to its SLA.

- According to me, the second major issue is the lack of tail-recursion
detection in JVM. As you know, mission-critical system are not proved by mere
unit testing; they are proved by mathematics. This is where lambda-calculus and
functional programming paradigms apply. Again Java's deficiencies in providing
functional infrastructure makes in unreliable for most critical systems.

- No build-in support for actor model concurrency, hence unable to get the most
of today's highly concurrent multi-core world. Thanks to community works such as
Scala and Kilim, at least we have a something similar to actor-model but JVM has
to support this itself.

Moreover there issues such as; lack of hot-swap, weak light/green-threads (aka
fiber), generics erasers (to be fixed in Java 7), and weak DBC support.

Please note that no language can be strong in every fields. A friend of
everybody is a friend of nobody. I myself use and praise Java, but this does not
prevent me from seeing the rest of the world and close my eyes to weaknesses.

Our team did a survey for one of the banks regarding development platform, and
eventually we concluded that Java is used more and more each day in banking
field like many others domains. In recent ten years Java has been the first
choice in banking  field and even it is used in core banking. I know for example
that BoA had a great success in evaluating Java is a cluster running more than
2000 machines and in fact Java did it quite successfully. And we all know VOCA
which (is not a bank but) does finance using Java across Europe.

Share: 

 

This Question has 10 more answer(s). View Complete Question Thread

 
Didn't find what you were looking for? Find more on J2EE in Banking field Or get search suggestion and latest updates.


Tagged: