Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Vlákno názorů k článku
Groovy: Java má vzdáleného bratrance

uživatel si přál zůstat v anonymitě
15. 10. 2007 10:53

Každý názor musí mít titulek.

Nekdo by se mohl oprit do netu a vypatrat, kolik naprosto mrtvych, nesmyslnych a vzajemne syntakticky nekompatibilnich programovacich jazyku existuje...
Ja zkusim vyjmenovat ty realne pouzitelne:
rychle, profesionalni, naprosto nekompatibilni: c++
prumerne rychle, profesionalni, hodi se na vsechno, jednoduche, extremne rychly vyvoj: .NET(C#), Java
extremne pomale, jednoduche, hodi se na male veci s extremne rychlym vyvojem, skriptovaci: Python, uvedl bych snad i o neco starsi Perl, ale ten se diky sve dvojake, trojake, ctyrjake a kdovijake jeste syntaxi, radi mezi read only odpad ....
S timto se da vystacit prakticky na vsechno na PC ...
Jakub Šťastný aura:97
15. 10. 2007 11:04

Re: Každý názor musí mít titulek.

Kdyz to berete takhle, tak si muzete klidne vystacit s assemblerem ... ktery je navic rychly, proste prima jazyk ;)
dunsun
dunsun (neregistrovaný)
15. 10. 2007 11:45

Re: Každý názor musí mít titulek.

+1

Plny souhlas. Prijde mi uplne zbytecne, ze nekdo porad vymysli nove a nove programovaci jazyky s novou syntaxi. Kdo si to ma taky pamatovat.
Ti co programuji ve vice nez 2. jazycich zjisti, ze se jim neustale plete syntaxe z jednoho do druheho. Jinymi slovy - at uz konecne nekdo vymysli Java skriptovaci jazyk se zcela stejnou syntaxi jako ma klasicka Sun Java (ale ne strasne omezeny JavaScript !).
uživatel si přál zůstat v anonymitě
15. 10. 2007 12:33

Re: Každý názor musí mít titulek.

perl? Snad write-only, ne? A ono pokud se clovek snazi, tak muze psat perl stejne citelne jako treba c++ (nebo naopak c++ stejne necitelne jako perl).
uživatel si přál zůstat v anonymitě
15. 10. 2007 14:59

Perl "read only"

Mozna se budu opakovat ale Perl je hlavne o svobode psani kodu. Nikdo Vas nenuti psat
necitene ... , ale pokud chcete muzete :).
%
% (neregistrovaný)
15. 10. 2007 15:42

Re: Perl "read only"

hh, groovy. To budou zase Script Kiddies mit radost, co? Jediny script, ktery mam rad je ten, co si poctive vygeneruji pomoci kompilovaneho jazyka :-D
uživatel si přál zůstat v anonymitě
15. 10. 2007 17:42

Re: Perl "read only"

Jen spete dal :) Velky hraci jako Sun, Microsoft nebo IBM si davno uvedomili, ze dynamicke jazyky budou hrat v budoucnu velkou roli.
%
% (neregistrovaný)
16. 10. 2007 12:51

Re: Perl "read only"

Programovaci jazyky se rozdeluji na kompilovane a interpretovane, funkcionalni a objektove, low-level a high-level, reknete mi tedy jaktoze si myslite, ze existuji staticke a dynamicke? To si pravdepodobne pletete webove prezentace (staticke a dynamicke) s jazyky ;)

Jen spete dal, scripting je vhodny presne pro takove jako jste vy, tedy abych byl konkretni nemusite znat vubec nic a stejne muzete scriptovat od rana do vecera v cemkoliv od Ruby az po Lisp
Michal Vyskocil
Michal Vyskocil (neregistrovaný)
16. 10. 2007 14:32

Re: Perl "read only"

Ááá, zdá se, že pán je skutečně odporník. :-D http://www.root.cz/clanky/staticka-dynamicka-typova-kontrola/ ty webová prezentace BTW: kompilovany a interpretovany jazyk je otazkou implementace jazyka. Existuje interpret jazyka C (tcc) a naopak, najit cisty interpret Lispu neni snadne, protoze vetsina implementaci jsou kompilatory.
uživatel si přál zůstat v anonymitě
16. 10. 2007 15:03

Re: Perl "read only"

To jste se ted dobre znemoznil :))
http://en.wikipedia.org/wiki/Dynamic_language
Rejpal
Rejpal (neregistrovaný)
16. 10. 2007 22:48

Re: Perl "read only"

A proč v Lispu skriptovat a ne rovnou programovat? Zvlášť když to je výkonný, kompilovaný, dynamický a univerzální (jako protiklad ke všem těm čistě objektovým, čistě funkcionálním a dalším) jazyk. ;-)
uživatel si přál zůstat v anonymitě
15. 10. 2007 15:56

