6 najpopularniejszych języków programowania używanych w bankowości

Gdyby zapytać grupy programistów jaka technologia jest najlepsza przy tworzeniu oprogramowania dla bankowości, z pewnością odpowiedź brzmiałaby “To zależy.” I trudno się z tym nie zgodzić, bo dobór technologii zależy od celu, który ma realizować. Jednak biorąc pod uwagę specyfikę branży bankowej, wyśrubowane standardy bezpieczeństwa i konieczność zgodności z legislacją, wybraliśmy 7 technologii, które najczęściej wykorzystuje się w bankowości. 

 

COBOL 

Cobol jest swoistą legendą bankowego IT. Każdy, kto przynajmniej przez moment miał styczność z tym tematem, kojarzy go jako wieloletnią podstawę wszelkich systemów bankowych. Choć dziś programistom zdarza się żartować z tego języka, okazuje się, że niesłusznie. Według danych Reutersa aż 43% dzisiejszych światowych informatycznych systemów bankowych jest stworzona z użyciem COBOL-a, więc jak widać ma się on nadal całkiem nieźle. Nazwa COBOL to akronim od słów Common Business-Oriented Language i właśnie to, że sprawdza się on świetnie przy realizacji celów biznesowych i komercyjnych tłumaczy w dużej mierze jego zastosowanie w bankowości. Ponadto, COBOL odznacza się także prostą i zrozumiałą składnią, co sprawia, że nawet nietechniczna osoba potrafi sporo rozgryźć podczas czytania kodu. 

 

C#

C# to wysokopoziomowy język obiektowy stworzony przez Microsoft. Pomimo upływu lat, wciąż zajmuje wysokie pozycje w rankingach popularności języków programowania. Sprawdza się świetnie w tworzeniu rozbudowanych systemów i dużych projektów, co poniekąd tłumaczy jego miejsce w tym artykule. Tym co wyróżnia C#, jest przede wszystkim fakt, że to technologia ze stajni Microsoftu, co ma przynajmniej dwie spore zalety. Pierwsza to oczywiście kwestia tego, że za tym językiem stoi jeden z technologicznych gigantów, z ogromnym budżetem na rozwój i bardzo dużym wsparciem. Druga to niewątpliwie duża kompatybilność wsteczna (cecha oprogramowania, dzięki której − mimo zmiany funkcjonalności − nowa wersja umożliwia współpracę z całym otoczeniem wcześniejszej wersji i jej wszystkimi komponentami). W kontekście tak pożądanej przewidywalności, Microsoft otwarcie określa kierunek rozwoju swojej technologii, dzięki czemu dosyć jasno i klarownie można przewidzieć z jakimi zmianami przyjdzie się nam zmierzyć na przestrzeni kolejnych kilku lat. 

 

C/C++

Choć C/C++ został stworzony w latach osiemdziesiątych ubiegłego wieku, szeroki zakres jego zastosowania sprawia, że nadal opiera się na nim wiele dużych systemów i aplikacji. C++ wyróżnia to, że sprawdza się przy tworzeniu skomplikowanych, wielopoziomowych systemów, ze względu na specyficzny kompilator. Kompilator C++ silnie przestrzega zgodności typów, dlatego w kodzie napisanym w C++ trudniej jest popełniać błędy, co prowadzi nas do większego bezpieczeństwa aplikacji pisanych w tym języku. 

 

JAVA/ SPRING

Java to niekwestionowana królowa technologii bankowych, której nie trzeba nikomu przedstawiać. Świetnie sprawdza się w projektach, które wymagają bardzo wysokiego poziomu bezpieczeństwa i dużej wydajności. Ponadto odznacza się dużą stabilnością i często wykorzystuje się ją w dużych wdrożeniach. Tym co bardzo wyróżnia Javę, jest jej niezależność od architektury. Powstały kod jest niezależny od systemu operacyjnego i procesora, a wykonuje go tzw. wirtualna maszyna Javy, która (między innymi) tłumaczy kod uniwersalny na kod dostosowany do specyfiki konkretnego systemu operacyjnego i procesora. Taka uniwersalność sprawia, że wszędzie tam gdzie możliwe jest zainstalowanie wirtualnej maszyny, możliwe jest również korzystanie z Javy. 

 

