Kaasaegne maailm on üles ehitatud iidsele koodile. See on probleem

click fraud protection
iidsed kodeerimiskeeled
Genevieve Poblano / digitaalsed suundumused

"Kuidas kurat me selleni jõudsime, et vajame sõna otseses mõttes COBOLi programmeerijaid?" küsis New Jersey kuberner Phil Murphy hiljutisel pressikonverentsil.

Sisu

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

Seistes silmitsi enneolematu arvuga tööpuudus taotluste tõttu pidi riik oma 40 aastat vana töötuskindlustustaotluste platvormi viivitamatult laiendama – kapitaalremont mis käivitas hetkega meeletu otsimise aastakümnete taguse kodeerimiskeelega tuttavate programmeerijate järele COBOL.

Soovitatavad videod

See probleem pole aga ainult New Jerseys. Paljud maailma pangandus-, kaitse- ja tehisintellektisüsteemid kasutavad programmeerimiskeeli, mis olid moes, kui Apple sai garaažist tühjaks.

Tehnikatööstus tunneb huvi uute ja tipptasemel asjade vastu, kuid kui poleks iidseid kodeerimiskeeli, nagu COBOL, Ada, Pascal ja Fortran, krediiditööstus, teaduslikud uurimisorganisatsioonid ja arvukad kaitsesüsteemid hakkavad kriiskama peatada. Teisisõnu, ilma kogu selle vana koodita oleksime perses.

Viiskümmend aastat vanad programmeerimiskeeled arvutavad ikka veel miljoneid tehinguid ja statistikat ning toimivad süsteemide selgroona, millele kaasaegne maailm toetub. Näiteks üle 95 protsendi sularahaautomaatidest ja 40 protsendi pankadest kasutab COBOL-koodi vastavalt 2017. aasta uuringule. Reutersi raport.

Mitmed neist iidsetest tabulaatoritest täidavad endiselt väga hästi spetsiifilisi funktsioone. Samuti on palju ärijuhte, kes ei taha ajaproovitud tarkvara, mis on eluliselt tähtis oma ettevõtte äritegevust, nii et kapitaalremondi ja moderniseerimise asemel lapivad nad lihtsalt vana koodi ja loodavad parim.

Iidse tehnoloogiaga maadlus pole uus nähtus. Näiteks, California on puhunud sadu miljoneid dollareid, püüdes uuendada oma DMV- ja palgaarvestustehnoloogiat. Ometi on praegune pandeemia ja sellest tulenev tööpuuduse laine valgustanud, kui suur osa Ameerika tarkvarataristust laguneb nagu füüsiline.

Siin on viis "vantage" keelt, millest meie maailm sõltub rohkem, kui te mõistate, ja miks see võib teid pisut närvi ajada.

Fortran

fortran manuaalne kate

Kui poleks Fortrani, siis paljud superarvutid ja mudelid, mida me kasutame näiteks ilmaennustamiseks, astrofüüsikaks ja kõrgetasemeliseks statistiliseks analüüsiks, lihtsalt ei töötaks.

IBMi poolt 1950. aastatel ehitatud Fortran (lühend sõnast Formula Translation) oli üks esimesi kõrgetasemelisi keeli, mis kasutas numbrite asemel sõnu ja võimaldas kodeerijatel programme kirjutada 500% kiiremini kui masinat kasutades kood. Tänapäeval ei õpi seda keelt peaaegu nii palju arendajaid.

"Ma kasutan Fortrani kogu aeg – ma lihtsalt ei mõtle sellele kunagi," ütleb Johns Hopkinsi rakendusfüüsika laboratooriumi andmeteadlane James Howard. Kuigi Howard pole aastaid selles keeles programmeerinud, pääsevad tema rakendused regulaarselt juurde Fortrani põhiraamatukogudele. Ehitatud 70ndate alguses, on need hästi hooldatud ja "pimestavalt kiired".

Viimati pidi Howard Fortrani programmi kirjutama umbes 10 aastat tagasi. Ta töötas Föderaalreservis ja tal oli vaja andmeid kahe rakenduse vahel teisaldada; üks, mis oli kirjutatud C ja teine ​​Fortranis. Programmid lõpetasid suhtlemise, kuna müüja lõpetas Fortrani raamatukogu pakkumise.