Re: Perl "read only"

To, ze je perl totalni zverstvo nema se svobodou cehokoliv nic spolecneho .... kdyz nema poradnou syntaxi a je mozno pouzivat plno zastupnych sracek, tak to pro me neni jazyk ... zdrojovy kod je od toho aby byl CITELNY, je uplne jedno jaky kokot to pise, ale melo by to byt aspon trochu citelne ... srovnavat to s ceckem (coz je mimojine taky dost paskvil) je celkem smesne .... PERL mi pripadne jako stejne "svobodny" paskvil jak linux. Hafo vzajemne nekompatibilnich distribuci, ikdyz jde furt o to same:o) Velka VYHODA! (pro Microsoft a podobne:)
uživatel si přál zůstat v anonymitě
15. 10. 2007 16:47

Re: Perl "read only"

Vidim, ze s Perlem nemate aktivni zkusenost. Vidim to proto, ze jsem mel docela podobne nazory Vasim -- do doby, kdy jsem byl "donucen" se Perl naucit a pouzivat. :) Perl je uplne paradni na quick&dirty vyrobu/zpracovani dat textoveho charakteru... treba v komputacni lingvistice [no dobre no, tak jsem zaujaty ;) ] se pouziva takrka vyhradne (jeste krom nejakeho toho Rka na statistiku). A verte nebo ne, kdyz potrebujete nejaky skript napsat rychle (treba abyste mohl jit vecer na pivo), tak ty vsemozne zkratky a vubec flexibilitu docela ocenite. Stejne vetsinu tech skriptu napisete jenom jednou, zdokumentujete jejich "interface" a pak se uz nestarate o to, co se tam vevnitr deje. Ale zase je pravda, ze na "administracni" skriptovani moc Perl nepouzivam. Pokud se tam teda nema provadet nejaka zbesilost s textem :)
uživatel si přál zůstat v anonymitě
15. 10. 2007 20:03

Re: Perl "read only"

No nevim, ta syntaxe ma svoje pravidla ale bohuzel je asi nevidite :) to ze se neco zda neprehledne a restriktivne Vas nenuti psat jenom jednim zpusobem , jeste nutne neznamena ze je spatne. Neznam efektivnejsi jazyk nejenom pro zpracovavani textu ale i pro administraci systemu. Ale vas nazor Vam neberu.
zyz
zyz (neregistrovaný)
15. 10. 2007 21:25

Re: Perl "read only"

V komplexnych projektoch ma syntax marginalny vplyv na citatelnost vysledku. Citatelnost a lahkost porozumiet kodu a schopnost ho udrzovat je o rozumnej a prehladnej architekture, cistej implementacii algoritmov a dokumentacii. Programy v Jave napr. casto umelo rozbiju celu logiku programu medzi mnozstvo neprehladnych ad-hoc tried - kodu je vela a je nepriamociary. V Perle je to iste riesenie problemu casto implementovane v jednom subore v ktorom sa da lahko orientovat a casto ma 10x menej riadkov. Syntax Perlu je bohata - ale ked sa ju naucite, tak zistite, ze sa viete efektivne a cisto vyjadrovat. Mne sa lahsie udrzuje kratky a prehladny kod - tiez riziko chyb je v takom kode mensie.
Miloš
Miloš (neregistrovaný)
16. 10. 2007 2:02

Re: Perl "read only"

Souhlasím s Vámi. Kritikům bych rád připoměl, že nepřehlednost kódu není vlastností programovacího jazyka ale vlastností programátora! Je sice fakt, že v Perlu si různí autoři mohou oblíbit natolik rozdílné konstrukce, že výsledek nepřipomíná společný jazyk. Pak je na šéfovi projektu, aby je umravnil a stanovil nějaká společná pravidla. A i když je mnohá kritika Perlu oprávněná, jedno se Larrymu upřít nedá. Perl je opravdu diagonální jazyk. Diagonální v tom smyslu, že lze přímo - po diagonále - řešit to, co v mnoha jiných jazycích musím řešit oklikou - po odvěsnách . Tam mě vždy rozčilovalo, že když konečně vymyslím schopnej algoritmus, musím další hodiny věnovat tomu, jak ho vlastně implementovat, protože díky mnoha omezením to přímo nejde. (Larry mluví o narážení do skleněných stěn). Nakonec se to sice přez různé objížďky a finty povede, ale logika původního algoritmu je ta tam. Co je platné, že elementární instrukce jsou jasné a čitelné, když smysl celku potom uniká.
mys elf
mys elf (neregistrovaný)
16. 10. 2007 9:13

Re: Perl "read only"

Hodil by se nějaký diagonální příklad, aby například pythonista poznal, co diagonálního Perl umí.
zyz
zyz (neregistrovaný)
16. 10. 2007 10:30

Re: Perl "read only"

