Sodobni svet je zgrajen na starodavni kodi. To je problem

starodavni kodirni jeziki
Genevieve Poblano/Digitalni trendi

"Kako za vraga smo prišli sem, da dobesedno potrebujemo programerje COBOL?" je na nedavni novinarski konferenci vprašal guverner New Jerseyja Phil Murphy.

Vsebina

  • Fortran
  • Ada
  • Pascal
  • BASIC / Visual Basic
  • COBOL

Soočeni s številom brez primere brezposelnost vlog, je morala država takoj razširiti svojo 40 let staro platformo za vloge za primer brezposelnosti – prenova kar je takoj sprožilo mrzlično iskanje programerjev, ki poznajo desetletja star kodirni jezik COBOL.

Priporočeni videoposnetki

Te težave pa nima le New Jersey. Številni svetovni bančni, obrambni in sistemi umetne inteligence se ukvarjajo s programskimi jeziki, ki so bili v modi takrat, ko je Applu zmanjkalo garaže.

Tehnološka industrija ima afiniteto do stvari, ki so nove in vrhunske, a če ne bi bilo starih kodirnih jezikov, kot je COBOL, Ada, Pascal in Fortran, kreditna industrija, znanstvenoraziskovalne organizacije in številni obrambni sistemi bi zakričali zaustavitev. Z drugimi besedami, brez vse te stare kode bi bili zajebani.

Petdeset let stari programski jeziki še vedno izračunavajo milijone transakcij in statističnih podatkov ter služijo kot hrbtenica sistemov, na katere se opira sodobni svet. Na primer, po podatkih iz leta 2017 več kot 95 odstotkov bankomatov in 40 odstotkov bank uporablja kodo COBOL. Poročilo Reutersa.

Nekateri od teh starodavnih tabulatorjev še vedno zelo dobro opravljajo določene funkcije. Obstaja tudi veliko vodij podjetij, ki ne želijo ločiti časovno preizkušene programske opreme, ki je ključnega pomena za poslovanja svojega podjetja, zato namesto prenove in posodobitve preprosto popravijo staro kodo in upajo na najboljši.

Boj s starodavno tehnologijo ni nov pojav. na primer Kalifornija je porabil na stotine milijonov dolarjev, ko je poskušal posodobiti svojo tehnologijo DMV in obračun plač. Vendar sta trenutna pandemija in posledični val brezposelnosti razjasnila, koliko ameriške programske infrastrukture propada tako kot njena fizična.

Tukaj je pet "starih" jezikov, od katerih je naš svet odvisen bolj, kot se zavedate, in zakaj bi vas to lahko spravilo nekoliko živčnega.

Fortran

ročni pokrov fortrana

Če ne bi bilo Fortrana, številni superračunalniki in modeli, ki jih uporabljamo za stvari, kot so vremenska napoved, astrofizika in statistične analize na visoki ravni, preprosto ne bi delovali.

Fortran (okrajšava za Formula Translation), ki ga je zgradil IBM v petdesetih letih prejšnjega stoletja, je bil eden prvih visokonivojskih jezikov, ki uporabil besede namesto številk in omogočil koderjem pisanje programov 500 % hitreje kot pri uporabi stroja Koda. Jezika se danes ne uči niti približno toliko razvijalcev.

"Ves čas uporabljam Fortran - samo nikoli ne razmišljam o tem," pravi James Howard, podatkovni znanstvenik pri Johns Hopkins Applied Physics Laboratory. Medtem ko Howard leta ni programiral v jeziku, njegove aplikacije redno dostopajo do Fortranovih osnovnih knjižnic. Zgrajeni so bili v zgodnjih 70-ih, so dobro vzdrževani in "slepeče hitri".

Nazadnje je Howard moral napisati program Fortran pred približno 10 leti. Delal je v Federal Reserve in je moral premikati podatke med dvema aplikacijama; enega, ki je bil napisan v C, drugega pa v Fortranu. Programa sta prenehala komunicirati, ker je prodajalec prenehal zagotavljati knjižnico Fortran.

