A programnyelvekkel a számítástechnikában képesek vagyunk kommunikálni a gépekkel az általunk értelmezhető jelrendszer segítségével amivel közvetlenül, vagy közvetve közölhetjük a számítógéppel egy adott feladat elvégzésének módját. Ezek a számítógép által is értelmezhető kódok ténylegesen úgy működnek, akár csak a mi nyelvünk és, ha azt is figyelembe vesszük hányféle programnyelv létezik még jobban érezhetjük a hasonlóságot.
De miért van annyi programnyelv?
Sokkal egyszerűbb lenne, ha csak egy nyelv létezne és az megoldás lenne minden problémára!
A bőség zavara
Miért van annyi autó? Mindegyik ugyan azt csinálja, elvisz A-ból B-be, mégis annyi
márka. Elég feleslegesnek hangzik nem? De azért mégse szívesen haj be az ember
a zsír új Audival a földútra, a nagycsaládnak nem olyan kényelmes a Mini Morris
és nem egy Suzuki lesz befogva anyagszállításra a munkahelyen. Arról nem is beszélve,
hogy valaki csak a német autókra esküszik, valaki meg elektromosat szeretne. De
van hibrid is, tűzoltó autó, kamion és vontatókocsi. Ha kijön egy úgy modell,
ami jobb, mint a tavaly vett kocsim, az átlagember nem teheti meg, hogy azonnal
újat vegyen. Végül számos modell, pontosan ugyan azt az ember csoportot
célozza, remélve, hogy a saját megoldásaik elég jók ahhoz, hogy elcsábítsák a
konkurencia vásárlóit.
De miben tudnak különbözni a programnyelvek?
(fordított és interpretált nyelvek)
Az elnevezés nagyon találó. Ha a saját nyelvemen beszélgetek
valakivel az sokkal zökkenő mentesebben megy, mintha a tolmácsra kéne várnom.
Viszont ha van egy tolmácsom akkor bár lassabb a kommunikáció, de meg van az a
kényelmem, hogy nem kell megtanulnom egy másik nyelvet.
A fordított programnyelvek gyorsak cserébe inkább a
számítógép nyelvét beszélem, mint a sajátom. Az interpretált nyelvek lassabbak
cserébe általában ezek sokkal emberibbek átláthatóbbak és érthetőbbek. Fordított
nyelv például a c,c++ és a rust. Interpretált a python,php vagy a ruby. Ezen felül vannak átfordított nyelvek mint a Kotlin amiből
Java, vagy a Typescript amiből javascript lesz. Vannak JIT, azaz épp időben fordított nyelvek is mint a Java
vagy a C#.
Memória menedzsment
A programozó eredendően hibázik. Amikor egy programnyelvet
készítünk el kell döntenünk, hogy rábízzuk-e a memória kezelést a programozóra
vagy sem. Ez egy komoly kérdés a Chromium projektben, ami a Google Chrome
böngésző nyílt forráskódú része, a bugok 70% rossz memória kezelésből adódik. A
Chrome-ot c++-ban írták ami a programozóra bízza a memória kezelést és bár
nagyon gyors nyelv a c++, itt jól látszik, hogy meg van az ára. Az alternatíva a „szemétgyűjtés” amit a Garbage Gollector
(GC) végez. Ez gyakorlatilag leveszi a memóriakezelés terhét a programozók
válláról. Nem csinálja olyan jól mint ha egy programozó jól kezelné a memóriát
c++-ban, de elég jó a legtöbb feladathoz.
A lehetőségek száma végtelen
Manapság már szinte minden programozási nyelv általános célú, akármit meg lehet velük programozni. Mégse célravezető c++-ban weblapot írni, vagy pythonban játékot. Ha a cég megírt egy több millió soros programot Javában akkor nem fognak váltani c#-csak mert azt most már jobbnak gondolják, de még Kotlinra sem. Ez túl sok pénzébe kerülne a cégnek, újra írni több millió sort, átképezni az embereket, úgy, hogy mindeközben működnie kell a terméknek, ha nem szeretnénk több milliós pénz kiesést. A programnyelvek kamionja és vontató kocsija a
matlab és az
R. Ezek kifejezetten tudósoknak készültek a kutatásaikhoz. A szintakszisuk közelebb áll a matematikához és megengedőbbek az első sorban matematikus, programozókkal. Illetve nagyon sok programnyelv szinte ugyan azt csinálja kis eltérésekkel ezt vagy azt jobban. Sőt manapság elég gyakran előfordul, hogy egy új projektnél már nem is programnyelvet, hanem keretrendszert választ a programozó csapat, ez a webfejlesztésre különösen igaz. Némelyik keretrendszer már szinte népszerűbb, mint a programnyelv amiben írták.
Nincsenek megjegyzések:
Megjegyzés küldése