Skriptovacie jazyky: Perl, Python nebo Lua?

Inkvizitor

Re:Skriptovacie jazyky
« Odpověď #15 kdy: 18. 12. 2011, 02:46:39 »
Když říkáš, Kapitáne, že "skriptovací jazyky" jsou používány pro účely, pro které nebyly navrženy, netýká se to Pythonu ani Ruby. Tyto jazyky se od začátku profilovaly jako univerzální. Java byla od začátku navržena špatně (odstranění šablon bez náhrady prostě navrhnul nějaký jouda, podobně u přetěžování operátorů apod.), C# vystartovalo líp a rychleji se porvalo s problémy. Problém je, že když už se naskytne nějaký lepší jazyk, který vychází ze syntaxe C (D, Scala atd.), dočká se poměrně vlažného přijetí. Python a Ruby se celkem pochopitelně vydaly vlastní cestou, protože se tím návrháři odstřihli od klapek na očích, které céčkaři mívají. Pokud chce někdo dělat multiplatformní aplikace středního nebo vyššího rozsahu, má na výběr mezi C++ (vcelku nízkoúrovňová záležitost), JVM a jazyky pod ním (strašlivá infrastuktura), Pythonem a Ruby (v zásadě ekvivalentní; Python je z mnoha důvodů pragmatičtější volba a přes všechno hype kolem RoR ho používá větší počet vývojářů; Ruby je v něčem čistější, ale krása je věc názoru). Ostatní možnosti jsou poměrně obskurní nebo o nich ani nemá cenu uvažovat.


asdfasd

Re:Skriptovacie jazyky
« Odpověď #16 kdy: 18. 12. 2011, 11:23:31 »
a treba sa obavat tych zmien vo verziach pythonu? lebo to je jedina vec ktora ma drzi v neistote

Inkvizitor

Re:Skriptovacie jazyky
« Odpověď #17 kdy: 18. 12. 2011, 11:45:45 »
Pokud můžeš začít s nejnovější verzí, změn se obávat nemusíš.

Kit

Re:Skriptovacie jazyky
« Odpověď #18 kdy: 18. 12. 2011, 12:11:18 »
Zatím tady nebyl zmíněn Lisp. I když v něm třeba nikdy nenapíšeš žádnou aplikaci, získáš návyky, které se ti budou hodit při programování v jiných jazycích.

Sten

Re:Skriptovacie jazyky
« Odpověď #19 kdy: 18. 12. 2011, 12:37:35 »
Možná jsem byl až příliš příkrý, mě v zásadě nevadí skriptovací jazyky a chápu jejich důležitost, ale vadí mi, když se používají na věci, na které nikdy nebyly určeny.

Mnoho skriptovacích jazyků je univerzálních.

Viz třeba JavaScript, který je super na ošetření stisku tlačítka, ale v poslední době nad ním vyrůstá ohromný moloch, který se pomocí knihoven ať už třeba prototype, coffeescript nebo podobných snaží "opravit" původní nedostatky jazyka. Lepší řešení by bylo se na tu sra*ku vykašlat a navrhnout striktně typový jazyk, ve kterém nepůjdou prasárny jako _tick("mamlas();_tick();");

„Nedostatky jazyka“ se většinou snaží odstranit někdo, kdo ten jazyk nechápe nebo chápat ani nechce. Typický příklad je Qt nad C++.

Skriptovací jazyky jsou v naprosté většině případů dynamické, což je dáno právě tím, že jsou skriptovací.

Pak je to Perl, se kterým mám vyloženě špatné zkušenosti a ne jen díky spammassasinovi.
Opět, problém není v jazyce samotném, ale ve špatném užití.

Zrovna spamassassin je výborné použití jazyka Perl. Jaký jiný skriptovací jazyk byste chtěl používat na složité zpracovávání textů?

LUA jako jazyk pro makra a skripty ve hrách je taky skvělá. Ale nechme jí hrám.

