Moderni maailma on rakennettu muinaiselle koodille. Se on ongelma

muinaiset koodauskielet
Genevieve Poblano/Digital Trends

"Kuinka ihmeessä me päädyimme tähän, että tarvitsemme kirjaimellisesti COBOL-ohjelmoijia?" kysyi New Jerseyn kuvernööri Phil Murphy äskettäisessä lehdistötilaisuudessa.

Sisällys

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

Edessä ennennäkemättömän määrän työttömyys hakemukset, osavaltio joutui välittömästi laajentamaan 40 vuotta vanhaa työttömyyskorvausjärjestelmäänsä – uudistus joka käynnisti välittömästi kiihkeän etsinnän ohjelmoijista, jotka tuntevat vuosikymmeniä vanhan koodauskielen COBOL.

Suositellut videot

Tämä ongelma ei kuitenkaan ole vain New Jerseyssä. Monet maailman pankki-, puolustus- ja tekoälyjärjestelmät käyttävät ohjelmointikieliä, jotka olivat muodissa, kun Applen autotalli loppui.

Teknologiateollisuus kiinnostaa asioita, jotka ovat uusia ja huippuluokan, mutta jos se ei olisi muinaisia ​​koodauskieliä, kuten COBOL, Ada, Pascal ja Fortran, luottoteollisuus, tieteelliset tutkimusorganisaatiot ja lukuisat puolustusjärjestelmät joutuisivat huutamaan pysäyttää. Toisin sanoen, ilman kaikkea tätä vanhaa koodia, olisimme kusessa.

Viisikymmentä vuotta vanhat ohjelmointikielet laskevat edelleen miljoonia tapahtumia ja tilastoja ja toimivat selkärankana järjestelmille, joihin moderni maailma luottaa. Esimerkiksi yli 95 prosenttia pankkiautomaateista ja 40 prosenttia pankeista käyttää COBOL-koodia vuoden 2017 mukaan. Reuters raportoi.

Useat näistä muinaisista tabulaattorista suorittavat edelleen tiettyjä toimintoja erittäin hyvin. On myös monia yritysjohtajia, jotka eivät halua erottaa aika-testattuja ohjelmistoja, jotka ovat elintärkeitä yrityksensä liiketoimintaa, joten uudistamisen ja modernisoinnin sijaan he vain korjaavat vanhaa koodia ja toivovat parhaat.

Paini vanhan tekniikan kanssa ei ole uusi ilmiö. Esimerkiksi, Kalifornia on puhaltanut satoja miljoonia dollareita yrittäessään päivittää DMV- ja palkkatekniikkaansa. Nykyinen pandemia ja siitä johtuva työttömyysaalto ovat kuitenkin osoittaneet, kuinka suuri osa Amerikan ohjelmistoinfrastruktuurista murenee kuten sen fyysinen infrastruktuuri.

Tässä on viisi "vintage" kieltä, joista maailmamme riippuu enemmän kuin ymmärrät, ja miksi se saattaa saada sinut hieman hermostumaan.

Fortran

fortran manuaalinen kansi

Ilman Fortrania monet supertietokoneista ja malleista, joita käytämme esimerkiksi sään ennustamiseen, astrofysiikkaan ja korkean tason tilastolliseen analyysiin, eivät yksinkertaisesti toimisi.

IBM: n 1950-luvulla rakentama Fortran (lyhenne sanoista Formula Translation) oli yksi ensimmäisistä korkean tason kielistä, joka käytti sanoja numeroiden sijaan ja mahdollisti koodaajien kirjoittamisen ohjelmia 500 % nopeammin kuin koneella koodi. Läheskään niin monet kehittäjät eivät opi kieltä nykyään.

"Käytän Fortrania koko ajan – en vain koskaan ajattele sitä", sanoo James Howard, tietotieteilijä Johns Hopkins Applied Physics Laboratorysta. Vaikka Howard ei ole ohjelmoinut kieltä vuosiin, hänen sovelluksensa käyttävät säännöllisesti Fortranin ydinkirjastoja. Ne on rakennettu 70-luvun alussa, ja ne ovat hyvin huollettuja ja "sokaisevan nopeita".

Viimeksi Howardin piti kirjoittaa Fortran-ohjelma noin 10 vuotta sitten. Hän työskenteli Yhdysvaltain keskuspankissa ja tarvitsi tiedon siirtämistä kahden sovelluksen välillä. toinen oli kirjoitettu C-kielellä ja toinen Fortranilla. Ohjelmat lopettivat yhteydenpidon, koska toimittaja lopetti Fortran-kirjaston tarjoamisen.