Vymena obsahu premennych bez pomocnej premennej?

($a, $b) = ($b, $a)
mys elf
mys elf (neregistrovaný)
16. 10. 2007 12:25

Re: Perl "read only"

Python: a, b = b, a
Ruby: a, b = b, a
Ocaml: let a, b = b, a
zyz
zyz (neregistrovaný)
16. 10. 2007 12:39

Re: Perl "read only"

Ten Python a Ruby beriem (syntax inspirovana Perlom). Priklad v OCaml robi nie co ine; definuje nove premenne, ktore zakryju v danom rozsahu povodne a, b. Premenne (okrem ref) su v OCaml predsa konstantne.

Ok, vymena premennych nevysla. Co tak parsovanie URL argumentov do hash/map premennej?

$urlArgs = 'key1=value1&key2=value2';

%params = map { $$_[0] => $$_[1] }
          map { [ split /=/, $_ ] }
          split /\&/, $urlArgs;

Ako nieco podobne bude vyzerat v Python/Ruby?

mys elf
mys elf (neregistrovaný)
16. 10. 2007 12:52

Re: Perl "read only"

V Pythonu treba:

urlArgs = 'key1=value1&key2=value2'

params = dict(oneParam.split('=') for oneParam in urlArgs.split('&'))
zyz
zyz (neregistrovaný)
16. 10. 2007 13:22

Re: Perl "read only"

Ok. A co ak by som chcel do toho slovniku zapisat len parametre, kde kluc aj hodnota zacina velkym pismenom. Do slovnika ich chcem ale pridat s malymi pismenami.
mys elf
mys elf (neregistrovaný)
16. 10. 2007 17:56

No problem

params = dict((key[0].lower() + key[1:], value[0].lower() + value[1:]) for key, value in
(oneParam.split('=') for oneParam in urlArgs.split('&'))
if (key[0].isupper() and value[0].isupper()))

Tahle konstrukce uz je ale dost krkolomna a nemyslim, ze tohle je nutne resit jednim prikazem. Bylo by to v Perlu strucnejsi a hlavne citelnejsi?
mys elf
mys elf (neregistrovaný)
16. 10. 2007 17:57

Re: No problem

Redakcni system sezral odsazeni, ale v tomto pripade neni z hlediska funkce nutne.
zyz
zyz (neregistrovaný)
16. 10. 2007 18:35

Re: No problem

Redakcni system sezral odsazeni, ale v tomto pripade neni z hlediska funkce nutne.

Tiez jeden z dovodov, preco mi to vynutene odsadzovanie nesedi :)

mys elf
mys elf (neregistrovaný)
17. 10. 2007 0:22

Re: No problem

No, svoje nevýhody jistě má. Ale to je věc názoru.
zyz
zyz (neregistrovaný)
16. 10. 2007 19:31

Re: No problem

V Perle mozem jednoducho doplnit tuto logiku to povodneho riesenia:

%params = map  { +"\l$_->[0]" => "\l$$_[1]" }
          grep { $$_[0] =~ /^\p{IsUpper}/ && $$_[1] =~ /^\p{IsUpper}/ }
          map  { [ split /=/, $_ ] }
          split '&', $urlArgs;

Vsimite si ako je ten kod linearizovany - ziadny vnoreny "for" a cely kod neprehladne uzaverety do volania dict(). Moje riesenie je uplne standardny Perl - vas Python kod by ste v normalnom projekte takto nezapisali pretoze ten vnoreny for je neprehladny.

Dajme si este jedno kolo - ake je hodnota parametra vo formate YYYY-MM-DD a rok je nizsi ako 2000, tak nech je zapisany ako rok 2000.

zyz
zyz (neregistrovaný)
16. 10. 2007 20:25

Re: No problem

Pre referenciu predkladam riesenie v Perle:

#!/usr/bin/perl

$urlArgs = '=Value1&Key2=Value2&Key3=1999-12-02';

%params = map  { +"\l$$_[0]" => "\l$$_[1]" }
          map  { $$_[1] =~ s/^(\d{4})/$1 < 2000 ? 2000 : $1/e; $_ }
          grep { $$_[0] =~ /^\p{IsUpper}/ &&
                 $$_[1] =~ /^(\p{IsUpper}|\d{4}(-\d\d){2}$)/ }
          map  { [ split /=/, $_ ] }
          split '&', $urlArgs;

print "$params{key3}\n";

Opat linearne pridanie zopar prikazov do existujuceho kodu. Standardny Perlovsky text-processing.

uživatel si přál zůstat v anonymitě
17. 10. 2007 11:04

Re: No problem

Není ta podobnost fascinující? ;-)
zyz
zyz (neregistrovaný)
17. 10. 2007 13:39

Re: No problem