Nejen ve hrách, kdekoliv, kde se hodí složitější skriptování aplikací. Tedy pokud nechcete sáhnout po schopnějším JavaScriptu, který má ale mnohem složitější binding.

Ruby je krásná/ý.

Má krásnou filosofii. Které ale IMO mnohem lépe vyhovuje spustitelný pseudokód zvaný Python (tedy až na přetěžování operátorů, to dělal někdo, kdo s tím neměl žádné zkušenosti).


KapitánRUM

Re:Skriptovacie jazyky
« Odpověď #20 kdy: 18. 12. 2011, 12:51:12 »
2 Sten

Říkám, neútočím na skripty jako takové, ale na jejich nevhodné použití.
Tedy, že by tazatel měl říct, NA CO TO VLASTNĚ CHCE.

2 Inkvizitor

Otázka je, jestli Ruby (nevím jak Pytlouna) zařadit mezi "opravdové skriptovací jazyky".
Pár programů v Ruby jsem viděl i napsal, napsal jsem jich i dost v C# a jeden používá široká uživatelská základna z celého světa, všichni 2 uživatelé mi pravidelně píšou. Jde o to, že po přidání překladače k Ruby do bytekódu bych mezi C# a Ruby nepoznal.
Jo, Ruby mi přijde čistší.

Inkvizitor

Re:Skriptovacie jazyky
« Odpověď #21 kdy: 18. 12. 2011, 14:07:03 »
Otázka je, jestli Ruby (nevím jak Pytlouna) zařadit mezi "opravdové skriptovací jazyky".

A jaká je Tvoje definice opravdového skriptovacího jazyka? Já jsem v těchto škatulkách vždycky plaval.

KapitánRUM

Re:Skriptovacie jazyky
« Odpověď #22 kdy: 18. 12. 2011, 18:18:03 »
2 Inkvizitor

Třeba popis na Wiki je myslím dost zavádějící: http://cs.wikipedia.org/wiki/Skriptovac%C3%AD_jazyk
Tak se podívejme do minulosti.
Skript vznikl jako náhrada dávky.
Skriptovací jazyk by tak měl být dobrý na vyřešení malého konkrétního problému a výsledkem by mělo být 5-50 řádků kódu.
PHP v začátku také fungovalo jako skript, připoj se k DB, získej záznam, zobraz, konec.
JavaScript obsluhoval třeba stisk tlačítka.
LUA řešila nějakou herní akci.
BASH (Shell) například spustí a ukončí program, něco někam zkopíruje, ale umí se připojit i do DB.
To, jestli je skript kompilovaný nebo interpretovaný s tím v zásadě nesouvisí.

Jenže vývoj jde dopředu a rostou tu obři na hliněných nohou.
Ruby je na to (být obr) třeba připravená.
Na LUA už bych se bál stavět velký projekt.
Pytlouna používá(al?) seznam, takže asi funguje.
Ale ničemu v Perlu, co má víc jak 50 řádek už nevěřím ;D

Proto říkám, pokud tazatel přesně nespecifikuje, co chce dělat, tak se přece nedá univerzálně doporučit žádný ani skriptovací jazyk.

D.A. Tiger

  • ****
  • 486
  • Tygr, který žere tučňáka ;-)
    • Zobrazit profil
    • E-mail
Re:Skriptovacie jazyky
« Odpověď #23 kdy: 18. 12. 2011, 19:00:13 »
Já bych ti doporučil jazyk LUA. Pavel Tišnovský pro roota napsal skvělý seriál podle něhož jsem se tento jazyk učil i já, a začínám jej čím dál víc používat i pro psaní běžných scriptů. Jeho základní forma je  velmi jednoduchá - takže nepotřebuješ moc dokumentace, pro začátek ti bohatě stačí zmiňovaný seriál,  a základní dokumentace, která se instaluje přímo s interpretem (nebo ji lze nalézt i na stránkách projektů). dále je velmi variabilní, s pomocí MetaLua lze dokonce definovat např vlastní operátory, mnoho věcí v jazyce lze nahradit vlastními implementacemi (například rutiny pro načítání modulů a pod), lze ji rozšířit pomocí jazyka C a nebo ji lze poměrně snadno propojit s aplikacemi v C/C++. Myslím, že pokud si trochu zvykneš na některé zvláštnosti jazuka Lua (např na objekty reprezentované asociativními poly, a pod) nebudeš mýt s jeho zvládnutím sebemenší problémy.

