[ neur0 @ 21.05.2006. 13:49 ] @
Hteo bih nauciti neki jezik za pravljenje skripti, pa bi mi dobro doslo ako neko moze da mi objasni koje su osnovne razlike izmedju Perl, Python i Bash skript jezika. Ili, ako ima preporuku za neki drugi...
Nije mi jasno sta to u jednom moze, a da u drugom ne moze i sl. Nemam nikakva iskustva sa ovim (osim klasicnih bat skripti)
Pretpostavljam da kad naucis jedan, lakse je nauciti i neki drugi ako treba, al ipak treba od negde da pocnem.
[ nkrgovic @ 21.05.2006. 17:48 ] @
Bash je shell, slican command.com-u za DOS po ulozi, mada ima mnogo vise funkcionalnosti (ima promenjljive, petlje...).

Perl je pravi programski jezik. Na *nix sistemima se cesto koristi za pisanje skripti, kao interpretirani jezik, ali nije alat za interaktivni rad (shell). Znaci, to je vec jezik.

Python je noviji, objektno orijentisan jezik. Retko se koristi za skripte, cesce za web. Open Office ga koristi kao ugradjeni jezik.

Od ta tri bi ti preporucio da Python zaobices, jer nije toliko cest. Perl je cesci, i koristi se, ali nije obavezan za imati. Osnova za pisanje skriptova je sh (ne Bash, nego Bourne Shell), sa dodatnim alatima - pre svega sed-om, grep-om i awk-om. AWK je mali sladak jezik prvenstveno za manipulaciju tekstom, i u kombinaciji sa sh-om ces ga naci na svakom *nix sistemu - za razliku od Perl-a, Unix standard (postojanje tih alata).

Ja bi bar pronao prvo sh i awk, na tvom mestu. Perl je odlican, nemoj me shvatiti pogresno, samo je sh blizi onome sto zelis.
[ neur0 @ 21.05.2006. 21:54 ] @
Hvala, ovakav utisak sam i ja stekao, mada nisam znao za Python buduci da sam nailazio na netu poredjenja bas izmedju njega i Perla pa sam mislio da su to 2 strane jedne medalje, te da je samo pitanje ko navija za koji.
[ Gojko Vujovic @ 21.05.2006. 22:12 ] @
Python ima budućnost i za neki prototyping razvoj, ali pošto nisi naveo da
ti to treba, preskoči ga. Kreni redom - bash, awk, sed, perl,... dalje ćeš već znati sam.

[Ovu poruku je menjao Gojko Vujovic dana 21.05.2006. u 23:22 GMT+1]
[ hroror @ 21.07.2006. 00:03 ] @
Dobro, ne razumem (sa stanovista obicnog usera, a ne sistem admina), zasto bi neko za pocetak preporucio awk. Ja imam Linux od 2002 (razne distribucije) i sve do momenta kada sam dobio 9 megabajtnu tekstualnu tabelu nisam imao potrebe za awkom. Tek tada sam procitao info gawka i iskoristio ga za to sta mi treba. Sve to treba, po mom misljenju, kad naidje. Dobro, priznajem awk je zanimljiv, ali to je kao kad neko kupi supernabudzeni fotoaparat i onda slika "svoja stopala".

A vidim dize se vec odavno dzeva oko Pythona, kao bas je kul (i Bruce Eckel ga nesto hvalio, tipa da je jaci od Jave na nekim poljima (mada to je bilo pre tigra)).

(Ba)sh za pisanje skripti u shellu i to je to. Ima jos dosta skript jezika ili interpretera koji imaju ekstenzije za cackanje po sistemu, ali sh ti je straightforward.
[ Au197/79 @ 21.07.2006. 07:17 ] @
Biću dosadan, ali zar većina novih skripti na linuxu nisu u Pythonu? A mnoge od njih su prvobitno zapošete u bash-u pa popythonjene :) Npr. Gentoo se oslanja na python, EasyUbuntu, Yum... Dans sam pročitao da se i testovi za linux kernel pišu u pythonu: http://trends.newsforge.com/article.pl?sid=06/07/20/1431259, mada je pisac posle par rečenica python počeo nazivati PHP-om :)

Osim toga, python je ekstra jezik, lak za učenje i rad, moderan objekno-orijentisani sa dosta stvari iz funkcionalnih jezika, dinamičan, refleksivan i nadasve koristan, ne samo za linux skripte već i opšte programiranje. Npr. Bittorent je napravljen u pythonu. U njemu se može programirati za gtk, qt, fltk, tk, jdk, .net...

Mada, nije loše znati ni bash i perl skripte, čisto da se više ceni Python.
[ nkrgovic @ 21.07.2006. 21:18 ] @
Citat:
hroror: Dobro, ne razumem (sa stanovista obicnog usera, a ne sistem admina), zasto bi neko za pocetak preporucio awk. Ja imam Linux od 2002 (razne distribucije) i sve do momenta kada sam dobio 9 megabajtnu tekstualnu tabelu nisam imao potrebe za awkom. Tek tada sam procitao info gawka i iskoristio ga za to sta mi treba. Sve to treba, po mom misljenju, kad naidje. Dobro, priznajem awk je zanimljiv, ali to je kao kad neko kupi supernabudzeni fotoaparat i onda slika "svoja stopala".