40-aastane programmeerija mäletas midagi, mida ta oli lapsepõlves lugenud, et C-programmeerimiskeele andmekõnede struktuur on Fortrani omale vastupidine. Ta kirjutas korralduse ümberpööramiseks lihtsa skripti ja voila, Föderaalreserv tegutses tagasi.

fortran punchard

Ada

Valitsuse programmeerijad tuginevad usaldusväärsust nõudvate süsteemide (nt kaitse- ja ohutussüsteemide) väljatöötamisel suhteliselt ebaselgele Ada koodibaasile. Mis sinna täpselt programmeeritud on? Noh, see on natuke valitsuse saladus, kuid NASA ja Boeing on mõlemad viimastel aastatel satelliitide ja lennukite programmeerimiseks kasutanud Ada-põhist koodi.

Kaitseministeerium (DOD) jälgis Ada arendamist 1970. aastatel, et vähendada sõjaväes kasutatavate programmeerimiskeelte arvu, mis sel ajal oli üle 400. Ada ehitati nii, et see oleks elu või surma olukordades vaieldamatult usaldusväärne ja kaitstud programmeerija vigade eest. Kuigi keel ilmus 1980. aastal, lubas Kongress seda kasutada kõigis valitsussüsteemides alles 1995. aastal. Kaks aastat hiljem loobus DOD mandaadist, leides, et laialdaselt kättesaadavate ja ajakohaste süsteemide kasutamine on odavam ja paindlikum. Kuid see on endiselt kasutusel.

Pascal

pascali plakat
80ndate alguses võis Apple Pascali plakatit leida kogu ettevõtte kontorist, andes programmeerijatele ülevaate koodi kasutamisest.

Paljud programmeerijad peavad Pascalit peaaegu surnud programmeerimiskeeleks, kuid see elab mitmel viisil edasi. "Uskuge või mitte, see on paljudes maailma paikades endiselt väga populaarne keel, kuid USA-s võite räägi ladina keelt,” ütleb Dave Hatter, kes veetis kolm aastat suures kindlustusseltsis, aidates kaasa a miljonit rida koodi, mis hindas, mis poliisid maksavad ja kui palju nad maksid.

Paljud neist vanematest programmidest on kirjutatud ammu enne tänast muret turvarikkumiste pärast ja sisaldavad tundlikku omandialast teavet. Hatter, kes praegu töötab küberjulgeoleku tehnikuna, arvab, et programmid võivad olla suhteliselt turvalised ainuüksi "turvalisuse tõttu" – noored kodeerijad ei tea, mida aastakümneid vana koodiga peale hakata. "15-aastasel häkkeril pole aimugi, kuidas töötada mingisuguse IBM 390 suurarvutiga COBOLiga," ütleb ta. "Nüüd ma ei ütle, et nad ei saaks õppida. Aga nad ei saa sellest teada."

Pascal oli varajase Apple'i operatsioonisüsteemi aluseks ja selle keele järeltulijal Delphil on endiselt tugevad pooldajad. Tegelikult kirjutati Skype – üks esimesi videokõnerakendusi, mis saavutas laialdase populaarsuse ja kasutuse – algselt Delphis.

BASIC / Visual Basic

BASIC ei ole 2020. aastal kasutatavate keelte osas just nimekirja tipus, kuid paljusid tänapäevaseid rakendusi, millele me tugineme, lihtsalt ei eksisteeriks ilma selleta. Näiteks kui olete kunagi programmeerinud Exceli makro, olete kasutanud vormi BASIC.

Lühend sõnadest Beginner’s All-Purpose Symbolic Instruction Code, BASIC käivitati 1963. aastal Dartmouthi kolledžis, et õpetada laiemale publikule programmeerimise teooriad ja võimalused – sukeldumine vette enne jõulisemate keelte, näiteks Fortran. BASICu populaarsus tõusis koos personaalarvutiga – Apple'i, IBMi ja Atari arvutitel oli kõigil oma versioonid.

