Scriptnyelvek összehasonlítása
Megint nem írtam ide hosszú-hosszú ideje, ennek okait az iskolában kell keresni: elég komoly elfoglaltságot jelent most nekem, arról nem is beszélve, hogy az elkövetkező 7 napban 4 zht írok és leadok 3 beadandó házit is.
A 3 háziból egy, a címben említett scriptnyelvek összehasonlítása. Nem mondom hogy igazi remek, de érdekesnek elmegy, tovább után olvasható (latex elbuherálta a latin2 karakterkódolást, utfben meg ilyet köpött ki, bocsánat az ékezetekért!).
1. Bevezetés
Ez a dokumentum a scriptnyelvekkel, és azok összehasonlításával hivatott foglalkozni. Id
rendi sorrendben megjelenésük szerint fogom bemutatni az egyes nyelveket, tulajdonságaikat, a kódok kinézetét, felépítését.
Mindenek el
tt úgy gondolom, fontos, hogy tisztázzuk mit
l scriptnyelv a scriptnyelv.
1.1. Mi a scriptnyelv?
A script szó angolul írást jelent, ez a programozási nyelv pedig azért vette fel ezt a nevet, mert könnyen írható és olvasható kódot eredményez.
A legnagyobb különbség más programozási nyelvekt
l, hogy a scriptkódok más programok által kerülnek értelmezésre, soha nem fordulnak le gépi kódra. Nem így történik például a C/C++/C# nyelveknél, ahol végeredményként születik egy futtatható állomány; itt a scripteket egy értelmez
program kezeli.
2. Perl
2.1. Története
A Perl nyelvet Larry Wall, egy amerikai kutató fejlesztette ki 1987-ben. Wall az alapdiplomája megszerzése után nyelvészettel kezdett foglalkozni, azonban ezirányú kutatása családi okok miatt megszakadt. A Berkeley egyetemen lediplomázott, utána a NASA-nál helyezkedett el. Nyelvész múltja a Perl nyelvr
l írt dokumentációiban is megfigyelhet
, a változókat f
neveknek, a funkciókat igéknek nevezi.
Nevét a pearl (gyöngy) szóból kapta, az ”a” bet
t azért kellett elhagynia Wall-nak, mert egy PEARL nev
programozási nyelv már 1977 óra létezett (Process and Experiment Automation Realtime Language).
2.2. Felépítése
Két szlogen él a Perl nyelvvel kapcsolatban: ”There’s more than one way to do it”, avagy ”több mint egy mód van rá hogy hogyan csináld”, és a ”Easy things should be easy and hard things should be possible”, azaz ”a könny
dolgoknak könny
nek kell lenniük, a nehéz dolgoknak pedig lehetségesnek”.
Struktúrálisan a C gyermekének tekinthet
, nagyon hasonlít rá.
A különlegessége többek között az adattípusaiban rejlik: minden adattípusa elé el
jelet kell írni, eszerint különböztethet
ek meg: vannak $skalárok, @tömbök, &függvények, %hashek (listák).
2.3. Helló világ!
Az alap régi Perl program print utasítással írta ki a szöveget:
print ”Hello világ!”
Az új verziói a Perlnek már a say (mondd) utasítást használják:
say ’Hello világ!’
2.4. A Perl jelene
Egy ma is használt és igen kedvelt nyelvr
l van szó, a fejlesztése mégis szétszakadt.
1987-es megjelenése utána egy évvel már megjelent a Perl 2-es verziója, majd lényegében évente-kétévente új verziók jöttek ki, így 1994-ben már a Perl 5-ös verziójáról volt szó. A számozás meglehet
sen rendhagyó volt ezután, nyilván nem történtek olyan óriási változások a nyelvben:
Perl 5.000 – 1994 október
Perl 5.001 – 1995 március
Perl 5.004 – 1997 május
Perl 5.005 – 1998 július
Perl 5.6 – 2000 március
2000-ben, a Perl mögött álló közösség úgy döntött, elkezdik a Perl 6 fejlesztését: a Perl 6 csak mint egy dokumentumköteg létezik, követelmények sora, így magában nem implementáció.
Ez a nyelv az el
z
verziótól egy teljesen különböz
nyelv kell hogy legyen, így a fejlesztés szétvált: külön fejlesztik tovább a Perl 5öt és a Perl 6ot. A fejlesztés ma is zajlik, továbbra is a Perl 5-ös a legnépszer
bb irány, jelenleg az 5.11.2-es verziónál tartanak (2009 november).
A Perl 6-nak létezik egy teljes implementációja, ez a Rakudo Perl, ami a Parrot nev
, open-source virtuális gép projektben van megvalósítva.
3. Python
3.1. Története
Guido Van Rossum fejlesztette ki. Saját nyilatkozata szerint 1989 decemberében, karácsony el
tti héten annyira unatkozott, hogy egy hobby programozási projektbe kezdett.
A név eredete a Monty Python repül
cirkuszából származik, ami egy brit komikus társulat.
Van Rossum Hollandiában diplomázott számítógép-tudományokból és matematikából, utána több kutatóintézetben dolgozott: el
ször hazájában, majd amerikában. 2005-ben Van Rossum a Google cég alkalmazottja lett, ahol – a cég különleges filozófiáját követve – idejének 50%-át a Python nyelv fejlesztésével tölti.
A szerz
t inspirálta az ugyanabban a holland intézetben kifejlesztett ABC programozási nyelv, melyet a BASIC és Pascal leváltására írtak a szerz
k a ’80as évek elején, valamint a SETL, amely egy nagyon magas szint
matematikai programozási nyelv (megvizsgálva a Python listakezelését, komoly hasonlóságok láthatóak a SETL-ben is).
2000 októberében megjelent a Python 2.0, majd 2008 decemberében a Python 3.0. Ez utóbbi nem lett túl divatos, hiszen teljesen új nyelvr
l van szó: hátrafelé nem kompatibilis – így a f
újdonságainak jó részét visszavezették a 2.6-os verzióhoz, egyel
re ez a támogatott.
3.2. Felépítése
Szerkezete ennek is er
sen hasonlít a C vagy Pascal nyelvekére.
Adattípusai között szerepel a lista, amely abban (is) különbözik a tömbt
l, hogy több típusú elemet tartalmazhat, akár másik listát is. További rendhagyó a nyelvben, hogy alapban támogatja a komplex számok kezelését.
3.3. Helló világ!
Kiíratás print utasítással, semmi különleges nincs benne:
print ’Helló világ’
3.4. A Python jelene
Akárcsak a Perl mögött (vagy akárcsak a Google összes többi fejlesztése mögött), itt is komoly közösség áll a háttérben.
Az egyik legkomolyabb fejlesztés, a CPython futtatható kódot készít a scriptb
l; hasonló elven m
ködik a Jython, amely Java-s bytecode-ot készít a Pythonban írt kódból.
4. Ruby
4.1. Története
A ’90-es évek közepén egy japán programozó, Yukihiro Matsumoto fejlesztette ki a Rubyt. Sok nyelv inspirálta a szerz
t, többek között a fentebb már említett Perl, de a szerz
megjelöli a Smalltalkot és a LISPet is mint szül
ket.
A szerz
elárulta, hogy olyan script nyelvet szerett volna alkotni, amely er
sebb mint a Perl, és objektum-orientáltabb mint a Python, ezért elkészítette a sajátját.
4.2. Felépítése
Matsumoto azt mondta, olyan nyelvet akart kifejleszteni, amelyben a programozó dolga a minimálisra csökken.
Minden adattípus objektum, ez vonatkozik a legalapabb típusokra is. Léteznek tömbök, asszociatív tömbök; ugyanúgy, mint a többi adattípushoz ezekhez is nagyon sok funkció, függvény kapcsolódik. A nyelv alkalmas kivételek kezelésére is.
4.3. Helló világ!
Print helyett a puts utasítás a használatos:
puts ”Helló világ!”
4.4. A Ruby jelene
Az els
hivatalos verzió a 0.95ös 1995 decemberében került fel az internetre. Egy évvel kés
bb, 1996 decemberében vált elérhet
vé a Ruby 1.0. Jelenleg az 1.9.1-es verziónál tart a fejlesztés, ezt 2009 januárjában adták ki.
Rubyhoz létezik a Matsumoto által fejlesztett Matz’s Ruby Interpreter (MRI), valamint a JRuby, a Java-s implementáció: ez utóbbi bytekódot készít a scriptb
l.
Gyakran használt megvalósítása még a nyelvnek a Ruby on Rails, ez egy nyílt forráskódú webalkalmazás-keretrendszer.
5. Egyéb nyelvek
Egyéb ismert scriptnyelvek közé tartozik a TCL is, ennek a Tk grafikai toolkittel való b
vítménye gyakran használt linuxos rendszereken.
Ismert webszerver oldali script nyelv a PHP is, amelyet 1995-ben mutattak be. Kliens oldali scriptnyelv a JavaScript, melyet a Netscape fejleszt
i mutattak be szintén 1995-ben.
A Microsoft mutatta be a VBScriptet, amely a Windows saját scriptnyelveinek egyike, a legtöbb Windows-alkalmazás támogatja.