Zeleny caj mam rad :)
Niekto kompetentny by sa mohol pokusit prepisat to do Groovy pre porovananie.
samo
samo (neregistrovaný)
17. 10. 2007 17:34

Re: No problem

ako perlista si dovolim este jedno male stuchnutie: ktory z uvedenych prikladov je citatelnejsi?
zdanlivo lepsi python, preto nuti odsadzovat, alebo perl, ktory vam dava volnost?

v mojich ociach vitazi jednoznacne perl.
mys elf
mys elf (neregistrovaný)
17. 10. 2007 18:43

Re: No problem

Filosofie Perlu je, ze existuje mnoho cest k jednomu cili, Python tvrdi, ze v mnoha pripadech existuje jedna spravna.

Ten priklad, ktery kolega dal, je asi citelnejsi; zvlast kdyz clovek zna syntaxi Perlu. Ja bych ale uvedeny "one-line" pristup pro slozitejsi zpracovani nikdy nepouzil - to je lepsi pouzit cyklus nebo vnorene funkce. Bez ohledu na pouzity programovaci jazyk.
zyz
zyz (neregistrovaný)
16. 10. 2007 19:38

Re: No problem

Tiez som si vsimol, ze vo vasom kode ak zadam nespravny vstup; napr:

urlArgs = '=Value1&Key2=Value2'

tak to hodi, vynimku. Moja Perl verzia nespravne hodnoty korektne odfiltruje/ignoruje.

mys elf
mys elf (neregistrovaný)
17. 10. 2007 18:40

Re: No problem

Vyjimku to hodi, protoze dela presne to, co jsem chtel a nic vic, nic min.
zyz
zyz (neregistrovaný)
17. 10. 2007 19:28

Re: No problem

Tak skuste chciet aj osetrit nespravny vstup. Google na vas tiez nevyhodi vynimku ked zadate:

http://www.google.com/search?abc&&q=root.cz&abc=abc=abc

V Perle to bolo osetrene hned na prvy krat.

mys elf
mys elf (neregistrovaný)
17. 10. 2007 19:42

Re: No problem

No a?
zyz
zyz (neregistrovaný)
17. 10. 2007 20:02

Re: No problem

No a to je odpoved na vasu povodnu otazku o diagonalnich schopnostiach Perlu :)
Rejpal
Rejpal (neregistrovaný)
17. 10. 2007 20:10

Re: No problem

Python se na stavbu robustních aplikací určitě hodí, ale někteří pythonisté ne. ;-) A tak to bude asi se vším.
zyz
zyz (neregistrovaný)
17. 10. 2007 20:25

Re: No problem

Ja len zopakujem velku pravdu, ze na kvalitu vysledku maju najvacsi vplyv schopnosti programatora. Ak niekto dobre ovlada Python/Ruby/Perl/PHP tak nema dovod prechadzat na iny jazyk len preto, ze ten je dnes "in". Napokon TeX napisal D.Knuth v archaickom jazyku WEB (nieco ako obmedzeny pascal - Knuth si ho napisal sam) a dodnes ten typesetting engine nie je v mnohych aspektoch prekonany. Tiez je dolezite, ci programovanie v danom jazyku je pre kodera dostatocna zabava.
mys elf
mys elf (neregistrovaný)
17. 10. 2007 22:12

Re: No problem

Rejpale, nerejpej. Mně bylo samozřejmě od začátku jasné, že ten kód neošetřuje špatně formátovaný vstup. Ale chtěl jsem ukázat co nejjednodušší řešení daného úkolu. To se ví, že v praxi bych si to nelasnul.
mys elf
mys elf (neregistrovaný)
17. 10. 2007 22:13

Re: No problem

Dobrá tedy, Perl má nadprůměrně rozvinuté prostředky pro práci s textem, na tom se shodneme. Koneckonců to vyplývá i z názvu.
mys elf
mys elf (neregistrovaný)
16. 10. 2007 12:57

Re: Perl "read only"

A k tomu Ocaml: ten (pokud vynechame reference atd.) v podstate promenne nema. Let pouze provadi substituci v danem vyrazu.
zyz
zyz (neregistrovaný)
16. 10. 2007 13:34

Re: Perl "read only"

A chapeme slovo premenna doslovne ako nieco co sa da menit (ignoruc vyraz "konstantna premenna"), tak okrem refs ma OCaml skutocne len konstanty. Az jednu nepeknu vynimku - retazce:


let s = "hello world" in s.[0] <- 'H'; print_string s;;
uživatel si přál zůstat v anonymitě
16. 10. 2007 13:08

Re: Perl "read only"

Jezisi kriste!!!

TOTO???
%params = map { $$_[0] => $$_[1] }
map { [ split /=/, $_ ] }
split /\&/, $urlArgs;

JE PROGRAMOVACI JAZYK??? To radsej assembler...

