Wiek to tylko liczba. Dlaczego stare języki programowania nie odeszły i mają się całkiem nieźle?

Wiek to tylko liczba. Dlaczego stare języki programowania nie odeszły i mają się całkiem nieźle?
Mające po kilkadziesiąt lat języki programowania takie jak Fortran (1) i Cobol wciąż są używane i w wielu okolicznościach wręcz niezbędne. Najciekawsze, że nowe obszary, w tym sztuczna inteligencja, nie tylko nie zastępują archaicznych rozwiązań, lecz wręcz przeciwnie, sprzyjają utrzymywaniu zainteresowania nimi.

Indeks społeczności programistycznej TIOBE jest miarą popularności języków programowania, stworzoną i utrzymywaną przez TIOBE Software BV z siedzibą w Eindhoven w Holandii. Nazwa TIOBE to skrótowiec od angielskiego tytułu sztuki Oscara Wilde’a „The Importance of Being Earnest” z 1895 roku. Indeks jest obliczany na podstawie liczby zapytań do wyszukiwarek internetowych zawierających nazwę języka. Indeks obejmuje wyszukiwania w Google, Google Blogs, MSN, Yahoo! Baidu, Wikipedii i YouTube. Jest aktualizowany raz w miesiącu. Koncentruje się na kompletnych językach Turinga, więc nie dostarcza informacji o popularności HTML lub innych języków znaczników, np. XML itp.

Edycja TIOBE Index z maja 2024 r. zaskoczyła wynikami, w których dwa z grupy najstarszych języków programowania znalazły się na czołowych miejscach pod względem popularności wśród programistów. Choć ścisła czołówka nie jest niespodzianką, z Pythonem, C i C++ na czele listy najpopularniejszych języków, to wysoka, dziesiąta pozycja Fortrana dla wielu była sporą niespodzianką. Jednak dla tych, którzy wiedzą, że jest to język programowania szczególnie dobrze nadający się do obliczeń numerycznych i zadań naukowych, już takim zaskoczeniem to nie było. Interesujące, że Fortran powrócił do pierwszej dziesiątki po ponad dwudziestu latach od momentu, w której ostatnio się tam znajdował.

Dyrektor generalny TIOBE Software, Paul Jansen, wyjaśniał przy okazji dodatkowe (poza techniczno-merytorycznymi) powody trwania Fortrana na wysokiej pozycji wśród zainteresowań programistów. Zwracał uwagę, że ponad tysiąc książek na temat Fortrana dostępnych jest w księgarni Amazona. Nowe, „fajne” języki, np. Kotlin i Rust, ledwo osiągnęły w tym zestawieniu liczbę trzystu książkowych publikacji, wyświetlających się dla tych samych zapytań. Ponadto Fortran współcześnie nie jest czymś, co jest dziś brane bez zmian z lamusa. Język ten wciąż ewoluuje, a najnowsza jego definicja ISO została opublikowana w 2023 roku. Podobnie jest zresztą z innymi wiekowymi językami. COBOL również przeszedł wiele znaczących aktualizacji od czasu powstania do współczesności, zaś ewolucja C, który z czasem pozwolił na stworzenie rozwinięć w kolejnych językach, np. C++, jest dobrze znana w świecie informatycznym.

Sprawdzone w boju i dobrze znane

Zatem twarde dane wyraźnie pokazują, że stare języki programowania, mimo upływu lat i pojawienia się nowych technologii, nadal odgrywają istotną rolę w świecie informatyki. Wiele systemów i aplikacji wciąż korzysta z tych języków, a eksperci przewidują, że będą one używane jeszcze przez długi czas.

COBOL, Fortran czy C to narzędzia sprawdzone w boju. Przez dziesięciolecia były testowane, poprawiane i optymalizowane. W rezultacie są niezwykle stabilne i przewidywalne w działaniu. Ta cecha jest szczególnie ceniona w systemach o dużych wymaganiach co do niezawodności i bezpieczeństwa, czyli w sieciach bankowych, infrastrukturze lotniczej, systemach kontroli przemysłowej. Stabilność tych języków oznacza mniejsze ryzyko nieoczekiwanych błędów i awarii, co jest kluczowe w aplikacjach, gdzie niezawodność jest priorytetem.

Wiele starszych języków programowania, szczególnie tych niskopoziomowych jak C czy Assembly, oferuje wysoką wydajność. Ich niskopoziomowość oznacza, że są bliższe sprzętowi komputerowemu, co pozwala na bardziej bezpośrednią kontrolę nad zasobami systemu. To sprawia, że dobrze nadają się do zadań fundamentalnych, np. do tworzenia systemów operacyjnych, programowania sterowników urządzeń, optymalizacji krytycznych części aplikacji wymagających wysokiej wydajności.