40-letni programer se je spomnil nečesa, kar je prebral kot otrok, da je struktura klicanja podatkov za programski jezik C nasprotna fortranovi. Napisal je preprost scenarij za spremembo naročila in, voila, Federal Reserve je spet začela delovati.

fortranski punchard

Ada

Vladni programerji se pri razvoju sistemov, ki zahtevajo zanesljivost, kot so obrambni in varnostni sistemi, zanašajo na razmeroma nejasno kodno bazo Ada. Kaj točno je programirano v njem? No, to je nekakšna vladna skrivnost, vendar sta NASA in Boeing v zadnjih letih uporabljala kodo, ki temelji na Adi, za programiranje satelitov in letal.

Ministrstvo za obrambo (DOD) je nadzorovalo razvoj Ade v sedemdesetih letih prejšnjega stoletja, da bi zmanjšalo število programskih jezikov, ki jih uporablja vojska, ki jih je bilo takrat več kot 400. Ada je bila zgrajena tako, da je nedvomno zanesljiva v situacijah življenja ali smrti in okrepljena proti programerskim napakam. Čeprav je bil jezik uveden leta 1980, je kongres predpisal njegovo uporabo v vseh vladnih sistemih šele leta 1995. Dve leti pozneje je Ministrstvo za obrambo opustilo mandat, saj je menilo, da bo ceneje in bolj prilagodljivo uporabljati široko dostopne, posodobljene sisteme. Vendar je še danes v uporabi.

Pascal

pascal plakat
V zgodnjih 80-ih je bilo po vsej pisarni podjetja mogoče najti plakat Apple Pascal, ki je programerjem dajal vpogled v uporabo kode.

Mnogi programerji menijo, da je Pascal skoraj mrtev programski jezik, vendar živi na več načinov. »Verjemite ali ne, to je še vedno zelo priljubljen jezik v mnogih delih sveta, toda v ZDA bi lahko dobro govoriti latinsko,« pravi Dave Hatter, ki je tri leta delal v veliki zavarovalnici in pomagal posodobiti a milijonov vrstic kode, ki je ocenila, koliko police stanejo in koliko so plačale.

Veliko teh starejših programov je bilo napisanih veliko pred današnjimi pomisleki glede kršitev varnosti in imajo občutljive lastniške podatke. Hatter, ki zdaj dela kot tehnik za kibernetsko varnost, meni, da so lahko programi razmeroma varni samo zaradi "varnosti z nejasnostjo" - mladi koderji ne vedo, kaj bi počeli z desetletja staro kodo. "15-letni heker ne bo imel pojma, kako delati z nekakšnim glavnim računalnikom IBM 390 s COBOL-om," pravi. »Ne rečem, da se niso mogli učiti. Ampak ne bodo vedeli."

Pascal je bil osnova za zgodnji Applov operacijski sistem, potomec jezika Delphi pa ima še vedno močne zagovornike. Pravzaprav je bil Skype – ena prvih aplikacij za video klice, ki je pridobila široko priljubljenost in uporabo – prvotno napisan v Delphiju.

BASIC / Visual Basic

BASIC ni ravno na vrhu seznama, ko gre za jezike, ki jih ljudje uporabljajo v letu 2020, vendar mnoge sodobne aplikacije, na katere se zanašamo, brez njega preprosto ne bi obstajale. Na primer, če ste kdaj programirali Excelov makro, ste uporabili obliko BASIC.

Skrajšano za Beginner's All-Purpose Symbolic Instruction Code, BASIC je bil uveden leta 1963 na Dartmouth College kot način poučevanja splošnemu občinstvu teorije in zmožnosti programiranja – potopite se v vodo, preden se lotite robustnejših jezikov, kot je Fortran. Priljubljenost BASIC-a je narasla skupaj z osebnim računalnikom - računalniki Apple, IBM in Atari so vsi imeli svoje različice.