Sorry, nie som aktivny programator, ale toto ma dorazilo. Reagujem koli tomu, ze sa tu pise o citatelnosti kodu. Ak je toto Perl, tak sa toho vzivote radsej ani nedotknem. Mam strach, ze keby som po neakej dobe prestal v tomto jazyku pracovat a po neakej dobe by som sa vratil, tak by to bolo na samovrazdu :o)
Nie, nechcem nikoho urazat, ja viem ze kto v tom je dobry tak si na to neda sahat a nech si kazdy pouziva to co sa mu paci (ved o tom sloboda je).
Mne sa na Perl nepaci to, ze je zazraty do Linuxu ako chrobak do hovna. Problem je presne to, ze ak uzivatel (nie programator) potrebuje si prebehnut script ze co to robi, alebo nedajboze poupravit pre vlastne potreby, tak nanho vybrechne takyto paskvil. Mno z toho ani tusenie nemam ze co to moze asi robit...

OK som LAMER jag swina
ťava
ťava (neregistrovaný)
16. 10. 2007 13:16

Re: Perl "read only"

Toto je jeden z dovodov preco preferujem Perl. Idioti sa ho nenaucia a tak ak mam po niekom udriavat kod, tak viem, ze si nebudem trhat vlasy - pretoze ho pisal skutocny programator.
zyz
zyz (neregistrovaný)
16. 10. 2007 14:13

Re: Perl "read only"

Perl pouziva rozne specialne znaky pre dobry dovod. Napr. podla

%var = funkcia();

viem, ze funkcia vratila hash/dictionary. V Pythone podla:

var = funkcia()

Neviem o premennej var absolutne nic.

mys elf
mys elf (neregistrovaný)
16. 10. 2007 18:05

Re: Perl "read only"

V Pythonu je mozne zjistit typ promenne pomoci type(var) nebo treba isinstance(var, dict). Zajistit spravny typ navratove hodnoty se da prikazat pomoci assertu, dekoratoru a v Pythonu 3000 asi nejlepe anotace. Co promenna obsahuje, by zejmena mel rikat nazev promenne a dokumentace te funkce (docstring). Tohle je "malinko" univerzalnejsi, protoze v praxi se clovek neomezuje na par typu, ktere lze oznacit nejakym znakem pred nazvem.
zyz
zyz (neregistrovaný)
16. 10. 2007 18:31

Re: Perl "read only"

Pravda, nie je to celkom univerzalne ale zvysuje to citatelnost kodu dost zasadne v mnohych situaciach. type(var) (obdoba ref(EXPR) v Perle) je pekna vec ale tu ide o citalenost kodu a nie jeho debuggovanie.

Inak zvlastne, ze ked niekto kritizuje v Pythone vynutene odsadzovanie - tak argument je, ze to zvysuje citatelnost kodu a teda to nemoze byt ponechane na slobodnom uvazeni programatora. Ale ak niekto poukaze, ze jazyk nevynucuje lahke odlisenie zakladnych datovych typov, tak argument je, ze je na programatorovi aby uvazene nazval premenne :)

Uzivatel
Uzivatel (neregistrovaný)
16. 10. 2007 16:24

Re: Perl "read only"

Ach jaj. Kolko z Vas robi projekty od piky ? Velmi malo ludi. su to 3 skupiny:

1. ti co ovladaju programovat a chcu sa nieco naucit sami
2. ti co programovat nevedia a myslia si, ze to zvladnu (nepoznaju dostupnost frameworkov)
3. to iste ako skupina cislo 1, ak maju tvorit nejake presne aplikacie na mieru a dostupne frameworky neposkytuju vsetko potrebne, pricom upravit ich by bolo zlozitejsie.

Ak si sa stretol s ludmi zo skupiny 2 tak to chapem, lebo podobne kody nikdy nebudes musiet vediet naspamat a tebe bude stacit volat iba metodu, ktora to vsetko spravi za teba.
Miloš
Miloš (neregistrovaný)
16. 10. 2007 17:45

Re: Perl "read only"

Žádný skript přeci nemůžete pochopit, pokud netušíte, co dělají standartní funkce jazyka. A to zdaleka neplatí pouze pro Perl. A pokud chcete skript upravovat, musíte se jazyk alespoň trochu naučit. Člověk neznalý Angličtiny také neupravuje Shakespeara. Něco jiného je nesrozumitelnost textu pro jeho nelogičnost a něco jiného je nesrozumitelnost textu pro neznalost jazyka. Je snad Maďarština nepoužitelná?
Jakub Hegenbart aura:85
16. 10. 2007 23:02

Re: Perl "read only"

Pokus o Ruby: :-)
$urlArgs = 'key1=value1&key2=value2'

$params = Hash[*$urlArgs.split(/&/).map{|kv| kv.split(/=/)}.flatten]
zyz
zyz (neregistrovaný)
17. 10. 2007 0:42

