Šiuolaikinės technologijos dažnai verčia susimąstyti. Pavyzdžiui, programavimo kalbos jų nemokantiems tėra įvairūs simboliai ir ženklai, sudarantys kodus, tačiau visa tai vadinama kalba. O jei tai kalba, galbūt galimas jos vertimas? Kaip ji skambėtų? Gal tai raktas, kaip dirbtinio intelekto programos galėtų bendrauti su žmonėmis? Vertimų biuras ar mokslininkai turėtų atlikti šį vertimą? Ar programavimo kalbos yra tarptautinės?
Žinoma, programuotojams šie klausimai tikriausiai sukelia šypseną, tačiau kitiems kalbos entuziastams ši tema – įdomus diskusijų objektas. Taigi, panagrinėkime šią moksline fantastika dvelkiančią temą.
Programavimo kalbos
Pirmiausiai kyla klausimas, kas per kalbos programavimo kalbos yra apskritai. Iš esmės šios kalbos yra oficialios, sukurtos dirbtinai ir skirtos įvairioms komandoms perduoti. Šios kalbos yra labai svarbios kuriant programas, programinę įrangą, įgyvendinant įvairius algoritmus.
Programavimo kalba nėra viena, iš tikrųjų yra daug programavimo kalbą, jų priskaičiuojama netgi tūkstančiai. Ir vis dar kuriamos naujos programavimo kalbos, tad terminas programavimo kalba nereiškia vienos konkrečios kalbos, o apima programavimo kalbų visumą.
Nepaisant didelio programavimo kalbų skaičiaus labiausiai paplitusios yra kelios kalbos, kurias dažniausiai naudoja programuotojai visame pasaulyje – primena situaciją su „tikromis“ kalbomis, ar ne? JavaScript, Swift, CSS, SQL, PHP, HTML – bent porą iš šių pavadinimų yra girdėjęs kiekvienas. Savo paplitimu šios kalbos yra panašios į anglų, japonų, ispanų, prancūzų ir kitas pagrindines pasaulio kalbas, tik šiomis naudojasi ne žmonės, o kompiuteriai. Ar programavimo kalba galima bendrauti? Atsakymas turėtų būti teigiamas, juk būtent dėl to kompiuteriai geba keisti informacija, darniai veikia kelios programos, o jūs galite užduoti savo kompiuteriui komandą – taip bendrauja žmogus ir mašina.
Programavimo ir natūralių kalbų skirtumai
Teigti, kad programavimo kalbos gimė iš natūralios kalbos, būtų klaidinga. Nors reikia pastebėti, kad šiose kalbose yra naudojama ir natūraliai susiformavusių kalbų, pavyzdžiui, anglų kalbos, žodžių. Vis dėlto skirtumų pastebima išties daug.
Vienas esminių bruožų yra tai, kad programavimo kalbos yra tikslios, paprastos ir nedviprasmiškos. Kitaip tariant, programavimo kalba nepameluosite ir visada būsite teisingai suprasti. Atskiri žodžiai programavimo kalboje turi tik vieną konkrečią prasmę. O jei žodis bus pavartotas netinkamai? Paprasta, visa tai laikoma programavimo klaida. Kompiuteriai, vykdantys jiems skirtas užduotis negali nuspėti, kas buvo norėta pasakyti, tad jei yra rašybos, skyrybos ar kitų klaidų, sistema paprasčiausiai neveikia. Žmonių kalboje tokios klaidos neturi lemiamos reikšmės, nes galime pasikliauti savo intuicija ir suprasti netgi nebaigtus žodžius ar sakinius, jau nekalbant apie klaidas. Dar daugiau, vertimų biuras atlikdamas vertimą gali surasti skirtingus kultūrinius atitikmenis, pavyzdžiui, posakiams išversti.
Kitas aspektas yra laisvė, kuria pasižymi natūralios kalbos. Vartotojai patys sprendžia, kada reikia sukurti naujų žodžių arba nustoti vartoti senus – taip po truputį formuojasi kalba. Programavimo kalbos nekinta, jos turi griežtą struktūrą ir ji turi išlikti tam, kad kalba būtų suprantama.
Programavimo kalbos vertimas
Daugelis programavimo kalbų yra paremtos anglų kalba, todėl galima tikėtis, kad visi programuotojai turi bent bazines anglų kalbos žinias. Antra vertus, nėra neįmanoma išmokti programuoti ir nemokant anglų kalbos, tačiau tai neabejotinai bus sudėtingiau. Daugiausia informacijos apie programavimą ir programavimo kalbas yra pateikiama būtent anglų kalba.
Vis dėlto tai nereiškia, kad programavimo kalbų vertimas yra susijęs su anglų kalbos žiniomis. Kalbant apie vertimą galime kalbėti ne apie programavimo kalbos vertimą į anglų ar bet kurią kitą natūralią kalbą, o apie vienos programavimo kalbos vertimą į kitą programavimo kalbą. Taip, tai nėra tas vertimas, kurį atliktų tradicinis vertimų biuras, tačiau tokia galimybė išversti programavimo kalbą yra.
Kitas klausimas, ar galimos šios kalbos interpretacijos? Tai, kas parašyta viena programavimo kalba, gali būti perrašoma kitos kalbos kodu, atitinkamai šis procesas reikalauja žinių ir dėl vertimo kylančių klaidų taisymo. Tai galima laikyti interpretavimu, tačiau kartu verta prisiminti, kad jokios interpretacijos, taip kaip jas suprantame, negali būti naudojamos nei vienoje programavimo kalboje apskritai.
Programavimo kalbos vertėjai
O jei prireiktų išversti „iOS“ programą į „Android“, ar tokią paslaugą galėtų suteikti vertimų biuras? O galbūt reikėtų ieškoti vertėjo, kuris specializuojasi tik šioje srityje? Iš tikrųjų tradicinis vertimų biuras dirba tik su vertimais į ar iš natūralių kalbų, o prireikus išversti programavimo kalbą yra naudojami įvairūs įrankiai. Trumpiau tariant, programavimo kalbą į kitą verčia ne kas kitas, o kompiuteris. Žinoma, tai gali atlikti ir žmogus, programuotojas, tačiau kam vargintis, jei visas darbas gali būti atliktas automatiškai?
Ir šioje vietoje nekyla problemų, su kuriomis susiduriama atliekant automatinį, pavyzdžiui, anglų kalbos vertimą. Netaisyklingos galūnės, juokingai pavartoti žodžiai – natūrali kalba kompiuteriui dar nėra įkandama, tad vertimą gali atlikti tik vertimų biuras, kuriame dirba žmonės. Programavimo kalbą išversti kompiuteris geba todėl, kad jai būdingas tikslumas – tai paslaptis, kišanti koją automatinio vertimo įsigalėjimui.
Taigi, programavimo kalbos gali būti išversto ir nors šios paslaugos vertimų biurai šiandien dar neteikia, galima tikėtis, kad ateityje, technologijų reikšmei augant, prireiks ir tokios paslaugos. Programinė įranga, programa ar konkretus kodas gali būti perrašytas žmogaus, tačiau šiandien tai atlieka programuotojai, o ne vertėjai. Programuotojų-vertėjų ir programuotojų-kūrėjų specializacijos vis dar nėra, tačiau negalima atmesti galimybės, kad ateityje programuotojas-vertėjas bus paklausi profesija, reikalinga ateities visuomenei.