JAVASCRIPT/ ANGULAR.JS

JavaScript, a właściwie framework tego języka, Angular.js jest najczęściej wybieraną technologią przy tworzeniu warstwy front-end aplikacji bankowych. JavaScript pozwala budować aplikacje webowe w technologii SPA - Single Page Application, która bardzo ułatwia intuicyjne korzystanie z aplikacji. Podobnie jak w przypadku pozostałych języków, Javascript jest bardzo stabilnym językiem, wspieranym od wielu lat. Zważywszy na to, że technologie front-endowe zmieniają się niemal z dnia na dzień i można wśród nich zauważyć duże rozwarstwienie, w kontekście stabilności i przewidywalności JavaScript wydaje się najbardziej optymalnym wyborem.

 

PYTHON

Python to technologia, którą wykorzystuje się najczęściej w obszarze sztucznej inteligencji i uczenia maszynowego, a także w analizie danych i data science. Jest to język bardzo szerokiego zastosowania, a biorąc pod uwagę, że banki coraz mocniej wykorzystują algorytmy AI, nie dziwi więc rosnąca popularność Pythona w tej branży. Python jest przyjazny matematyce, a przez to dobrze “rozumie się” właśnie z algorytmami finansowymi. Co ciekawe, wiele organizacji z obszaru fintech i core banking często wykorzystuje Pythona do analizy danych, a biorąc pod uwagę rosnącą konieczność współpracy technologicznej pomiędzy branżą bankową a pozostałymi instytucjami quasi finansowymi, można się spodziewać, że jego popularność w tym obszarze jeszcze wzrośnie.

 

Podsumowanie

To co jest bardzo znamienne w przypadku technologii bankowych, to fakt, że do tworzenia oprogramowania i poszczególnych komponentów wybiera się zazwyczaj języki długo wspierane i stosunkowo przewidywalne. Jako że systemy bankowe są skomplikowane i rozbudowane, banki rzadko decydują się na ich przepisywanie z jednej technologii na inną. W związku z tym kluczowa jest stabilność oraz gwarancja tego, że język będzie jak najdłużej wspierany, nierzadko jednak kosztem rozwoju technologicznego branży. Tym, co z pewnością będzie stanowić jedno z wyzwań dla bankowości na najbliższe lata, to znalezienie kompromisu pomiędzy korzystaniem ze sprawdzonych rozwiązań, bezpieczeństwem i stałością, a możliwością rozwoju i wykorzystania najnowszych technologii.


Co sprawia, że architektura mikroserwisów jest tak efektywna?

Od kilku lat na rynku IT możemy obserwować rosnącą popularność mikroserwisów, które powoli spychają na boczny tor dominującą do tej pory architekturę monolityczną. Struktura mikroserwisów, w przeciwieństwie do monolitu to zbiór wielu, niezależnych od siebie usług i procesów, które razem tworzą aplikację. Mikroserwisy to wygodne rozwiązanie przy tworzeniu zaawansowanego systemu lub dużych aplikacji - pozwala na szybkie wdrożenie projektu oraz równoległą pracę nad kilkoma modułami jednocześnie. Choć na mikroserwisach swoje rozwiązania oparli tacy giganci jak Netflix czy Uber, nie tylko to stanowi o niezwykłości tego podejścia.

Elastyczność
Mikroserwisy, w przeciwieństwie do architektury monolitów pozwalają na łatwą modyfikację funkcjonalności w projekcie. Ze względu na to, że każdy mikroserwis to niezależny element aplikacji, można zmieniać, dodawać i usuwać kolejne komponenty w taki sposób, by nie wpływało to na funkcjonowanie całości. Odpadają zatem takie problemy jak cykliczna zmiana testów automatycznych czy ryzyko zatrzymania całej aplikacji przy wdrożeniu następnego modułu.