Re: Perl "read only"

Pekna linearna verzia. Dokonca zvlada aj urcite nekorektne vstupy. Avsak nie takyto:

$urlArgs = 'key0&&key1=value1&key2=value2'
Rejpal
Rejpal (neregistrovaný)
17. 10. 2007 0:52

Re: Perl "read only"

Co naplat, musím na to složitěji: :-)
$params = Hash[*$urlArgs.split(/&/).grep(/([^=]+)=([^=]+)/){[$1,$2]}.flatten]
zyz
zyz (neregistrovaný)
17. 10. 2007 1:21

Re: Perl "read only"

Hehe, tak to je skvela finta! V Perle by som to zapisal takto:

%params = map { @$_ } grep { /([^=]+)=([^=]+)/ && ($_=[$1,$2]) } split /&/, $urlArgs;
wayan
wayan (neregistrovaný)
17. 10. 2007 23:36

Re: Perl "read only"

my %params = map { split /=/, $_, 2 } grep { /=/ } split /&/, $urlArgs;
zyz
zyz (neregistrovaný)
18. 10. 2007 12:48

Re: Perl "read only"

Pekne riesenie. Nie je to sice presne to iste ako predtym uvedene riesenie. Napr. vstup ako:

$urlArgs = 'Key1=Value1a=Value1b&Key2=Value2';

To spracuje inak, ale myslim, ze spravnejsie.

zyz
zyz (neregistrovaný)
17. 10. 2007 0:59

Re: Perl "read only"

Podobna "priamociara" verzia, ktora neosetruje vsetky nekoretkne vstupy vyzera takto

%params = map { split /=/ } split /&/, $urlArgs;
Jakub Hegenbart aura:85
17. 10. 2007 1:16

Re: Perl "read only"

No jo, no - mně golf nikdy nešel. :-)
Jirka Vysata
Jirka Vysata (neregistrovaný)
21. 1. 2008 10:02

Re: Perl "read only"

Kyosuke, Tialko, Kubo, prosime, ozvi se. Jsme uplne vydeseny, co je s tebou. Pripominam muj mail: j.vysata@centrum.cz

Radi bychom se dozvedeli, ze jeste zijes.

Jirka Vysata (Arrendo)
wayan
wayan (neregistrovaný)
17. 10. 2007 23:55

Re: Perl "read only"

Indexovat můžete i seznam:
my %params = map { ( split /=/, $_ )[ 0, 1 ] } split /&/, $urlArgs;
zyz
zyz (neregistrovaný)
18. 10. 2007 12:51

Re: Perl "read only"

To ma nanapadlo - ale teraz ked to vidim, tak je to uplne logicke. Dik! Cesta k osvieteniu v Perle je dlha...
Rejpal
Rejpal (neregistrovaný)
16. 10. 2007 22:54

Re: Perl "read only"

Common Lisp: (rotatef a b) - a funguje to s libovolným počtem proměnných - nebo spíš "places", mohou to být i přístupy do datových struktur.
salam
salam (neregistrovaný)
16. 10. 2007 23:15

Re: Perl "read only"

"Vymena obsahu premennych bez pomocnej premennej?" To je neco, co vetsinou neexistuje, ve skutecnosti se nejaka mezipromenna pouzije a kdyz uz trvam na tom aby se nepouzila, chci presne vedet, jak se to stane a proto jedine C++ a b=a^b, a=b^a, b=a^b;
:-) :-) :-)
salam
salam (neregistrovaný)
16. 10. 2007 23:25

Re: Perl "read only"

a nebo

b=a+b;
a=b-a;
b=b-a;

nebo

void swap(int &a,int &b)
{
try
{
throw a;
}
catch(int falling)
{
a=b;
b=falling;
}
}

nebo dokonce :-)

void swap(int &a,int &b)
{
if(a<b)
{
--b;
swap(a,b);
++a;
}
else
if(a>b)
{
--a;
swap(a,b);
++b;
}
}
Pavel Tišnovský aura:98
18. 10. 2007 11:31

Re: Perl "read only"

lepsi jsou ty XORy, protoze funguji vzdy. Ona totiz operace + a - nedela v mnoha pripadech to, co v matematice. Napriklad pro floaty. Ale ta verze s vyhazovanim vyjimky se mi dost libi, to je spravny rychly pristup :-)
Rejpal
Rejpal (neregistrovaný)
16. 10. 2007 23:28

Re: Perl "read only"

Zjevně jsi nikdy neslyšel o assemblerovském XCHG... ;-)
mys elf
mys elf (neregistrovaný)
17. 10. 2007 18:49

Re: Perl "read only"

