Artimiau pabendravus su programuotojais nesunku pastebėti, kad savo pasirinktą ir įvaldytą programavimo kalbą jie laiko pačia tinkamiausia, palyginti su visomis kitomis.
Į paprasčiausią klausimą, kokią programavimo kalbą labiausiai verta mokytis, tokiose svetainėse kaip „Quora“ ar „Reddit“ tikrai sulauksite ilgiausių traktatų, kurių autoriai su įkarščiu aiškina, kodėl pirmenybę reikia teikti vienai, o ne kitai programavimo kalbai, o vėliau neišvengiamai įsivelia į itin aukšto lygio diskusijas neretai virstančias karštais ginčais ar net tūžmingais apsižodžiavimais.
Kaip rašoma businessinsider.com, ko gero, dažniausiai vienas kitam į atlapus kimba kalbų „Python“ ir „Java“ šalininkai, nors „Java“ gynėjai ne mažiau aktyvūs ir tada, jei kas nors pasiūlo „Go“, „Ruby“ arba, tiesą sakant, bet kurią kitą programavimo kalbą.
© VGTU
„Java“ kalba yra sena ir laiko patikrinta svetainių programų kūrimo priemonė. Nors ir labai įprasta, ji nepakankamai išgirta, todėl vis daugėja programuotojų, tvirtinančių, kad šiai kalbai metas trauktis užmarštin ir užleisti vietą kokiam nors spartesniam ir pažangesniam sprendimui.
Visiškai neseniai daug diskusijų sukėlė „Objective-C“, kuria parašyta daugelis „iPhone“ skirtų programėlių, ir „Apple“ patentuotos „Swift“ priešprieša.
„Apple“ teigia, kad „Swift“ yra automatiškai „Objective-C“ vietą užimsianti programavimo kalba, ir tikina, kad ją naudojant bus paprasčiau kurti programėles, o pačios programėlės veiks gerokai sparčiau. Nors „Swift“ populiarumas kyla žaibiškai, kol kas ja parašyta tik viena kita „iPhone“ arba „iPad“ programa.
Apie technologijas mažai tenutuokiančiam stebėtojui programuotojų debatai gali atrodyti visiškai nesuprantami, kadangi debatų objektas – slaptas, nematomas lygmuo, lemiantis naudojamos programėlės veikimą.
Daugelis diskusijų kyla dėl to, kad vieni programuotojai mano, kad svarbu įvaldyti tokią programavimo kalbą, kuri garantuotų puikias karjeros perspektyvas. Kiti mano, kad savo įgūdžius būtina nuolat tobulinti, nes jie gali būti tikras pranašumas pretenduojant į bet kurią darbo vietą. Tie, kuriuos domina technologijų pažanga ir moksliniai pasiekimai, visada žvalgosi į naujoves ir yra pasiryžę mokytis vis naujų programavimo kabų ir perprasti kiekvieną jų niuansą.
Tačiau didžiausias diskusijų variklis yra ta aplinkybė, kad kiekviena programavimo kalba ne tik apibrėžia ją naudojant sukurtą produktą, bet ir skelbia tam tikrą filosofiją.
„Daugelis žmonių yra tiesiog emociškai prisirišę prie programavimo kalbų, – sako už programavimo kalbų populiarumo indeksą „TIOBE Index“ atsakingas Paulas Jansenas. – Skirtumai tarp daugelio programavimo kalbų yra visa nedideli, be to, atsakymą į klausimą, kuriam teikti pirmenybę, daugeliu atvejų lemia skonis.“
Kad ir kaip būtų, programų kūrėjai neatitraukia žvilgsnio nuo geriausiai vertinamų programavimo kalbų statistikos ir įdėmiai stebi tiek „TIOBE Index“, tiek analitinės įmonės „Red Monk“ skelbiamus duomenis. Programuotojų azartą galima prilyginti akcijų rinkos svyravimus stebinčiųjų interesui, nors iš tikrųjų tai tėra mėginimas burti iš kavos tirščių ir atspėti, kur link pasuks pasaulis.
Įvairiausių tipų kompiuteriai, pradedant „iPhone“ ir baigiant HP, veikia lygiai taip pat – tarsi laikrodžiai, teikiantys konkrečias galimybes, kaip išsireiškė Paulas Fordas neseniai publikuotoje esė „Kas yra kodas?“.
Taigi, nors programavimo kalbų, iš kurių galima rinktis, kai tenka apsispręsti, kokia forma pateikti kompiuteriui instrukcijas, yra begalė, siekiamas rezultatas visada yra toks pat, tad nekeista, kad imantis bet kurio projekto, tenka spręsti sudėtingą analitinę užduotį.
Aišku, programuotojai ne visada gali rinktis savo nuožiūra, nes kartasi tenka tęsti kažkieno pradėtą projektą, o tai reiškia, kad pasirinkimas jau padarytas. Pasitaiko, kad pernelyg varžo užduoties terminai, todėl negalima sau leisti gaišti mokantis ką nors naujo. Būna ir taip, kad reikia sukurti sparčiai, bet nebūtinai patikimai veikiančią programą.
„Kad ir kaip būtų, visada egzistuoja kelios viena kitą nusveriančios alternatyvos, todėl vienos pačios tinkamiausios programavimo kalbos išskirti, ko gero, neįmanoma. Kaip tik dėl šios priežasties debatai efektyviausios programavimo kalbos tema dažniausiai primena religinius karus“, – sako P. Jansenas.
Tam tikras vaidmuo diskutuojant apie programavimo kalbas visada tenka dar dviem aspektams.
Visų pirma, labai didelę reikšmė turi konkreti bendruomenė. Pradedantysis programų kūrėjas, savo problemos sprendimą radęs dirbdamas kartu su „Google Go“ naudojančia komanda, gali tapti nepamainomu tos bendruomenės nariu, todėl vėliau, susidūręs su bet kokia problema, visada rinksis tą pačią, kartą jau pasiteisinsią programavimo kalbą.
„Motyvacija, palankus požiūris, bendruomenės palaikymas ir ekspertų patarimai programuotojo kelią pasirinkusiam asmeniui neretai būna daug svarbesni už konkrečią programavimo kalbą“, – pernai svetainėje „Quora“ teigė Jesse‘as Farmeris.
Taigi, akivaizdu, kad patyrusių, puikiai savo sritį išmanančių specialistų patarimai tikrai gali nulemti pirmus žingsnius žengiančio naujoko apsisprendimą.
Deja, nereikia pamiršti, kad ką tik aptarta aplinkybė gali nulemti siaurą būsimo programų kūrėjo požiūrį. Juk jei bendradarbiausi tik su „Go“ naudojančiais programų kūrėjais, bus sunku įveikti problemą, kurios sprendimas nesusijęs su „Go“.
Pagaliau, programų kūrėjams tikrai svarbu, kad laikas ir energija, skirti mokantis naujos programavimo kalbos, deramai atsipirktų. Juk ir mokantis šnekamosios kalbos visada reikia dėti tam tikras pastangas, nesvarbu, kokie besimokančiojo gabumai. Todėl pasirodžius naujai, objektyviai vertinant tobulesnei kalbai, senoji, jau išmokta, tampa tarsi nebereikalinga. Būtent todėl reakcija į naują kalbą dažnai būna priešiška.
„Savo įvaldytą programavimo kalbą dažnas gina ir todėl, kad užsitikrintų, kad nepraras per vargą atsiėjusių investicijų“, – sako P. Jansenas.