Przez lata i dekady powstało mnóstwo oprogramowania napisanego w starszych językach. Przepisanie starszych systemów na nowsze języki byłoby często zbyt kosztowne, czasochłonne i ryzykowne (możliwość wprowadzenia nowych błędów). Dlatego wiele firm decyduje się na utrzymanie i rozwijanie istniejących systemów, zamiast tworzyć je od nowa.

Niektóre stare języki programowania zostały stworzone z myślą o konkretnych zastosowaniach i nadal doskonale sprawdzają się w tych dziedzinach. Na przykład COBOL tworzony był ok. 70 lat temu do zastosowania w systemach finansowych i biznesowych. Fortran służył i służy w obliczeniach naukowych i inżynieryjnych. Prolog (od francuskiego Programmation en Logique) znajduje zastosowanie w sztucznej inteligencji i przetwarzaniu języka naturalnego. Ich specjalizacja sprawia, że są trudne do zastąpienia na tych konkretnych obszarach.

Stare języki programowania mają rozbudowane ekosystemy, na które składają się obszerne biblioteki i frameworki, narzędzia deweloperskie i społeczności doświadczonych programistów. Te ekosystemy ułatwiają pracę, oferują gotowe rozwiązania wielu problemów i zapewniają wsparcie dla programujących.

Wiele starszych języków programowania kładzie duży nacisk na zachowanie kompatybilności wstecznej. Oznacza to, że kod napisany dekady temu często może być skompilowany i uruchomiony na nowoczesnych systemach bez większych modyfikacji. Ta cecha jest niezwykle cenna dla firm i instytucji, które chcą utrzymać ciągłość działania swoich systemów w długich przedziałach czasowych.

Wiele instytucji edukacyjnych nadal uczy starszych języków programowania, szczególnie tych fundamentalnych jak C czy Java. To zapewnia ciągły dopływ nowych programistów znających te języki, co również sprzyja ich trwaniu w „technicznym obiegu”.

W świecie AI rywalizacja języków programowania traci na znaczeniu?

Zresztą kwestia znajomości i korzystania z tego czy innego języka programowania może zejść w nie tak chyba odległej przyszłości na dalszy plan. W miarę jak sztuczna inteligencja przejmuje coraz więcej zadań związanych z tworzeniem kodu oprogramowania, zadania programistów przesuwają się w stronę projektowania czegoś bardziej ogólnego, modeli, czy to biznesowych, czy operacyjnych, czy w końcu szkoleniowych dla AI.

W ciągu ostatnich kilku dziesięcioleci różne ruchy, paradygmaty lub skoki technologiczne wstrząsały światem programowania, obiecując albo przesunięcie wielu prac programistycznych na użytkowników końcowych, albo zautomatyzowanie większej części żmudnego procesu kodowania. Narzędzia CASE, 4GL, programowanie obiektowe, architektura zorientowana na usługi, mikrousługi, usługi w chmurze, platformy jako usługi, przetwarzanie bezserwerowe, niskokodowe i bezkodowe, miały zdejmować uciążliwe elementy z procesu tworzenia oprogramowania. Potencjalnie też ostatecznie zagrażać miejscom pracy programistów. To ostatnie jest wątpliwe, o ile oczywiście sami programiści potrafią zrozumieć swoją nową rolę w świecie, w którym kod powstaje w większości lub nawet w całości automatycznie.

Całkowite odejście od kodowania otwiera nowe spojrzenia na tworzenie aplikacji. Kieruje uwagę ku bardziej koncepcyjnemu i wysokopoziomowemu projektowaniu procesów zarówno w działalności firm, jak też operacji zwykłych użytkowników programów i aplikacji.

Takie podejście, jeśli ostatecznie zastąpi tradycyjny model pracy programisty piszącego kod, sprawiłoby, że porównania i rankingi popularności języków programowania, starych czy nowych, straciłyby na znaczeniu. W założeniu to ostatecznie maszyna, algorytm piszący kod wybierałby najbardziej optymalne narzędzia i metody osiągnięcia celu. Zapewne, jeśli byłby to system odzwierciedlający wypracowane przez dekady sposoby myślenia programistów, wybierze Fortrana czy COBOL-a do realizacji celów, do których realizacji wykorzystaliby te języki ludzie. A może stworzy nowe narzędzia będące hybrydami, nowymi formami łączącymi różne elementy i języki, czerpiąc z całej ich „chmury różnorodności” (2). AI to potrafi.

2. „Chmura” języków programowania.
Fot: AI

Wtedy też będzie można oczywiście mówić, że stare języki trwają, ale będzie to nowy świat, na który ludzie mogą mieć już ograniczony wpływ. 

Mirosław Usidus