Jo jo, to mě napadlo jako první. Hlavně si ale myslím, že uvažovat na takto nízké úrovni (co se přesně děje, když programovací jazyk prohodí obsah dvou proměnných), je nesmysl i v C. Pokud nemám např. zaručeno, že se pro dané proměnné použije registr (a to C++ zajistit nemůže), může se dít docela dost různých věcí. Proto v aplikacích používám raději vyšší jazyky, abych nemusel řešit kraviny typu alokace paměti atd.
salam
salam (neregistrovaný)
18. 10. 2007 14:24

Re: Perl "read only"

Nesmysl je tvrdit něco takového obecně. Když programuješ například na úrovni jednotlivých pixelů, tak prostě nemáš možnost si zjednodušovat práci jakýmkoliv vyšším jazykem.
mys elf
mys elf (neregistrovaný)
18. 10. 2007 16:43

Re: Perl "read only"

Jsou případy, kdy to neplatí, souhlasím.
Rejpal
Rejpal (neregistrovaný)
18. 10. 2007 17:05

Re: Perl "read only"

Nu. takřka na cokoliv se dá napsat vyšší jazyk, obzvlášť pokud je doména úzce omezená. Třeba RenderMan Shading Language pracuje s miliony barvových hodnot, a je to specializovaný vysokoúrovňový (relativně :-)) jazyk navržený právě pro manipulaci s barvami milionů mikropolygonů.

Nejlepší je umět specializované jazyky dělat, tím si člověk ušetří nejvíc práce, pokud se nějaké aplikační doméně chce věnovat trvale. ;-)
salam
salam (neregistrovaný)
18. 10. 2007 21:52

Re: Perl "read only"

Co si představuješ pod pojmem "vyšší jazyk"? RenderMan Shading Language? Moc o tom nevím, ale mám pocit, že to jsou krátké rutinky, které se kompilují a pak rovnou spouští. A teď se dívám, že to má oholený C zápis, nejsložitější datový typ je jednosměrné pole a velikost všech dat musí být známa v době kompilace. Tohle bych řekl, že je spíš klasická ukázka hodně low-level jazyka.
Pavel Tišnovský aura:98
18. 10. 2007 11:38

Re: Perl "read only"

Ani xchg se neobejde bez pomocne promenne (nejakeho temporary registru), protoze se jedna o cteni a zapis probihajici na jedne sbernici, ktery je nutno rozdelit do dvou kroku. Zalezi na tom, na jake urovni (vzdalenosti od HW) se budeme pohybovat, ale prohozeni dvou hodnot lezicich na jinem miste se bez pomocne promenne nebo nejakych obezlicek typu +-- ci ^^^ (viz prechozi kody) neobejde.
Rejpal
Rejpal (neregistrovaný)
18. 10. 2007 13:31

Re: Perl "read only"

To sice jo, ale minimálně v případě místních proměnných v registrech by to měl ošetřit rovnou register renaming, ne? ;-)
Pavel Tišnovský aura:98
18. 10. 2007 16:51

Re: Perl "read only"

to ano, pokud se nesaha do pameti, tak by s tim procesor mohl neco udelat (protoze moderni CPU uz klasickou interni datovou sbernici ani nemaji, cest mezi ruznymi jednotkami tam existuje vic a sbernice by vsechno zdrzovala).
Rejpal
Rejpal (neregistrovaný)
18. 10. 2007 17:06

Re: Perl "read only"

Však já architekturu procesorů nějakou dobu studoval... ;-)
Pavel Tišnovský aura:98
19. 10. 2007 10:02

Re: Perl "read only"

to je dobre, vzdycky je dobre tusit, co se vlastne uvnitr toho svaba deje :-) i kdyz mam dojem, ze ty nejlepsi technicke figle si stejne vyrobci chrani.

Mimochodem, nejlepe se swap dvou hodnot zapise v C--, protoze na to ma krasny operator >< (to je posledni kombinace znaku < a >, ostatni kombinace jsou "zabrane")

Skoda, ze se C-- uz moc nevyviji, jako lepsi makroassembler to bylo takrka dokonale.
mys elf
mys elf (neregistrovaný)
19. 10. 2007 22:52

Re: Perl "read only"

No, ono by to << nebo >> stejne moc dobre nevystihovalo podstatu akce. ;-)
Miloš
Miloš (neregistrovaný)
16. 10. 2007 18:50

Re: Perl "read only"

Zrovna Python jsem na mysli neměl. Je to velice dynamický, logický a "pedagogický" jazyk a i když mému naturelu je Perl bližší, Python bych rozhodně nehaněl. (Nemám ve zvyku nadávat na něco jen proto, že můj favorit je jiný). Co mě od Pythonu odrazuje je výlučné předávání parametrů pomocí odkazů. (I když to mnozí chválí). Nechci aby mi modul zničil data, která má poze číst, jen proto, že jsem já nebo někdo jiný udělal v modulu chybu.