Krom Pavlova opravdu vynikajícího seriálu ( http://www.root.cz/serialy/programovaci-jazyk-lua/ ) a základní dokumentace k jazyku Lua ( http://www.lua.org/docs.html ), je perfektním zdrojem jak poučení, tak i hotových příkladů i portál Lua-users wiki ( http://lua-users.org/wiki/ ).

Jinak však nejlepší odpověď na tvou otázku si stejně můžeš dát jen ty sám - prostě zkus a uvidíš ;)

martin

Re:Skriptovacie jazyky
« Odpověď #24 kdy: 18. 12. 2011, 19:49:00 »
To, jestli je skript kompilovaný nebo interpretovaný s tím v zásadě nesouvisí.

Existuje něco jako posunutí významu příp. zůžení nebo rozšíření. S tím nic nenaděláte.

Citace
Jenže vývoj jde dopředu a rostou tu obři na hliněných nohou.

Co kvalifikuje jazyk na obra?

KapitánRUM

Re:Skriptovacie jazyky
« Odpověď #25 kdy: 18. 12. 2011, 20:54:55 »
Jazyky nejsou problém, problém je jejich užití.

Například mi vadí, když stránka používá Jquery, Prototype, ExJS i MooTools a ještě další kraviny k tomu, aby se vůbec mohla zobrazit. Není nic divného, kdy velikost JS kódu zabírá přes půl mega. Koukněte se třeba na http://pctuning.tyden.cz/ velikost JS kódu je 800 KB (ne všechno je označeno .js ale je to JS)! Jak dlouho Vám zabere opravdu dobře prostudovat 800KB zdrojáku? A kolik % toho kódu řeší problémy jazyka a kolik % opravdu něco smysluplného dělá? Ale ano, na kopání díry není nutné použít zrovna rýč nebo bagr, holou rukou to jde taky a hodně lidem to určitě nevadí. Mě to přijde blbé. No, klidně se mi divte.

Spammassasin mi přišel taky jako slušný moloch, pravda, delší dobu jsem ho neviděl (ale vůbec se mi nestýská).


nick

Re:Skriptovacie jazyky
« Odpověď #26 kdy: 18. 12. 2011, 22:02:48 »
KapitánRUM: A to jako posuzuješ podle ocasů, co kvůli jedný dvouřádkový funkci linkujou celou knihovnu a na každou chujovinu mají dva pluginy? To jsou prostě lepiči. Stejní tragédi se najdou úplně všude - nevím, proč ti to tak vadí zrovna tady. I když třeba nedávno tady byla anketa, kde se autor upřímně podivoval nad lidmi, kteří si většinu věcí píšou na míru, místo aby vzali hroudu kódu a "nějak to tam namrdali". Tak si vyber :-D.

Inkvizitor

Re:Skriptovacie jazyky
« Odpověď #27 kdy: 19. 12. 2011, 00:42:47 »
2 Inkvizitor

Třeba popis na Wiki je myslím dost zavádějící: http://cs.wikipedia.org/wiki/Skriptovac%C3%AD_jazyk
Tak se podívejme do minulosti.
Skript vznikl jako náhrada dávky.
Skriptovací jazyk by tak měl být dobrý na vyřešení malého konkrétního problému a výsledkem by mělo být 5-50 řádků kódu.
PHP v začátku také fungovalo jako skript, připoj se k DB, získej záznam, zobraz, konec.
JavaScript obsluhoval třeba stisk tlačítka.
LUA řešila nějakou herní akci.
BASH (Shell) například spustí a ukončí program, něco někam zkopíruje, ale umí se připojit i do DB.
To, jestli je skript kompilovaný nebo interpretovaný s tím v zásadě nesouvisí.