Do sredine osemdesetih let so bili samouki računalniški piflarji manj navdušeni nad BASIC-om in bolj zainteresirani za programe tretjih oseb. Nato je Microsoft leta 1991 lansiral Visual Basic, ki ni bil ravno posodobitev BASIC-a, vendar je uporabljal nekaj enakih ukazov in strukture ter imel boljši grafični vmesnik. Potem so ta jezik uporabljala številna podjetja za pisanje velikih in majhnih programov. Čeprav je Microsoft dejal, da je leta 2008 ustavil podporo za Visual Basic 6 (najnovejša različica), ima jezik še vedno veliko uporabnikov. Preverite Indeks Tiobe (ki prikazuje lestvico najbolj priljubljenih programskih jezikov): VB je še vedno med top 10!

COBOL

cobol plakat
Plakat iz leta 1969, ki promovira razred MIT COBOL.

»Rekel bi, da ima več kot 90 % ljudi, ki jih vidimo, COBOL kot osrednji del tega, kar so napisali,« ocenjuje Brandon Edenfield, ki posodablja in prenaša podedovane aplikacije za Sodobni sistemi in je pomagal revidirati kodo za newyorško in singapursko borzo. "Vsako večje podjetje, ki se ga spomnite, ima verjetno nezdravo količino teh stvari."

COBOL, akronim za Common Business-Oriented Language, je bil predstavljen leta 1959 in je bil namenjen nalogam obdelave podatkov, kot so sledenje proračunu, bančne transakcije in obračun plač. Ministrstvo za obrambo (DOD) je prvotno zasnovalo jezik kot začasni projekt. Nato je Ministrstvo za obrambo zahtevalo, da proizvajalci računalnikov vključijo COBOL v stroje, ki so jih prodajali, in jezik se je v naslednjih nekaj desetletjih hitro razširil. Po podatkih iz leta 2017 več kot 95 % bankomatov in 40 % bank še vedno uporablja kodo COBOL. Poročilo Reutersa.

Velik del tega programiranja je bil uveden prek velikih računalnikov, sodobni sistemi pa so se preselili v oblak. Kot je razvidno iz težav v New Jerseyju, se razvijalci, ki so znali vzdrževati kodo COBOL, starajo ali so se že upokojili.

Podjetja, ki posodobijo te programe, običajno to storijo na nekaj različnih načinov.

»Velik sistemski integrator bo kodo vrgel kup teles; se bodo usedli, pogledali in prepisali,« pravi Edenfield. Ta pristop je pogosto najbolj tvegan, dolgotrajen in drag. V povprečju lahko ročno kodirana velika dela preoblikovanja trajajo od 3 do 10 let in lahko stanejo na stotine milijonov dolarjev.

Edenfield priporoča avtomatizirane rešitve in pravi, da je morda prvi logični korak samo premikanje kode iz zastarelo različico COBOL-a v sedanjo, kar bi mnogim sistemom omogočilo prehod na sodobno strežniki. Strojno posodobitev primerja s prevajanjem francoščine v angleščino: »Osnova povedanega je odlično prevedena. Popraviti moraš samo sintakso tega, kako je ubesedeno.« Ta pristop lahko zmanjša tudi čas in stroške posodobitve, pravi, nekje med šest in 24 meseci.

Bo poceni? Pa saj bo ceneje. Projekti modernih sistemov se običajno gibljejo med 200.000 in 10 milijoni dolarjev. Velik del projekta, pojasnjuje Edenfield, ni prevajanje kode, ampak preizkušanje, da se prepriča, da dela vse pravilno.

Zakaj se te posodobitve ne zgodijo?

"Nihče ni slišal za to prej, ker to ni seksi tema in ljudje običajno ne poskušajo govoriti o umazanem perilu, ki ga imajo," pojasnjuje. IT-izvajalci imajo tudi navado brcniti pločevinko po cesti.

"Stavim, da bo država New Jersey zdaj posvetila pozornost temu vprašanju, a stavim tudi, da bo polovica njihovih kolegov mislila, da se jim to ne bo zgodilo, 'Meni ne."