A vidim dize se vec odavno dzeva oko Pythona, kao bas je kul (i Bruce Eckel ga nesto hvalio, tipa da je jaci od Jave na nekim poljima (mada to je bilo pre tigra)).

(Ba)sh za pisanje skripti u shellu i to je to. Ima jos dosta skript jezika ili interpretera koji imaju ekstenzije za cackanje po sistemu, ali sh ti je straightforward.
Citat:
Au197/79: Biću dosadan, ali zar većina novih skripti na linuxu nisu u Pythonu? A mnoge od njih su prvobitno zapošete u bash-u pa popythonjene :) Npr. Gentoo se oslanja na python, EasyUbuntu, Yum... Dans sam pročitao da se i testovi za linux kernel pišu u pythonu: http://trends.newsforge.com/article.pl?sid=06/07/20/1431259, mada je pisac posle par rečenica python počeo nazivati PHP-om :)

Osim toga, python je ekstra jezik, lak za učenje i rad, moderan objekno-orijentisani sa dosta stvari iz funkcionalnih jezika, dinamičan, refleksivan i nadasve koristan, ne samo za linux skripte već i opšte programiranje. Npr. Bittorent je napravljen u pythonu. U njemu se može programirati za gtk, qt, fltk, tk, jdk, .net...

Mada, nije loše znati ni bash i perl skripte, čisto da se više ceni Python.

Iskopali ste malo matoru temu i odma otisli u off-topic, ali ja sam poceo - pa i da zavrsim. :)

Unix standard, kao takav, predvidja da na sistemu moraju postojati awk, grep i sed. Takodje, Unix standard podrazumeva shell interpreter kompatibilan sa Bourne shellom (/bin/sh - ne bash). Skripte pisane koriscenjem ovih alata radice na svakom Unix (TM) sistemu na svetu. Kako i sve Linux distribucije koje sam video, kao i sve varijante *BSD-a dolaze sa ovim alatima to znaci da ce takav skript raditi na svakom zamislivom *nix sistemu. Linux, ma kako to cudno zvucalo, nije jedini postojeci OS. :).

To da je awk premocan... Cuj - ja u 99% slucajeva koristim awk u obliku 'print {$2}' u sredini nekog pajpa :). Opet u 99% slucajeva se koristi manje od 1% mogucnosti grep-a, pa ipak velika vecina *nix korisnika zna sta je grep, i upotrebljava ga bar jednom nedeljno. Jednostavno, mnogo je zgodno koristiti alat za koji ZNAS da ce ga biti.

Nevezano za to, python jeste odlican jezik, stoji da se koristi u high-level alatima... Jednostavno : awk, grep, sed, sh - to ima svigde. Perl ima najcesce. A python.... ponekad. A i kad ga ima, python obicno stoji u /usr, kao i perl - i nije dostupan pri dizanju sistema. Samo to je dovoljno da ga cini nezgodnim za sistemske skripte. Za user skripte... to je vec do user-a :). Znaci, ne radi se o tome da je python los, vec da je nesto drugo standard i da ga svuda ima.
[ hroror @ 21.07.2006. 22:13 ] @
Wala, i zavrsio si.
[ Stefan Markic @ 10.05.2007. 01:48 ] @
Citat:
neur0:
Nije mi jasno sta to u jednom moze, a da u drugom ne moze i sl.


Evo jednog finog okvirnog upoređivanja

[ leka @ 11.06.2007. 15:15 ] @
Kao sto Nikola napisa, POSIX shell je defakto standard za UNIX. BASH je implementacija POSIX shell-a sa ekstenzijama (mada uvek mozete da se striktno pridrzavate POSIX-a u BASH-u, koriscenjem --posix flega). Dakle, svaki UNIX admin bi trebalo da zna makar BASH od svih ostalih skript-jezika. Svaki DOBAR UNIX administrator ili neki "power-user" (dakle ne "end-user") treba da, prema licnom misljenju, pored BASH-a zna i SED/AWK, sto podrazumeva i regularne izraze.

Neko rece da Python nije za shell-skripte - nije istina, Python/Lua/PHP/Ruby/PERL/TCL/... se mogu koristiti za shell-skripte bez ikakvih problema. Od svih navedenih Lua je definitivno najbrzi "normalni" (citaj struktuirani) skript jezik sto na neki nacin pokazuju poznati "Shootout" testovi (http://shootout.alioth.debian.org/).

Na kraju odgovor:
1) Ako znas neki od popularnih skript-jezika (citaj interpretiranih jezika) tipa Lua/PHP/Python/Ruby/PERL onda predlazem da naucis BASH.
2) Ako ne znas, onda predlazem da naucis BASH plus jedan od gorespomenutih - ja bih predlozio PHP, ali _obavezno_ probaj Lua! :D