Jenže vývoj jde dopředu a rostou tu obři na hliněných nohou.
Ruby je na to (být obr) třeba připravená.
Na LUA už bych se bál stavět velký projekt.
Pytlouna používá(al?) seznam, takže asi funguje.
Ale ničemu v Perlu, co má víc jak 50 řádek už nevěřím ;D

Proto říkám, pokud tazatel přesně nespecifikuje, co chce dělat, tak se přece nedá univerzálně doporučit žádný ani skriptovací jazyk.

Jo, skript jako náhrada dávky, to dává smysl. Pytlouna používá Google od samého začátku, kromě Seznamu ho používá (používalo?) i Centrum a u třeba nás ve firmě na něm stojí většina produktů. Ty produkty mají moře moc řádek a vývoj šel relativně rychle od ruky, aniž bychom měli závažnější problémy třeba s rozšiřitelností nebo stabilitou a výkon je v pohodě. Vím i o poměrně velkých projektech v Perlu, které taky fungují v pohodě, ale osobně bych na něm stavět nechtěl. Například kvůli absenci formálních parametrů a vůbec dost odporné syntaxi. Neříkám, že na Perlu není nic dobrého, ale na větší projekty je IMO dost nešikovný.

KapitánRUM

Re:Skriptovacie jazyky
« Odpověď #28 kdy: 19. 12. 2011, 01:07:49 »
S tou dávkou to asi nebylo moc šikovné přirovnání, přesto někde tady lze hledat počátky skriptů.
Jak přestala dávka příkazů stačit (jako první je asi zajímal návratový kód, jestli operace dopadla dobře), autoři hledali možnosti, co s tím udělat a úplně v prvopočátku se jednalo o spouštění a ukončování programů, importy/exporty, překlady a podobné činnosti.
Šup a byl tu lepší SHELL, pak i BASH. "Moderní" skriptovací jazyky jako LUA(skripty uvnitř her), PHP(pokus o pár řádcích kódu, které trochu oživí stránku) a JS(podobně), to už je moderní záležitost řekněme posledních 15 let. Silně pochybuji, že autoři řady skriptovacích jazyků vůbec kdy počítali s tím, že se v tom budou někdy dělat nějaké rozsáhlejší programy.

A pak tu jsou věci jako RUBY a (ta Vaše věc), skoro si myslím, že si ani nezaslouží tak "hanlivé označení" jako skriptovací jazyk, a určitě ne, pokud si ho nezaslouží ani Basic.

smoofy

  • *****
  • 1 059
    • Zobrazit profil
    • E-mail
Re:Skriptovacie jazyky: Perl, Python nebo Lua?
« Odpověď #29 kdy: 19. 12. 2011, 11:37:49 »
Rekl bych, ze hlavnim ucelem skriptovacich jazyku je rychlost a jednoduchost implementace, za cenu nizsi rychlosti vysledneho kodu tam, kde nas nejakej ten cas navic nezabije. Python se velice dobre hodi na praci s rozsahlymi texti a vetsina lidi co znam, tak od PERLu vylozene odrazuji. LUA se ukazuje jako pomerne mocny a uzitecny nastroj a pouziva ji cim dal tim vice UNIXovych aplikaci jako skriptovaci jazyk pro konfiguraky. Osobne se ucim v pythonu a je to velice mocny a zajimavy nastroj pro vetsinu bezneho rychleho pouziti a s pouzitim interaktivniho shellu je to takovej "svycarak" se kterym s pouzitim tech spravnych knihoven dokazete temer cokoliv. Ruby a Lisp nemuzu soudit pac ty jsem videl pouze ze shinkansenu.

Ve finale opravdu nejvice zalezi na tom k cemu chces jazyk pouzivat. Pro praci s rozsahlymi texty jsou jazyky jako C/C++ etc nevhodne, na druhou stranu, velky projekty zase nejsou uplne domenou skriptovacich jazyku.