Why are banks still using Java?

Yes banks are looking into blockchain for internal use
https://www.reuters.com/article/us-jpmorgan-blockchain/jpmorgan-launches-payments-network-using-blockchain-technology-idUSKBN1CL1P6

And it seems that is written in GO language
So saying Java only is myth :slight_smile:

It does, but you really need a better IDE for it. Using the default set (from way back when I was in school) made it so difficult to tell so many things apartā€¦ ^.^;

It has some fascinating design bits though. :slight_smile:
However the syntax was horridā€¦ ^.^;

You mean like ADD X TO Y GIVING Z ROUNDED? :slight_smile:

Definitely horrid.

1 Like

Java works. Itā€™s been battle proven over many years. Virtually all the major ā€œgotchasā€ have already been found. There are plenty of devs for it.

A conversion would involve tremendous expense and risk. Whatā€™s to gain?

I do a little procedural Java, but Iā€™ve never been a professional Java developer.

1 Like

Uhhh, like 4 years ago I hit a bug in the Official Sun JVM7 (latest version, it was never fixed in any J7, only J8+) where if you had a certain mix of mathematical work in a function then the JVM would JIT compile it to garbage assembly. So it worked when interpreted (so the first few runs of the function) then when it got JITā€™d your program mysteriously start calculating garbageā€¦

And that is only one of many bugs Iā€™ve hit on the JVM when I had to work on it for over 5 years)ā€¦ >.>

It is NOT battle proven or stable or lacking gotchasā€¦

1 Like

Bugs not bugs at least moving on: java 9 (good refactoring - module systems), java 10 ā€¦ :slight_smile:

Guys, why not Elixir? :slight_smile:

I would say banks = big data, and all eco system related to big data sadly or not is Java.
Hadoop
Apache Spark
Apache Fink
Apache Beam
Apache Kafka
Google Big Query
and I can count more , more ā€¦
You donā€™t have such tooling in any other eco system ā€¦
One example

Well some banks are pretty invested in BEAM Goldman Sachs has some very critical systems built with Erlang. Considering GSā€™s status and image it might inspire adoption at other institutions.

1 Like

Banking is actually something I would not recommend Elixir for (or even Java or C++ or Rust or whatever else).

Iā€™d want some dependent type language, like Idris or so. You donā€™t want to take changes with doing things wrongā€¦ It can of course call out to and integrate with whatever else, but for calculations Iā€™d want it to be very well checked.

Now, you can of course have the communication system built in erlang/elixir that calls the Idris code of course.

1 Like

Itā€™s hard to imagine there are any banks that are using it right now

My 2 cents and that from working with banks.
Usually their systems are old and no one knows what exactly happens behind the scenes so everybody is afraid touching any of the old stuff.
Just imagine what would happen if a job that moves one file from location to another stopped working, without that tiny little job all money transfers can stop.
Now you must understand that this said job was created on the mainframe 50 years ago and no one even remembers it exists.
The sad thing about this is that situation is not only imagined it exists in most banks in one way or another maybe not moving a file just clearing it every night or it wonā€™t affect money transfers for all costumers just a fewā€¦
That is basically why most banks donā€™t change technologies easily, no one really knows exactly how everything is working or even why and just mapping it can take years.

7 Likes

Indeed, it is very new in the grand scheme of things so the old banking software wouldnā€™t be using it, though there are some older decent languages. :slight_smile:

Eyup, this right hereā€¦ ^.^;

I work for the insurance business which closely follows banking trends; we are also using C# and .NET for shipping products the main reasons being:

  • Co-workers familiarity with C# semantics
  • The need to maintain legacy applications that work under .NET

Also most companies in the region work under .NET, Java, Ruby or Python (the last 2 being a minority), I think this hugely shapes what programmers in the region learn to carry their ā€œday to dayā€ tasks.

So (I think) it mostly comes down to familiarity, a lot of programmers will use the phrase ā€œthe right tool for the right jobā€ but I think they really mean ā€œthis is the tool weā€™re mostly familiar with, and donā€™t want to risk too muchā€ which I think is very understandable.

One of our new projects will need to closely enforce contracts which I think will be very hard to model with our current stack. Dependent typed languages like Agda, Idris or tools like Coq or Isabelle sound very helpful in this field.

Yet this is all supposition by meā€¦ I havenā€™t really invested into dependently typed languages or proof assistants to really know what Iā€™m getting into. Currently the Idris book is sitting in my desk :grin: but havenā€™t really invested the time to start it.

1 Like

In addition to all the responses above. Its sort of like a small club and they do what their friends do &&& the word RISK MANAGEMENT (which last time I checked is a financial term so it sort of ego-validates financial memes/practices too). If you could spin the same args for Elixir/Erlang with 99.999999999999999999% SLA with a working precedent and with someone involved in this small club, perhapsā€¦

I pinged a very smart guy who I once had the opportunity to work with who is a finance exec to look at Elixir and he reminded me that they are still using tons of tons of COBOLā€¦ :stuck_out_tongue_winking_eye:

Going to grab a burritoā€¦

3 Likes

Battle proven doesnā€™t mean perfect. Java has gotten the job done for years and continues to do so.

1 Like

So does COBOL. :wink:

2 Likes

COBOL + mainframe owns Java as far as uptime :slight_smile:

1 Like

Absolutely! I donā€™t see either COBOL or Java going away any time soon.

A couple months back, I saw an ad featuring a couple of cheerful millennials explaining why they liked being COBOL devs.

True, but Java on mainframe would narrow the gap.