If you were to ask groups of programmers what technology is best for creating software for banking, the answer would undoubtedly be “It depends.” And it’s hard to disagree, as the choice of technology depends on the goal that it is supposed to achieve. However, taking into account the specificity of the banking industry, stringent security standards and the need for compliance with legislation, we have chosen 8 technologies that are most commonly used in banking and finance sector.
COBOL
COBOL is a legacy language that has been used for many years as the foundation of banking systems. Anyone who has had at least a moment of contact with this subject associates it as the long-standing basis of all banking systems. Although today programmers sometimes joke about this language, it turns out that it is not deserved. According to Reuters data, as much as 43% of today’s global banking IT systems are created using COBOL, so as you can see, it still has quite a good reputation. The name COBOL is an acronym for Common Business-Oriented Language, and the fact that it is excellent at achieving business and commercial goals is what largely explains its use in banking. In addition, COBOL is also characterized by simple and understandable syntax, which makes it easy even for a non-technical person to understand while reading the code.
According to Reuters, 43% of today’s global banking IT systems are created using COBOL.
C#
C# is a high-level object-oriented language created by Microsoft. It is known for its ability to create complex systems and large projects. Despite the passage of time, it still occupies high positions in popularity rankings of programming languages. It works great for creating advanced systems and large projects, which partly explains its place in this article. What sets C# apart is primarily the fact that it is a technology from the Microsoft stable, which has at least two major advantages. The first is, of course, the fact that this language is behind one of the technological giants, with a huge budget for development and a lot of support. The second is undoubtedly a high level of backward compatibility (a feature of software that allows the new version to work with the entire environment of the previous version and all its components). In the context of such desirable predictability, Microsoft openly defines the direction of development of its technology, so it can be quite clearly and clearly predicted what changes we will have to face in the next few years.
C/C++
Although C/C++ was created in the 1980s, its wide range of applications means that many large systems and applications still rely on it. C++ stands out for its ability to create complex, multi-level systems due to its specific compiler. The C++ compiler strongly enforces type compliance, making it harder to make errors in the code written in C++, leading to greater security of applications written in this language. C++ is also used in the fintech industry, known for its efficiency, tight data structures and template metaprogramming, making it one of the fastest programming languages
JAVA/ SPRING
Java is the undisputed king of banking technologies that needs no introduction. It works great in projects that require a very high level of security and high performance. It is also characterized by high stability and is often used in large implementations. What sets Java apart is its independence from the architecture, meaning it can run on any system. The created code is independent of the operating system and processor, and is executed by the so-called Java Virtual Machine, which (among other things) translates universal code into code adapted to the specifics of a particular operating system and processor. Such universality means that everywhere where it is possible to install a virtual machine, it is also possible to use Java. BOS core banking system has been written in the JAVA language, and it has been implemented on Kubernetes container.
JAVASCRIPT/ ANGULAR.JS
JavaScript, or rather the framework of this language, Angular.js, is the most commonly chosen technology when creating the front-end layer of banking applications. JavaScript allows building web applications in SPA (Single Page Application) technology, which greatly facilitates intuitive use of the application. Like other languages, JavaScript is a very stable language, supported for many years. Given that front-end technologies are changing almost daily and there is a large gap among them, in terms of stability and predictability, JavaScript seems to be the most optimal choice.
PYTHON
Python is a technology that is most commonly used in the field of artificial intelligence and machine learning, as well as in data analysis and data science. It is a language of very wide application, and given that banks are increasingly using AI algorithms, it is not surprising that Python’s popularity in this industry is growing. Python is friendly to mathematics, and therefore well “understands” financial algorithms. Interestingly, many fintech and core banking organizations often use Python for data analysis, and given the growing need for technological cooperation between the banking industry and other quasi-financial institutions, one can expect its popularity in this area to increase. Popular banks such as Credit Suisse and Barclays are particularly interested in Java and Python skills.
GO
Go is a relatively new programming language that is gaining popularity in the banking industry due to its ability to handle large amounts of data and its ease of use. It is often used for developing applications that require high performance and scalability.
RUST
Rust is a systems programming language that is gaining traction in the banking industry for its focus on security and memory safety. It is used for developing low-level systems and applications that require high performance and security.
What is very significant in the case of banking technologies is the fact that for creating software and individual components, languages that have been long supported and relatively predictable are usually chosen. Since banking systems are complex and extensive, banks rarely decide to rewrite them from one technology to another. Therefore, stability and the guarantee that the language will be supported for as long as possible, often at the expense of technological development in the industry, are crucial. What will certainly be one of the challenges for banking in the coming years is to find a compromise between using proven solutions, security and stability, and the ability to develop and use the latest technologies.