Łatwa integracja
Otwarte API, wykorzystywane w architekturze mikroserwisów pozwala na szybką i bezproblemową integrację z innymi serwisami. Rozwiązanie takie jak API Gateway pośredniczy w komunikacji pomiędzy modułami, umożliwiając wygodne dostosowanie API pod konkretnych klientów, bez potrzeby umieszczenia go w każdym mikroserwisie.

Skalowalność
Podejście modułowe pozwala błyskawicznie i efektywnie reagować na dynamikę środowiska biznesowego - zmiana wymagań biznesowych nie oznacza restrukturyzacji całej aplikacji, a jedynie tego modułu, który dotyczy danej funkcjonalności. Ponadto w przypadku dużych obciążeń mikroserwisy pozwalają na sprawne zwiększenie liczby instancji, które balansują nadmiarowy ruch w aplikacji, co także adresuje problem wydajności.

Szybkie wdrożenie 
Mikroserwisy dają możliwość szybkiego releasu MVP systemu. Wdrożenie w pełni działającej, podstawowej i gotowej do dalszego rozwoju aplikacji jest przy tej architekturze kwestią kilku tygodni. Z kolei dodawanie kolejnych modułów i modyfikacja już istniejących nie komplikuje w żaden sposób możliwości korzystania z systemu przez klientów, ponieważ jest zwyczajnie mniej inwazyjne niż w przypadku monolitu i nie oddziałuje na core aplikacji.

Niezależny development i autonomia
Architektura rozproszona oznacza także niezależność zespołów projektowych. Nie ma tutaj centralnego ośrodka zarządzającego, dzięki czemu przepływ informacji jest płynniejszy. Każdy zespół pracuje nad “swoim” elementem aplikacji i nie musi brać pod uwagę baz danych czy architektury pozostałych modułów. Co ciekawe, mikroserwisy pozwalają na rozwijanie każdego elementu w innej technologii i języku, oraz utrzymanie serwisów na osobnych serwerach i w repozytoriach. Tak rozumiana niezależność rozwiązuje problem długu technicznego oraz zwiększa efektywność samego systemu.

 

Oczywiście, mikroserwisy nie są lekiem na całe zło. Póki co, nie istnieje architektura, która byłaby pozbawiona wad, a przy tym nadawałaby się do każdego typu aplikacji. Nie inaczej jest z mikroserwisami. W przypadku gdy rozważasz wdrożenie architektury mikroserwisów, kluczowym pytaniem, które powinieneś sobie zadać nie jest “Czy?”, tylko “Jak?”, bowiem nieprawidłowe opracowanie wymagań technicznych i struktury, czy brak przemyślanej obsługi ruchu pomiędzy serwerami, może wyrządzić ostatecznie więcej złego niż dobrego. Zaniedbanie tych kwestii na etapie planowania może spowodować klasyczne wylanie dziecka z kąpielą i w efekcie najprawdopodobniej okaże się, że architektura, która w założeniu miała wiele spraw ułatwić, tak naprawdę spędza sen z powiek wszystkim zainteresowanym. Warto wtedy rozważyć wsparcie partnera technicznego, który ma doświadczenie w tworzeniu rozwiązań opartych o mikroserwisy. Dzięki temu ominiesz wiele trudności związanych z wdrożeniem i jednocześnie będziesz mieć pewność, że czeka Cię sprawny release oraz system, który można modyfikować na tyle elastycznie, by na bieżąco dostosowywać się do szybko zmieniających się wymagań biznesowych.

 


INCAT Sp. z o.o. realizuje projekt “Managed Services Console – platforma operatorska do zarządzania, nadzoru i realizacji usług serwisowych w branży fintech” w ramach Funduszy Europejskich dla Nowoczesnej Gospodarki. Działanie: Ścieżka SMART.

Privacy Preference Center