40-vuotias ohjelmoija muisti jotain, mitä hän oli lukenut lapsena, että C-ohjelmointikielen datakutsurakenne on päinvastainen kuin Fortranin. Hän kirjoitti yksinkertaisen käsikirjoituksen kääntääkseen tilauksen, ja voila, Federal Reserve oli jälleen toiminnassa.

fortran punchard

Ada

Hallituksen ohjelmoijat luottavat suhteellisen hämärään Ada-koodikantaan kehittäessään luotettavuutta vaativia järjestelmiä, kuten puolustus- ja turvallisuusjärjestelmiä. Mitä siihen oikein on ohjelmoitu? No, se on vähän hallituksen salaisuus, mutta NASA ja Boeing ovat molemmat käyttäneet Ada-pohjaista koodia viime vuosina ohjelmoidakseen satelliitteja ja lentokoneita.

Puolustusministeriö (DOD) valvoi Adan kehitystä 1970-luvulla vähentääkseen armeijan käyttämien ohjelmointikielten määrää, joka oli tuolloin yli 400. Ada rakennettiin kiistatta luotettavaksi elämän tai kuoleman tilanteissa ja vahvistettiin ohjelmoijan virheitä vastaan. Vaikka kieli toimitettiin vuonna 1980, kongressi määräsi sen käytön kaikissa hallintojärjestelmissä vasta vuonna 1995. Kaksi vuotta myöhemmin DOD luopui toimeksiannosta ja uskoi, että laajalti saatavilla olevien, ajantasaisten järjestelmien käyttö on halvempaa ja joustavampaa. Mutta se on edelleen käytössä.

Pascal

pascal juliste
1980-luvun alussa Apple Pascal -juliste löytyi koko yrityksen toimistosta, ja se antoi ohjelmoijille tietoa koodin käytöstä.

Monet ohjelmoijat pitävät Pascalia melkein kuolleena ohjelmointikielenä, mutta se elää useilla tavoilla. "Usko tai älkää, se on edelleen erittäin suosittu kieli monissa osissa maailmaa, mutta Yhdysvalloissa saatat puhu latinaa”, sanoo Dave Hatter, joka työskenteli kolme vuotta suuressa vakuutusyhtiössä auttamaan a miljoonaa riviä koodia, joka arvioi, mitä vakuutukset maksavat ja kuinka paljon ne maksoivat.

Monet näistä vanhemmista ohjelmista kirjoitettiin kauan ennen tämän päivän huolia tietoturvaloukkauksista, ja niissä on arkaluontoisia omistusoikeudellisia tietoja. Hatter, joka työskentelee nykyään kyberturvallisuusteknikona, arvioi, että ohjelmat voivat olla suhteellisen turvallisia vain "security by obscurity" vuoksi – nuoret koodaajat eivät tiedä mitä tehdä vuosikymmeniä vanhalla koodilla. "15-vuotias hakkeri ei tiedä kuinka työskennellä jonkinlaisen IBM 390 -pääkoneen kanssa COBOLin kanssa", hän sanoo. "En nyt sano, etteivätkö he voisi oppia. Mutta he eivät saa tietää."

Pascal oli perusta varhaiselle Apple-käyttöjärjestelmälle, ja kielen jälkeläisellä Delphillä on edelleen vahvoja kannattajia. Itse asiassa Skype – yksi ensimmäisistä videopuhelusovelluksista, jotka saivat laajan suosion ja käytön – kirjoitettiin alun perin Delphissä.

BASIC / Visual Basic

BASIC ei ole aivan listan kärjessä ihmisten käyttämien kielten osalta vuonna 2020, mutta monet nykyaikaiset sovellukset, joihin luotamme, eivät yksinkertaisesti olisi olemassa ilman sitä. Jos esimerkiksi olet joskus ohjelmoinut Excel-makron, olet käyttänyt BASIC-muotoa.

Lyhenne sanoista Beginner's All-Purpose Symbolic Instruction Code, BASIC lanseerattiin vuonna 1963 Dartmouth Collegessa tapa opettaa suurelle yleisölle ohjelmoinnin teorioita ja kykyjä – sukellus veteen ennen kuin pääset käyttämään vahvempia kieliä, kuten Fortran. BASICin suosio nousi henkilökohtaisen tietokoneen mukana – Applen, IBM: n ja Atari-tietokoneilla oli kaikilla oma versionsa.

