"Kako smo dovraga došli do toga da nam doslovno trebaju COBOL programeri?" upitao je guverner New Jerseyja Phil Murphy na nedavnoj konferenciji za novinare.
Sadržaj
- Fortran
- Ada
- Pascal
- BASIC / Visual Basic
- COBOL
Suočen s neviđenim brojem nezaposlenost prijave, država je morala odmah proširiti svoju 40 godina staru platformu za zahtjeve za nezaposlene — revizija koji je odmah pokrenuo bjesomučnu potragu za programerima koji su upoznati s desetljećima starim jezikom kodiranja COBOL.
Preporučeni videozapisi
Međutim, ovaj problem nema samo New Jersey. Mnogi svjetski bankovni, obrambeni i sustavi umjetne inteligencije koriste programske jezike koji su bili u modi kad je Apple ostao bez garaže.
Tehnološka industrija ima afiniteta prema stvarima koje su nove i vrhunske, ali da nije bilo starih jezika za kodiranje poput COBOL-a, Ada, Pascal i Fortran, kreditna industrija, znanstveno-istraživačke organizacije i brojni obrambeni sustavi propali bi zaustaviti. Drugim riječima, bez ovog starog koda bili bismo sjebani.
Pedeset godina stari programski jezici još uvijek izračunavaju milijune transakcija i statistika te služe kao okosnica za sustave na koje se oslanja moderni svijet. Na primjer, više od 95 posto bankomata i 40 posto banaka koristi COBOL kod, prema podacima iz 2017. Izvješće Reutersa.
Nekoliko od ovih drevnih tabulatora još uvijek vrlo dobro obavlja određene funkcije. Također postoji mnogo poslovnih rukovoditelja koji ne žele izdvojiti vremenski testirani softver koji je ključan za poslovanja svoje tvrtke, pa umjesto remonta i modernizacije, jednostavno zakrpaju stari kod i nadaju se najbolje.
Hrvanje s drevnom tehnologijom nije nova pojava. Na primjer, Kalifornija potrošio je stotine milijuna dolara pokušavajući ažurirati svoj DMV i tehnologiju obračuna plaća. Ipak, trenutna pandemija i rezultirajući val nezaposlenosti rasvijetlili su koliko se američke softverske infrastrukture raspada poput fizičke.
Evo pet "starinskih" jezika o kojima naš svijet ovisi više nego što mislite i zašto bi vas to moglo činiti malo nervoznima.
Fortran
Da nije bilo Fortrana, mnoga superračunala i modeli koje koristimo za stvari poput predviđanja vremena, astrofizike i statističke analize visoke razine jednostavno ne bi radili.
Izgradio ga je IBM 1950-ih, Fortran (skraćenica od Formula Translation) bio je jedan od prvih jezika visoke razine koji koristio riječi umjesto brojeva i omogućio programerima da pišu programe 500% brže nego kada koriste stroj kodirati. Ni približno toliko programera danas ne uči taj jezik.
"Stalno koristim Fortran - samo nikad ne razmišljam o tome", kaže James Howard, podatkovni znanstvenik u Johns Hopkins Applied Physics Laboratory. Iako Howard godinama nije programirao na tom jeziku, njegove aplikacije redovito pristupaju osnovnim bibliotekama Fortran-a. Izgrađeni ranih 70-ih, dobro su održavani i "zasljepljujuće brzi".
Posljednji put kada je Howard morao napisati Fortran program bilo je prije otprilike 10 godina. Radio je u Federalnim rezervama i trebao je premještati podatke između dvije aplikacije; jedan koji je napisan u C-u, a drugi u Fortran-u. Programi su prestali komunicirati jer je dobavljač prestao pružati biblioteku Fortran.
Programer od 40 i nešto sjetio se nečega što je čitao kao klinac, da je struktura pozivanja podataka za programski jezik C suprotna Fortranovoj. Napisao je jednostavan scenarij za promjenu poretka i, voila, Federalne rezerve su se vratile na posao.
Ada
Vladini programeri oslanjaju se na relativno opskurnu Ada bazu koda kada razvijaju sustave koji zahtijevaju pouzdanost, kao što su obrambeni i sigurnosni sustavi. Što je točno u njemu programirano? Pa, to je pomalo vladina tajna, ali NASA i Boeing su posljednjih godina koristili kod temeljen na Adi za programiranje satelita i zrakoplova.
Ministarstvo obrane (DOD) nadgledalo je razvoj Ade 1970-ih kako bi se smanjio broj programskih jezika koje je koristila vojska, a kojih je u to vrijeme bilo preko 400. Ada je napravljena da bude neupitno pouzdana u situacijama života ili smrti i ojačana protiv programerskih pogrešaka. Iako je jezik dostavljen 1980., Kongres nije odredio njegovu upotrebu u svim državnim sustavima sve do 1995. Dvije godine kasnije, DOD je napustio mandat, računajući da će biti jeftinije i fleksibilnije koristiti široko dostupne, ažurne sustave. Ali i danas je u upotrebi.
Pascal
Mnogi programeri smatraju Pascal gotovo mrtvim programskim jezikom, ali on i dalje živi na nekoliko načina. “Vjerovali ili ne, to je još uvijek vrlo popularan jezik u mnogim dijelovima svijeta, ali u SAD-u biste mogli dobro govoreći latinski,” kaže Dave Hatter, koji je proveo tri godine u velikom osiguravajućem društvu pomažući ažurirati a milijuna redaka koda koji procjenjuju koliko police koštaju i koliko plaćaju.
Mnogi od tih starijih programa napisani su davno prije današnje zabrinutosti oko sigurnosnih proboja i imaju osjetljive vlasničke informacije. Hatter, koji sada radi kao tehničar za kibernetičku sigurnost, smatra da bi programi mogli biti relativno sigurni samo zbog "sigurnosti po nejasnoći" - mladi koderi ne znaju što bi s kodom starim desetljećima. "15-godišnji haker neće imati pojma kako raditi s nekom vrstom IBM 390 glavnog računala s COBOL-om", kaže on. “Ne kažem da nisu mogli učiti. Ali oni neće znati.”
Pascal je bio osnova za rani Appleov operativni sustav, a potomak tog jezika, Delphi, još uvijek ima snažne zagovornike. Zapravo, Skype — jedna od prvih aplikacija za video pozive koja je stekla široku popularnost i upotrebu — izvorno je napisan u Delphiju.
BASIC / Visual Basic
BASIC nije baš na vrhu liste kada je riječ o jezicima koje ljudi koriste u 2020., ali mnoge moderne aplikacije na koje se oslanjamo jednostavno ne bi postojale bez njega. Na primjer, ako ste ikada programirali Excel makronaredbu, koristili ste oblik BASIC-a.
Skraćeno od Beginner’s All-Purpose Symbolic Instruction Code, BASIC je pokrenut 1963. na Dartmouth Collegeu kao način poučavanja općoj publici teorije i mogućnosti programiranja — zaronite u vodu prije nego što uđete u robusnije jezike poput Fortran. Popularnost BASIC-a porasla je zajedno s osobnim računalima - Apple, IBM i Atari računala su sva imala svoje verzije.
Do sredine 1980-ih, samouki računalni štreberi bili su manje oduševljeni BASIC-om, a više zainteresirani za programe trećih strana. Zatim je Microsoft lansirao Visual Basic 1991., koji nije bio baš ažuriranje BASIC-a, ali je koristio neke iste naredbe i strukturu i imao je bolje grafičko sučelje. Zatim su jezik koristile brojne tvrtke za pisanje velikih i malih programa. Iako je Microsoft rekao da je zaustavio podršku za Visual Basic 6 (najnoviju verziju) 2008. godine, jezik još uvijek ima mnogo korisnika. Provjeri Tiobe indeks (koja prikazuje najpopularnije programske jezike): VB je još uvijek u top 10!
COBOL
"Rekao bih da više od 90% ljudi koje vidimo imaju COBOL kao temeljni dio onoga što su napisali", procjenjuje Brandon Edenfield, koji ažurira i prenosi naslijeđene aplikacije za Moderni sustavi te je pomogao revidirati kodeks za burze u New Yorku i Singapuru. "Svaka velika tvrtka koje se možete sjetiti vjerojatno ima nezdravu količinu ovih stvari."
COBOL, akronim za Common Business-Oriented Language, pokrenut je 1959. godine usmjeren na zadatke obrade podataka poput praćenja proračuna, bankovnih transakcija i obračuna plaća. Ministarstvo obrane (DOD) izvorno je dizajniralo jezik kao privremeni projekt. Zatim je DOD zahtijevao od proizvođača računala da uključe COBOL na strojeve koje prodaju i jezik se brzo proširio tijekom sljedećih nekoliko desetljeća. Više od 95% bankomata i 40% banaka još uvijek koriste COBOL kod, prema podacima iz 2017. Izvješće Reutersa.
Velik dio tog programiranja bio je implementiran kroz mainframe računala, a moderni sustavi su se preselili u oblak. Kao što je ilustrirano teško stanje u New Jerseyju, programeri koji su znali kako održavati COBOL kod ostarjeli su ili su već otišli u mirovinu.
Tvrtke koje moderniziraju te programe obično to čine na nekoliko različitih načina.
“Veliki integrator sustava bacit će hrpu tijela na kod; oni će sjesti, pogledati ga i prepisati", kaže Edenfield. Taj je pristup često najrizičniji, dugotrajan i skup. U prosjeku, ručno kodirani, veliki poslovi replatformiranja mogu trajati od 3 do 10 godina i mogu stajati stotine milijuna dolara.
Edenfield preporučuje automatizirana rješenja i kaže da bi prvi logičan korak mogao biti samo premještanje koda iz zastarjelu verziju COBOL-a u sadašnju, što bi mnogim sustavima omogućilo prijelaz na moderne poslužitelji. On uspoređuje strojno ažuriranje s prevođenjem francuskog na engleski: “Osnova onoga što je rečeno prevedena je savršeno. Samo moraš popraviti sintaksu načina na koji se to izražava." Taj pristup također može smanjiti vrijeme i troškove ažuriranja, kaže on, negdje između šest i 24 mjeseca.
Hoće li biti jeftino? Pa bit će jeftinije. Projekti modernih sustava obično se kreću u rasponu cijena od 200.000 do 10 milijuna dolara. Velik dio projekta, objašnjava Edenfield, nije prevođenje koda, već testiranje kako bi se osiguralo da sve radi kako treba.
Zašto se ova ažuriranja ne događaju?
“Nitko prije nije čuo za ovo jer to nije seksi tema, a ljudi obično ne pokušavaju razgovarati o prljavom rublju koje imaju”, objašnjava. IT rukovoditelji također imaju naviku šutnuti limenku niz cestu.
"Kladim se da će država New Jersey sada obratiti pozornost na ovo pitanje, ali također se kladim da će pola njihovih kolega misliti da se to neće dogoditi njima, 'Ne meni'."