1980. aastate keskpaigaks olid iseõppinud arvutinohikud vähem huvitatud BASICust ja olid rohkem huvitatud kolmandate osapoolte programmidest. Seejärel käivitas Microsoft 1991. aastal Visual Basicu, mis ei olnud just BASICu värskendus, vaid kasutas samu käske ja struktuuri ning parema graafilise liidesega. Seejärel kasutasid seda keelt paljud ettevõtted suurte ja väikeste programmide kirjutamiseks. Kuigi Microsoft on öelnud, et lõpetas 2008. aastal Visual Basic 6 (kõige värskema versiooni) toetamise, on sellel keelel endiselt palju kasutajaid. Kontrolli Tiobe indeks (mis näitab kõige populaarsemaid programmeerimiskeeli): VB on endiselt 10 parima hulgas!

COBOL

coboli plakat
1969. aasta plakat, mis reklaamib MIT COBOLi klassi.

"Ma ütleksin, et enam kui 90% inimestest, keda me näeme, on COBOL nende kirjutatu põhiosa," hindab Brandon Edenfield, kes värskendab ja teisaldab pärandrakendusi Kaasaegsed süsteemid ning on aidanud läbi vaadata New Yorgi ja Singapuri börside koodi. "Igas suuremas ettevõttes, millele võite mõelda, on seda kraami tõenäoliselt ebatervislikult palju."

COBOL, akronüüm sõnast Common Business-Oriented Language, võeti kasutusele 1959. aastal ja see oli suunatud andmetöötlusülesannetele, nagu eelarve jälgimine, pangatehingud ja palgaarvestus. Kaitseministeerium (DOD) kavandas keele algselt vaheprojektina. Seejärel nõudis DOD arvutitootjatelt COBOLi lisamist nende müüdavatele masinatele ja see keel levis järgmise paarikümne aasta jooksul kiiresti. 2017. aasta uuringu kohaselt kasutab üle 95% sularahaautomaatidest ja 40% pankadest endiselt COBOL-koodi. Reutersi raport.

Suur osa sellest programmeerimisest võeti kasutusele suurarvutite kaudu ja kaasaegsed süsteemid on kolinud pilve. Nagu näitas New Jersey raske olukord, on arendajad, kes teadsid, kuidas COBOL-koodi säilitada, tööjõust välja vananemas või juba pensionile läinud.

Ettevõtted, kes neid programme moderniseerivad, teevad seda tavaliselt mõnel erineval viisil.

„Suur süsteemiintegraator viskab koodile hulga kehasid; nad istuvad maha, vaatavad seda ja kirjutavad selle ümber,” ütleb Edenfield. See lähenemisviis on sageli kõige riskantsem, aeganõudvam ja kulukam. Keskmiselt võivad käsitsi kodeeritud suured ümberplatvormitööd kesta 3 kuni 10 aastat ja need võivad maksta sadu miljoneid dollareid.

Edenfield soovitab automatiseeritud lahendusi ja ütleb, et esimene loogiline samm võib olla lihtsalt koodi teisaldamine COBOLi aegunud versioon praegusele, mis võimaldaks paljudel süsteemidel üle minna kaasaegsele serverid. Ta võrdleb masinvärskendust prantsuse keele tõlkimisega inglise keelde: „Räägitu alus on tõlgitud suurepäraselt. Peate lihtsalt parandama selle sõnastuse süntaksi." Ta ütleb, et selline lähenemine võib ka värskendamise aega ja kulusid vähendada, kuskil kuus kuni 24 kuud.

Kas see tuleb odav? No see tuleb odavam. Kaasaegsete süsteemide projektide hind jääb tavaliselt vahemikku 200 000 kuni 10 miljonit dollarit. Edenfield selgitab, et suur osa projektist ei tõlgi koodi, vaid testib, et veenduda, et see teeb kõik õigesti.

Miks neid värskendusi ei tehta?

"Keegi pole sellest varem kuulnud, sest see pole seksikas teema ja inimesed ei püüa tavaliselt rääkida mustast pesust, mis neil on," selgitab ta. IT-töötajatel on ka kombeks purgiga mööda teed lüüa.

"Vean kihla, et New Jersey osariik pöörab sellele probleemile nüüd tähelepanu, kuid võin ka kihla vedada, et pooled nende kolleegidest arvavad, et nendega seda ei juhtu: "Mitte mina.""