Jinak na Vaši otázku nedokážu dost dobře odpovědět, protože Pytnon neznám tak detailně abych mohl srovnávat a navíc zrovna Pytnon velké překážky neklade.
Snad jen toto:

*funkce='_zpracuj'.$klic;
$vysledek=funkce($parametr);

Vysvětlení: Chci volat jednu z deklarovaných funkcí ale její název musím ze znalosti vstupních dat teprve poskládat. Odkaz tedy použít nemohu, funkci eval pro vyhodnocování za běhu použít nechci a nepřímý odkaz je zakázán jako riskantní.
mys elf
mys elf (neregistrovaný)
17. 10. 2007 10:08

Re: Perl "read only"

V Pythonu napriklad muzu napsat

funkce = locals('nazev')
mys elf
mys elf (neregistrovaný)
17. 10. 2007 18:53

Re: Perl "read only"

Oprava:

funkce = locals()['nazev']
mys elf
mys elf (neregistrovaný)
17. 10. 2007 18:56

Re: Perl "read only"

No, já se bez mučení přiznám, že Perl mi k srdci nepřirostl, ale zajímalo mě (jako mě to zajímá u ostatních jazyků), co jeho fanoušci vypíchnou jako hlavní výhody. Kromě CPANu, samozřejmě. ;-)
zyz
zyz (neregistrovaný)
17. 10. 2007 19:16

Re: Perl "read only"

Moj zoznam vyhod:

  • mod_perl2
  • vela kvalitnych a stabilnych CPAN modulov
  • dostupnost na kazdom UNIX-like systeme
  • dobra podpora regularnych vyrazov
  • podpora unicode
  • rychlost
  • mne viac-menej vyhovujuca syntax
  • programovat v Perle je zabava
  • lamy v Perle nekoduju

Nevyhody:

  • objektove programovanie je hack (funkcny ale stale hack)
  • obmedzena moznost explicitnej typovej kontroly
  • primitivny GC

Vsetky nevyhody su opravene v Perl6 - ale ked ten bude hotovy a pouzitelny, tak ja uz budem v dochodkovom veku ;)

wayan
wayan (neregistrovaný)
17. 10. 2007 23:50

Re: Perl "read only"

Z hlediska programátora zaměstnance přidám ještě jednu nevýhodu - rozšíření. V nabídkách práce se Perl příliš často nevyskytuje. Ve svém okolí (Brno) znám jedinou firmu, kde Perl používají jako hlavní jazyk pro vývoj aplikací a v té pracuju.

Tuto nevýhodu ovšem Perl sdílí s většinou jazyků jmenovaných na této stránce - nevzpomínám si, kdy jsem naposledy četl inzerát hledající programátora v Lispu.
mys elf
mys elf (neregistrovaný)
17. 10. 2007 23:57

Re: Perl "read only"

No, programátora v Pythonu hledá Centrum na Rootu (přes jobs.cz) už nějakou dobu. A inzerát na perlistu jsem už taky párkrát viděl. Dokonce někde nedávno hledali i odborníky na Ocaml/F#. Ne každému se samozřejmě poštěstí dělat v jazyce, který se mu líbí nejvíc a pravý profík používá pravý nástroj na pravém místě, ne? Perlista/pythonista/rubista/etc.ista pravděpodobně má i zkušenosti s C/C++/C#/Javou atd. O groovistech nemluvě. ;-)
xyzzy
xyzzy (neregistrovaný)
18. 10. 2007 8:30

Re: Perl "read only"

A ne kazdemu se chce delat v Seznamu. ;-)
zyz
zyz (neregistrovaný)
18. 10. 2007 13:59

Re: Perl "read only"

Job inzerat na OCaml/F# v Cechach alebo na Slovensku? To by ma zaujimalo. Viem, ze Xen Source hlada OCaml koderov - ale rozhodne nie u nas.
mys elf
mys elf (neregistrovaný)
18. 10. 2007 16:41

Re: Perl "read only"

Ne, tohle byla, myslím, konkrétně nějaká firma v Budapešti a zabývají se nějakými finančními systémy.
Rejpal
Rejpal (neregistrovaný)
18. 10. 2007 9:33

Re: Perl "read only"

"Schopný mladý muž místo nehledá, ale vytváří." :-) (Nebo tak nějak to v těch Básnících bylo? ;-))
mikrom
mikrom (neregistrovaný)
15. 10. 2007 23:50

Re: Perl "read only"

Musim sa tiez priklonit k opacnym nazorom. Moja osobna skusenost je, ze Perl je vyborny jazyk na spracovanie textov. Nie je problem pisat v nom zrozumitelny kod. Ked porovnam syntax tu prezentovaneho Groovyho s Perlom, tak ten Perl sa mi predsa len zda omnoho zrozumitelnejsi :-)
Zasílat nově přidané příspěvky e-mailem