1980-luvun puoliväliin mennessä itseoppineet tietokonenörtit olivat vähemmän kiinnostuneita BASICista ja enemmän kiinnostuneita kolmannen osapuolen ohjelmista. Sitten Microsoft julkaisi Visual Basicin vuonna 1991, joka ei ollut aivan BASICin päivitys, mutta käytti joitain samoja komentoja ja rakennetta sekä paremman graafisen käyttöliittymän. Sitten monet yritykset käyttivät kieltä ohjelmien kirjoittamiseen niin suuria kuin pieniäkin. Vaikka Microsoft on sanonut lopettaneensa Visual Basic 6:n (uusimman version) tuen vuonna 2008, kielellä on silti paljon käyttäjiä. Tarkista Tiobe-indeksi (joka listaa suosituimmat ohjelmointikielet): VB on edelleen top 10:ssä!

COBOL

cobol juliste
Vuoden 1969 juliste, joka mainostaa MIT COBOL -luokkaa.

"Sanoisin, että yli 90 prosentilla näkemistämme ihmisistä COBOL on keskeinen osa kirjoittamistaan", arvioi Brandon Edenfield, joka päivittää ja siirtää vanhoja sovelluksia Nykyaikaiset järjestelmät ja on auttanut tarkistamaan koodia New Yorkin ja Singaporen pörsseihin. "Kaikissa suurissa yrityksissä, joita voit ajatella, on luultavasti epäterveellinen määrä tätä tavaraa."

COBOL, lyhenne sanoista Common Business-Oriented Language, lanseerattiin vuonna 1959 ja se oli suunnattu tietojenkäsittelytehtäviin, kuten budjetin seurantaan, pankkitapahtumiin ja palkkakirjanpitoon. Puolustusministeriö (DOD) suunnitteli kielen alun perin stopgap-projektiksi. Sitten DOD vaati tietokonevalmistajia sisällyttämään COBOLin myymiinsä koneisiin, ja kieli levisi nopeasti seuraavien vuosikymmenten aikana. Yli 95 % pankkiautomaateista ja 40 % pankeista käyttää edelleen COBOL-koodia, vuoden 2017 mukaan. Reuters raportoi.

Suuri osa ohjelmoinnista otettiin käyttöön keskustietokoneiden kautta, ja nykyaikaiset järjestelmät ovat siirtyneet pilveen. Kuten New Jerseyn ahdinko osoitti, kehittäjät, jotka osasivat ylläpitää COBOL-koodia, ikääntyvät pois työvoimasta tai ovat jo jääneet eläkkeelle.

Yritykset, jotka modernisoivat näitä ohjelmia, tekevät sen yleensä muutamalla eri tavalla.

”Iso järjestelmäintegraattori heittää joukon kappaleita koodiin; he istuvat alas, katsovat sitä ja kirjoittavat sen uudelleen", Edenfield sanoo. Tämä lähestymistapa on usein riskialttein, aikaa vievä ja kallein. Keskimäärin käsin koodatut, suuret alustan uudelleenmuodostustyöt voivat kestää 3–10 vuotta ja voivat maksaa satoja miljoonia dollareita.

Edenfield suosittelee automatisoituja ratkaisuja ja sanoo, että ensimmäinen looginen askel voi olla vain koodin siirtäminen pois COBOLin vanhentunut versio nykyiseen, mikä mahdollistaisi monien järjestelmien siirtymisen nykyaikaisiin palvelimia. Hän vertaa konepäivitystä ranskan kielen kääntämiseen englanniksi: ”Sanotun perusta on käännetty täydellisesti. Sinun on vain korjattava sen ilmaisun syntaksi." Tämä lähestymistapa voi myös vähentää päivityksen aikaa ja kustannuksia, hän sanoo, jonnekin kuuden ja 24 kuukauden välillä.

Tuleeko se halpaa? No, tulee halvemmaksi. Modern Systems -projektien hinnat vaihtelevat tyypillisesti 200 000 dollarista 10 miljoonaan dollariin. Suuri osa projektista, Edenfield selittää, ei käännä koodia, vaan testaa, että se tekee kaiken oikein.

Miksi näitä päivityksiä ei tehdä?

"Kukaan ei ole kuullut tästä aiemmin, koska se ei ole seksikäs aihe, eivätkä ihmiset yleensä yritä puhua likaisesta pyykistä", hän selittää. IT-työntekijöillä on myös tapana potkaista tölkkiä tiellä.

Lyön vetoa, että New Jerseyn osavaltio kiinnittää nyt huomiota tähän asiaan, mutta lyön vetoa myös siitä, että puolet heidän kollegoistaan ​​ajattelee, ettei se tapahdu heille, 'en minä'."