According to Statista, in 2018, the global banking and financial services software market was valued at about 24 billion U.S. dollars.
It’s fair to say that financial services domain is a hot thing right now, and no wonder that many developers are thinking about going financial. So there’s a legitimate question they ask themselves: what languages should I learn to start my career in the financial sector of development?
But let’s be clear – the career in the financial sphere isn’t solely about developing. In today’s financial services market, there are two different approaches to jobs, or, two different business models, if you will.
The first one is technological consulting. Again, in this case, two independent models are available for bank institutions: consultants can either be hired directly or, alternatively, through the services of consultancy companies like Deloitte or Capco. There’s one important aspect worth mentioning: if you decide to work following this model, you should be aware that the software you work on is the intellectual property of your employer. In other words, you get your paycheck for your experience and commitment, not for the software itself.
The second one is the development of the software from scratch using your own ideas. It means that you develop a backend financial software by investing in it out of your personal funds. When it’s ready to hit the market, you do some marketing and, in case your solution is worthy, you sell it to banks, frequently via the license model.
One way or another, your journey into both types of careers starts with your skills as a developer. No matter what route you’re going to take, you need to have substantial programming capabilities, wrapped around a problem solving and analytical mindset.
Now we can go back to the initial question. So what are the best programming languages I should learn to make financial software?
Actually, it all depends on the purpose of a particular piece of software. What are the criteria anyway?
The crucial features of a programming language within a FinTech solution are:
- easy to deal with;
- ready-made libraries and components;
The list below represents the most appropriate languages for financial software developers so far.
Created by Guido van Rossum and released back in 1991, Python is a popular choice when talking about machine learning as it offers a waste set of libraries for statistical purposes and various mathematics models. Secondly, this language can be used for both desktop and web applications. Some people claim that Python is easy to learn, the others say it’s not. Anyway, prototyping looks not hard to master, and this language helps to fast results. Sure, like any other language, Python has its drawbacks. I mean it is considered a “slow” language in comparison with other languages. For instance, if you need to run simulation algorithms, you better choose something else.
However, one may rest assured: the syntax of Python comes the closest to the mathematical syntax which is used in financial algorithms. Moreover, this feature makes Python the easiest language in terms of learning by non-developers like mathematicians and economists.
If to sum up all this, it’s fair to say that Python isn’t the fastest language in terms of performance but its structure is rather simple which allows developers have fewer errors and do little bug-hunting.
Both these languages are all about velocity and pace. Do you need more speed? You’ve come to the right place. Besides, similar to Python, there are more than enough libraries. But keep in mind: you’ll have to invest a bit more time to get things done. Why? The thing is that C/C++ are low-level languages, and that means that you have to be very attentive about some aspects of development compared to, say, Java. On the other hand, lots of complex free compilers are available so it is possible for anybody to begin exploring this language in no time.
Developers love this dynamic duo for the balance between performance and convenience. No doubt – you can use Java and be as fast as C++, but it takes time and determination. Meanwhile, an average-quality C++ code will be much faster than average-quality Java code.
However, if you want an alternative opinion on the use of C++ in the financial sector, well, here it goes. Some people claim that the main reason behind the popularity of this language is simple: traders and quants have learned C++ in their formation. Obviously, they resort to it when they start a new project – who wouldn’t?
In a nutshell, it’s all about time and experience, it’s only natural. For example, Cobol (any clues about it, you newcomer?) was the most popular language in the finance domain some 30+ years ago.
Java, Clojure or Scala
Feel free to try to learn any of these. A big choice of libraries for nearly any purpose comes with the package, if I may put it this way. All of these JVM languages are superfast. What their weakness is then? If you compare those to Python, you’ll figure out that it may take a while to create a prototype. No, I don’t mean that it takes an eternity to get the result, but a lot more boilerplate code is needed – if you want a comparison with Python. Moreover, if to be fair, it is just partially true for Clojure, it’s more about Java and Scala. By the way – if you’re no stranger to Lisp, Clojure might be your weapon of choice.
Fortran and Julia
Don’t get mad at me – I know what the title says: here go the best languages only. And these two are definitely not the most used ones in the financial sphere. Let’s start with Julia, shall we? Well, Julia is a new kid on the block and few developers are willing to make friends with it. However, Julia breaks down the barrier between high-level and assembly code. Julia not only allows you to write code that works as fast as C code but also gives you the opportunity to look at the LLVM representation of functions and their generated assembler code.
Unlike Julia, Fortran has been there for ages. Without a doubt, it is a tremendous mathematical language, just not as popular as conventional Java. Fortran is the best choice for numerical mathematics, so it wouldn’t be fair not to mention it. The overall performance is good, think C if you need a reference. Furthermore, in some cases, Fortran may even outrun its younger colleagues.
They say – the best business is where you find it. Totally agree. The same paradigm is true for choosing a language. There’s no magic wand, all that matters is your persistence, talent and skills. Good luck with your language, whatever it may be.