,,Ezt egy egysoros programmal meg lehet oldani''
Hatékony szkriptnyelvek 25 éve és ma

Az előadás (Szabó Péter: ,,Ezt egy egysoros programmal meg lehet oldani'' Hatékony szkriptnyelvek 25 éve és ma) elhangzott Budapesten, 2006. november 23-án, 14:15 és 15:10 között az LME 2006 GNU/Linux Szakmai konferencián.

Az előadásra való felkészülést a Szabad Szoftver Intézet támogatta.

A szerzővel fel lehet venni a kapcsolatot az első dián olvasható e-mail címen.

Kivonat

A Unix a kezdetektől fogva olyan eszközökkel kényeztette felhasználóit, melyek együtt lehetővé tették az ismétlődő feladatok gyors automatizálását, ezzel a Unixot hatékony munkakörnyezetté téve a programozók, a programozni szerető felhasználók és a rendszeradminisztrátorok számára. Ezen klasszikus eszközök: a csővezetékek és az adatok szöveges, újrabeolvasható tárolási módja és a szkriptnyelvek megtalálhatók a mai Linux rendszereken is, és a a stabilitás és a biztonság mellett ők is hozzájárulnak a Linux népszerűségéhez a programozni szeretők körében.

A cikk egy vázlatos, forráskód-részletekkel illusztrált körképet vázol fel a ma népszerű szkriptnyelvekről. Célja, hogy a Linux iránt érdeklődők ízelítőt kapjanak az automatizálási lehetőségekről, beleértve azt is, hogy milyen feladatnak milyen nyelvben érdemes nekifogni, továbbá hogy szélesítse azok látókörét, akik néhány szkriptnyelvet már ismernek. A bemutatott nyelvek egy része már 25 éve is jelen volt (Bourne shell, AWK, sed, Make, C shell), de jöttek modern trónkövetelők is (Lua, PHP, Perl, Pike, Python, Ruby, TCL). A cikkben, az egyes nyelvek szintaxisát illusztrálandó, visszatérő motívumként jelennek meg kettő vagy több különböző nyelven is működő programok, melyek egy gyakorlati hasznára (az interpreter elérési útvonalától független #! shebang) is fény derül.

Letöltés

Az előadáshoz tartozó cikk megjelent a konferenciakiadványban. A cikk letölthető [PDF] formátumban és [LaTeX .tex forrás]-ként. (A LaTeX-forrás lefordításához szükséges segédfájlok nem tölthetők le.) Idővel az egész konferenciakiadvány is letölthető lesz PDF-formátumban a konferencia honlapjáról. A cikk szabadon felhasználható a CC-BY-SA-2.0 licenc szerint.

Az előadáshoz tartozó diák letölthetők [PDF] formutumban és [LaTeX .tex forrás]-ként. (A LaTeX-forrás lefordításához szükséges segédfájlok nem tölthetők le.) A diák szabadon felhasználhatók a CC-BY-SA-2.0 licenc szerint.

Figyelem! A diák lényegesen új információt tartalmaznak a cikkhez képest, érdemes mindkettőt elolvasni. Ha beszerezhető az előadásról készült hangfelvétel, azt is érdemes meghallgatni, mert szóban a diákhoz és a cikkhez képest is sok új információ hangzott el.

A tárgyalt szkriptnyelvek a Wikipédián

25 éve is megvoltak:
Bourne shell 1977-- Wikipedia link
AWK 1977 Wikipedia link
C shell 1979 Wikipedia link
Make 1977 Wikipedia link
sed* 1974 Wikipedia link
Újkeletűek, aktív fejlesztés alatt állnak:
GNU ld <1996Wikipedia link
Lua 1994-- Wikipedia link
PHP* 1995-- Wikipedia link
Perl 1987-- Wikipedia link
Pike* 1994-- Wikipedia link
Python 1990-- Wikipedia link
Ruby 1995-- Wikipedia link
TCL* 1988-- Wikipedia link
Jelmagyarázat: * szoftverintegrációra nem használatos.

A cikken szereplő irodalmi hivatkozások

@book{a_unix_operacios_rendszer,
  author={Kernighan, Brian W. and  Pike, Rob},
  title={A UNIX operációs rendszer},
  title-en={The UNIX Programming Environment},
  translated-by={Turi Gabriella and Kovács Tibor},
  extra1={Lektorálta Sztrókay Kálmán},
  extra2={A verseket Tandori Dezső fordította},
  publisher={Műszaki Könyvkiadó, Budapest},
  year=1987,
}

@misc{acmssa,
  title={{ACM} {Software} {System} {Award} díjak},
  key  ={{ACM} {Software} {System} {Award} díjak},
  url={http://awards.acm.org/software%5Fsystem/},
  misc={2003-ban kapott díjat a Make szerzője},
}

@misc{gnubuild,
  title={{GNU} szoftverfordítási rendszer},
  key  ={{GNU} szoftverfordítási rendszer},
  title-en={{GNU} build system},
  url={http://en.wikipedia.org/wiki/GNU_build_system},
}

@misc{build_automation,
  title={Szoftverfordítás automatizálása},
  key  ={Szoftverfordítás automatizálása},
  title-in={Build automation},
  url={http://en.wikipedia.org/wiki/Build_Automation},
}

@misc{unix_filozofia,
  title={{UNIX}-filozófia},
  key  ={{UNIX}-filozófia},
  title-en={{UNIX} philosophy},
  url={http://en.wikipedia.org/wiki/Unix_philosophy},
}

@misc{dc.sed,
  title={{\textsf{dc}} implementáció {\textsf{sed}}-ben},
  key  ={{\textsf{dc}} implementáció {\textsf{sed}}-ben},
  url={http://sed.sourceforge.net/grabbag/scripts/dc.sed},
}

@misc{wikipedia,
  title={Wikipedia: szabad enciklopédia},
  key  ={Wikipedia: szabad enciklopédia},
  url={http://en.wikipedia.org/},
}

@misc{cpan,
  title={{CPAN}: a {Perl}-modulok kifogyhatatlan tárháza},
  key  ={{CPAN}: a {Perl}-modulok kifogyhatatlan tárháza},
  url={http://www.cpan.org/},
  misc={A Perl-modulok itt kereshetők és innen tölthetők le},
}

@misc{busybox,
  title={{BusyBox}: a beágyazott {Linux} svájcibicskája},
  key  ={{BusyBox}: a beágyazott {Linux} svájcibicskája},
  url={http://www.busybox.net/},
}

@article{magic_perl_header,
  title={A Magic Header for Starting {Perl} scripts},
  huname=1, author={Péter Szabó},
  url={http://i.cmpnet.com/ddj/tpj/images/tpj0304/0304tpj.pdf},
  year=2003,
  journal={The {Perl} Journal},
  month=apr,
  pages={13--15},
}

@misc{scripting_language,
  title={Szkriptnyelvek},
  key  ={Szkriptnyelvek},
  url={http://en.wikipedia.org/wiki/Scripting_language},
}

@misc{perl_roviden,
  huname=1,
  title={Perl r{\"o}viden},
  author={P{\'e}ter Verh{\'a}s},
  url={http://www.szabilinux.hu/verhas/perl/index.html},
}

@misc{ruby_on_rails_magyarul,
  huname=1,
  title={Ruby on {Rails}},
  author={B{\'a}rth{\'a}zi, Andr{\'a}s},
  url={http://weblabor.hu/cikkek/rubyonrails},
  year=2005,
  month=aug,
}

@misc{lua_bcdc,
  title={Bevezető leírás a {Lua}-ról, elsősorban {BCDC}-seknek},
  key  ={Bevezető leírás a {Lua}-ról, elsősorban {BCDC}-seknek},
  url={http://ro.4242.hu/cgi-bin/yabb2/YaBB.pl?board=bcdc_help},
  misc={A ,,01. Rövid ismerkedés'' linkről induljunk},
}

@misc{lua_objektum,
  title={Objektum-orientált programozás {Lua}-ban},
  author={Roberto Ierusalimschy},
  key  ={Objektum-orientált programozás {Lua}-ban},
  url={http://www.lua.org/pil/16.html},
  year=2003,
}

@misc{lua_uses,
  title={Luában szkriptelhető programok listája},
  key  ={Luában szkriptelhető programok listája},
  url={http://www.lua.org/uses.html},
}

@misc{perlmonks_obfuscated,
  title={Szándékosan nehezen érthetőre írt rövid {Perl}-szkriptek},
  key  ={Szándékosan nehezen érthetőre írt rövid {Perl}-szkriptek},
  url={http://perlmonks.org/?node=Obfuscated%20Code},
}

@misc{perl_keywords_obfuscated,
  title={Csak kulcsszavakból álló {Perl}`-szkript},
  author={Mike Rosulek},
  url={http://perlmonks.org/?node=Obfuscated%20Code},
  year=2003,
}

@misc{cpan_szszi,
  huname=1,
  title={{Perl}-modulok telepítése a {CPAN}-ről},
  huname=1, author={Szabó, Péter},
  url={http://www.szszi.hu/wikidev/PerlModulokCPANr%C5%91l},
  year=2005,
}

Vélemények

Hojtsy Gábor írta a weblabor.hu-n: ,,Szabó Péter egysoros szkriptekről szóló előadása számos szkript nyelv erősségeit igyekezett bemutatni -- nem csak egysoros programokkal. Jól válogatott érdekes példái trükkös lehetőségekre világítottak rá.''