Why are banks still using Java?

Hi all

Why Banks are using still a lot of JAVA?


1 Like

I believe the main reasons are:

  1. In large organizations, the people writing the code are not the same people that decide what language to use.
  2. In large organizations, it takes a long time for change to take place across-the-board
  3. Banks like taking risks (in new technologies) even less than most other large companies.
  4. Large organizations already have a large amount of legacy code written in a certain language, which needs to be maintained, and all new software should be compatible with the already-existing software.

Is this a good thing or a bad thing? Yes.


Banks still use a lot of COBOL :slight_smile:


Most developpers in “Entreprise” stuff like banks only knows Java. And education, changing technology, etc … is not at all something that happens in that type of environment.

Also Java is seen as “simple, easy and light” for them compared to most of their experience.

in 15 years, maybe they will have changed tech. But you have to keep in mind that a “normal small” project in that type of company tend to span between 3 to 15 years before seeing the light.

Source : i work in one of these company.


Banks are not normal company.

Their product is Trust. So every tech they use must go through a lot of Triage, Gate, consulting and finally they decide what will be in TAG.

Once it in TAG, you need to justify any other language can beat Java.

They consider like this way:

  • Is big company using the lang? if not , you are out
  • Is big company support the lang? Basically is do you charge money like Oracle, if not, you are out
  • How easy to replace the developer, see 50 developers? if not in one or two days, you are out. Bank layoff people by team or by director. Consider there are 20% developers in this world is Java developer.
  • Is the lang safe? this is why c and c++ is out. And Bank only use JDK1.6

I think banks are using very different system languages, not only java for example dot net platform like C#,F#.
I heard that Visa will be using blockchain https://chain.com/technology/ (https://changelog.com/gotime/23) .

Why java?
JVM is very stable, tuned machine.
JVM = Big Data, Micoservices, Distributed Systems
Java is static typed language -> this means it is well suited for big projects, many developers co working.

But not only banks use Java.
Netflix backend is heavy java user.
Google backend is heavy java user.

(Won’t argue if Java language is good, nice or bed. It definitely has own flaws :))

On the java topic:
Lots of Brazilian gov systems still uses those java on the browser thing (applets? don’t know the name) for digital certificate authentication among other things.
Chrome no longer supports NPAPI, Firefox is almost dropping support as well. What is the alternative to use digital certificates authentication without java on the browser? Is it even possible?

You can use browser https with digital signed certificate. It does not require any java.
I was thinking that java applets are already dead as flash :smiley:

I’ve ever worked in a big old national bank.

I can tell you, their code had awful lots of big ball of mud. And it has been like that for more than a decade. Only few dare to touch it.

Because of job security, most people who worked on the code were long-time employees, only them who could understand the code. The code itself rarely changed / refactored.

But recently, there is a huge, well-funded bank in my country that wants to try different approach. They’re using new technologies, hiring new young guys, and adopting startup-like style of development with rapid cycle of release.


Average Java programmers are easy to hire, organize, and replace.


Locally here it is all COBOL. >.>

In my opinion, using something which is not extremely enforcing in the type system that every cent is accounted for, rounding and all, and it is impossible to break out of in normal coding, then it should absolutely not be used. Thus Java should absolutely not be used. I’d probably use Idris or so. You could mostly force it well with OCaml or Haskell or so, but Idris is designed for just these kind of problems.


Thus Java should absolutely not be used. I’d probably use Idris or so.
… but Idris is designed for just these kind of problems.

Does Idris have a native Decimal type? I haven’t been able to find
anything about it…

I’m kind of interested to know what bank is that?

Pardon me if I’m wrong, but assuming that both of you are from Indonesia (from your names), I think @dwahyudi was talking about BTPN’s Jenius?

Nice guess! I see, Jenius looks cool. It can be a game changer, here

what about this https://www.fstar-lang.org/ ? :slight_smile:


I’ve not looked at it yet but I do keep meaning too, it is on my to-read list. :slight_smile:

Not that I’d seen built-in but it would be fairly trivial to build a safe one in it that forces you to have to handle partial cents as well.

They measure time in decades, and must maintain their soft and access to DATA a lifetime: unlimited retention periods.

1 Like

To be honest, for a lot of what banks do COBOL is a good choice. I started out programming COBOL for U.S Steel back in the 80’s using Hollerith cards. I much prefer today’s tech (especially Elixir), but COBOL has it’s place.


Meet the spawnproc https://web.archive.org/web/20170317035309/http://spawnproc.com:80/ https://github.com/spawnproc

Supposed to be deployed into the biggest Ukrainian bunk until politics happened. Developed by the Synrc team, a guys behind N2O Erlang framework http://n2o.space/ which used to power at least 3 cryptocurrency exchanges around the world.

1 Like