perl je oproti ostatnym jazykom ovela narocnejsi na schopnosti programatora.
perl totiz ako jazyk sam o sebe nekladie programatorovi takmer ziadne predpisy, takmer ziadne bariery. vsetky si programator buduje sam.
chces modularny program?
- perl ma nastroj, pouzivaj ho ako uznas za vhodne
chces objekty?
- perl ma nastroj, pouzivaj ho ako uznas za vhodne
chces vynimky?
- perl ma nastroj, pouzivaj ho ako uznas za vhodne
najvacsi problem perlu je to, ze programatori su lenive svine (poznam podla seba :-) ), a ich manageri su slusne povedat idioti
Je perl ještě na pořadu dne?
15. 7. 2005 8:34
Martin Povolny
Na O'Reillynet.com vyšlo zamyšlení Tima O'Reillyho nad osudem jazyka perl.
Perlu prý škodí dlouhé čekání na perl6, jeho pozici zabírají jazyky jako PHP a Python. Článek dokonce zmiňuje Ruby a WWW/SQL framework Ruby on Rails.
Nebylo by nejlepší, aby se Perlem verze 6 stalo Ruby?
Tato zprávička byla zaslána čtenářem serveru Root.cz pomocí formuláře Přidat zprávičku. Děkujeme!
Dále čtěte…
- IDE Komodo ve verzi 3.0 30. 7. 2004 9:35
- Leopard pro e-government 10. 11. 2003 13:07
- O'Reilly Open Source Software Convention 2003 16. 1. 2003 9:15
- Jaký programovací jazyk se naučit 7. 1. 2010 16:23
- Jak napsat dokumentaci k projektu během pár minut? 7. 7. 2009 12:58
sayber (neregistrovaný)
15. 7. 2005 16:02
Nový
Re: perl
celé vlákno
Absolutne souhlasim s Tvym kometarem, mam zkusenosti s PHP, ale to se zas hodi, jen na web. Perl je mnohem robusnejsi, a da se v nem napsat snad uplne vsechno na co si clovek vzpomene, krome jednoduchych veci, ktre jdou resit shellem.
uživatel si přál zůstat v anonymitě
16. 7. 2005 19:26
Nový
Re: perl
celé vlákno
Proc ta vyjimka? Perl se da pouzit jako shell naprosto bez problemu. Casto je to i rychlejsi.
uživatel si přál zůstat v anonymitě
15. 7. 2005 12:28
Nový
Ruby a Rails
celé vlákno
Nevím, ale od té doby, co jsem objevil Ruby, nemám chuť už napsat ani jediný řádek v Perlu.
A poté, co jsem zkusil udělat pár aplikací v Rails, je pro mě mrtvé i PHP.
A poté, co jsem zkusil udělat pár aplikací v Rails, je pro mě mrtvé i PHP.
karel (neregistrovaný)
15. 7. 2005 15:03
Nový
Re: Ruby a Rails
celé vlákno
Na základě tohoto příspěvku jsem kouknul na Ruby a Ruby on Rails a musím říct, že zůstávám u PERL a PHP.
15. 7. 2005 16:04
Nový
Re: Ruby a Rails
celé vlákno
To jste borec, me trvalo proniknuti do RUBY podstatne dele, nez pul dne, nemluve o Ruby on Rails ;-)
Ale verim, ze je vase rozhodnuti presto spravne a podlozene.
Ale verim, ze je vase rozhodnuti presto spravne a podlozene.
uživatel si přál zůstat v anonymitě
15. 7. 2005 16:06
Nový
Re: Ruby a Rails
celé vlákno
z dokumentacie ...
A Ruby class can have only one direct parent, and so Ruby is a single-inheritance language.
... vyplyva, ze ruby je (pre mna) takisto ako mnozstvo inych jazykov mrtve.
nech si vravi kto chce co chce, na viacnasobnu dedicnost clovek natrafi kazdu chvilu ... a simulovat to inak? sorry.
je to namet na poriadnu flamewar ... ma dakto zaujem ? :-)))
A Ruby class can have only one direct parent, and so Ruby is a single-inheritance language.
... vyplyva, ze ruby je (pre mna) takisto ako mnozstvo inych jazykov mrtve.
nech si vravi kto chce co chce, na viacnasobnu dedicnost clovek natrafi kazdu chvilu ... a simulovat to inak? sorry.
je to namet na poriadnu flamewar ... ma dakto zaujem ? :-)))
15. 7. 2005 16:31
Nový
Re: vicenasobna dedicnost
celé vlákno
Ruby toto resi pomoci mixinu, coz mi prijde o dost lepsi nez treba javove interfaces. Pomoci mixinu udelate prakticky vcechno, co vas napadne. Navic to muzete provadet v run-time a treba jen na konkretni instanci.
Pokud byste chtel vicenasobnou dedicnost tak, jak ji zname treba z C++, s virtualnimi bazovymi tridami a dalsimi super vlastnostmi, tak potom musim rici, ze bohudik Ruby nic takoveho nema.
Jeste k C++: cetl jsem Design Patterns od gangu 4 a snazil jsem si predstavovat, jak by to asi vypadalo v Ruby. Prislo mi, ze polovina patternu byla vymyslena proto ze v C++ se musi nektere veci delat tak, jako kdyz si sedim na obou rukach a chci pri tom psat na klavesnici.
p.s. V cem pisete (jestli jsem s C++ strelil vedle)?
Pokud byste chtel vicenasobnou dedicnost tak, jak ji zname treba z C++, s virtualnimi bazovymi tridami a dalsimi super vlastnostmi, tak potom musim rici, ze bohudik Ruby nic takoveho nema.
Jeste k C++: cetl jsem Design Patterns od gangu 4 a snazil jsem si predstavovat, jak by to asi vypadalo v Ruby. Prislo mi, ze polovina patternu byla vymyslena proto ze v C++ se musi nektere veci delat tak, jako kdyz si sedim na obou rukach a chci pri tom psat na klavesnici.
p.s. V cem pisete (jestli jsem s C++ strelil vedle)?
uživatel si přál zůstat v anonymitě
15. 7. 2005 17:17
Nový
Re: vicenasobna dedicnost
celé vlákno
hej hej, to som si cital, nepripada mi to to prave orechove.
jeden z prikladov:
class Socket;
class HostSocket : Socket;
class InetSocket : Socket;
class InetHostSocket : InetSocket, HostSocket;
class UnixSocket : Socket;
class UnixHostSocket : UnixSocket, HostSocket;
ako som uz raz napisal, kazdy silny nastroj je dobry nastroj, ale odsudzovat ho preto, ze niekto ho nevie pouzivat ?
prestanete pouzivat cirkularku, pretoze vas ozraty sused si odpilil dva prsty? :-)))
ad design patterns: ono je to trochu o inom, hlavnym zamerom je zvysit znovupouzitelnost kodu (objektov).
priklad:
AbstractFactory ... v Rails je to nieco typu (db-driver: mysql).
to je ten objekt (skryty), ktory robi transpartny pristup k db.
Decorator ... nie je to "nahodou" vas mixin ? :-)))
v com programujem? momentalne cisto perl, byvali casy aj javy a c++.
btw, ked chcete flamewar ... ako je na tom Ruby a autoload?
(pre vysvetlenie)
programator: volam funkciu/metodu do_something
perl: aha, ta metoda neexistuje, zavolam radsej AUTOLOAD
programator/ina kniznica definuje AUTOLOAD.
jeden z prikladov je v kniznici CGI.pm
sub AUTOLOAD { print meno-volanej-metody; ... }
a program moze vyzerat nasledovne:
html (
body ( {onLoad => 'alert (1)' },
table ( { border => 0 },
[ .... ]
)
)
)
(uvedene je priklad, osobne neprogramujem webove aplikacie takze nemam oblubeny sposob)
jeden z prikladov:
class Socket;
class HostSocket : Socket;
class InetSocket : Socket;
class InetHostSocket : InetSocket, HostSocket;
class UnixSocket : Socket;
class UnixHostSocket : UnixSocket, HostSocket;
ako som uz raz napisal, kazdy silny nastroj je dobry nastroj, ale odsudzovat ho preto, ze niekto ho nevie pouzivat ?
prestanete pouzivat cirkularku, pretoze vas ozraty sused si odpilil dva prsty? :-)))
ad design patterns: ono je to trochu o inom, hlavnym zamerom je zvysit znovupouzitelnost kodu (objektov).
priklad:
AbstractFactory ... v Rails je to nieco typu (db-driver: mysql).
to je ten objekt (skryty), ktory robi transpartny pristup k db.
Decorator ... nie je to "nahodou" vas mixin ? :-)))
v com programujem? momentalne cisto perl, byvali casy aj javy a c++.
btw, ked chcete flamewar ... ako je na tom Ruby a autoload?
(pre vysvetlenie)
programator: volam funkciu/metodu do_something
perl: aha, ta metoda neexistuje, zavolam radsej AUTOLOAD
programator/ina kniznica definuje AUTOLOAD.
jeden z prikladov je v kniznici CGI.pm
sub AUTOLOAD { print meno-volanej-metody; ... }
a program moze vyzerat nasledovne:
html (
body ( {onLoad => 'alert (1)' },
table ( { border => 0 },
[ .... ]
)
)
)
(uvedene je priklad, osobne neprogramujem webove aplikacie takze nemam oblubeny sposob)
15. 7. 2005 18:19
Nový
Re: vicenasobna dedicnost
celé vlákno
Memam mic proti design patterns, prave naopak. Vubec me nemrzi, ze jsem si to precetl.
Chtel jsem se navazet do C++, protoze jsem si tipoval, ze kdyz mluvite o vicenasobne dedicnosti, budete si v nem libovat a ze si pekne zaflamujeme ;-)
ad autoload: v Ruby se takove veci delaji pomoci method_missing: http://www.rubycentral.com/ref/ref_c_object.html#method_missing
cili pro vysvetleni:
volam metodu, ktera neexistuje na nejake instanci I cehosi,
ruby: aha, takze toto neumime, takze volame I.method_missing( :jmeno_volane_funkce, *argumenty)
btw: Jedna vyhoda Ruby proti Perlu je, ze se to da cist. Delat v perlu v teamu vice lidi, to chce prisnou disciplinu a dlouhy bic. Perl nebyl navrzen, je to vytvor sileneho lingvisty.
Proti C++: nemusime jednoduche veci delat slozite, od myslenky k zapisu je jen krucek.
PHP: Pejsek s kocickou varili dort, placli tam toto a pak toto, pak se jim to nejak nezdalo, tak to zkouseli nejdriv osolit a pak osladit, nakonec to neslo zrat.
Python: to je tezky, Python je dobrej, moc pythonistu k Ruby neprechazi, nemaji motivaci
Chtel jsem se navazet do C++, protoze jsem si tipoval, ze kdyz mluvite o vicenasobne dedicnosti, budete si v nem libovat a ze si pekne zaflamujeme ;-)
ad autoload: v Ruby se takove veci delaji pomoci method_missing: http://www.rubycentral.com/ref/ref_c_object.html#method_missing
cili pro vysvetleni:
volam metodu, ktera neexistuje na nejake instanci I cehosi,
ruby: aha, takze toto neumime, takze volame I.method_missing( :jmeno_volane_funkce, *argumenty)
btw: Jedna vyhoda Ruby proti Perlu je, ze se to da cist. Delat v perlu v teamu vice lidi, to chce prisnou disciplinu a dlouhy bic. Perl nebyl navrzen, je to vytvor sileneho lingvisty.
Proti C++: nemusime jednoduche veci delat slozite, od myslenky k zapisu je jen krucek.
PHP: Pejsek s kocickou varili dort, placli tam toto a pak toto, pak se jim to nejak nezdalo, tak to zkouseli nejdriv osolit a pak osladit, nakonec to neslo zrat.
Python: to je tezky, Python je dobrej, moc pythonistu k Ruby neprechazi, nemaji motivaci
Michal (neregistrovaný)
15. 7. 2005 20:57
Nový
Re: vicenasobna dedicnost
celé vlákno
...tak ten popis PHP naozaj sedí :-D
barney (neregistrovaný)
16. 7. 2005 13:52
Nový
Re: vicenasobna dedicnost
celé vlákno
hmm, disciplina predsa musi byt :-))
ja osobne jednoducho nemam rad obmedzenia.
kazdy jazyk je niecim vynimocny ... jednoduchym ci zlozitym ho nerobi jeho vlastna syntax, ale kniznice a ludia (v tomto poradi) :-)
ja osobne jednoducho nemam rad obmedzenia.
kazdy jazyk je niecim vynimocny ... jednoduchym ci zlozitym ho nerobi jeho vlastna syntax, ale kniznice a ludia (v tomto poradi) :-)
uživatel si přál zůstat v anonymitě
22. 7. 2005 16:26
Nový
Re: vicenasobna dedicnost
celé vlákno
A když už máme vícenásobnou dědičnost, proč nezajít dál, třeba k vícenásobnému dispatchingu? Nebo k rovnou k metaobjektovému protokolu? ;-)
uživatel si přál zůstat v anonymitě
15. 7. 2005 20:04
Nový
Re: Ruby a Rails
celé vlákno
Ruby je velice kvalitni programovaci jazyk a pokud si muzu vybrat mezi perlem nebo rubym, tak ruby je jasna volba :-)
co mi ale neuveritelne ohledne ruby vadi je implementace vlaken je li tedy nejaka sance ze se neco podobneho bude pouzivat a zalezi na rychlosti a spolehlivosti obchazim ruby velikym obloukem. Pokud je nutne psat neco distribuovanyho, velkyho a komplexniho, tak python je stale neporazena jednicka.
Kdyz uz jsem si vydelal na chleba psanim v hruzach jako perl, tak se rad necham unaset uzivanim opravdu skvostnych jazyku jako haskell, ocaml a scheme.
co mi ale neuveritelne ohledne ruby vadi je implementace vlaken je li tedy nejaka sance ze se neco podobneho bude pouzivat a zalezi na rychlosti a spolehlivosti obchazim ruby velikym obloukem. Pokud je nutne psat neco distribuovanyho, velkyho a komplexniho, tak python je stale neporazena jednicka.
Kdyz uz jsem si vydelal na chleba psanim v hruzach jako perl, tak se rad necham unaset uzivanim opravdu skvostnych jazyku jako haskell, ocaml a scheme.
uživatel si přál zůstat v anonymitě
16. 7. 2005 0:10
Nový
Re: Ruby a Rails
celé vlákno
No, tak pokud vam neuveritelne vadi ty thready, muzete zkusit Sydney ( http://blog.fallingsnow.net/articles/2005/07/11/sydney-developer-preview-release-1-out nebo http://redhanded.hobix.com/inspect/syndeyTheNewPeopleSChoiceRuby.html ), coz je Ruby na steroidech :)
Wejn (neregistrovaný)
16. 7. 2005 0:10
Nový
Re: Ruby a Rails
celé vlákno
No, tak pokud vam neuveritelne vadi ty thready, muzete zkusit Sydney ( http://blog.fallingsnow.net/articles/2005/07/11/sydney-developer-preview-release-1-out nebo http://redhanded.hobix.com/inspect/syndeyTheNewPeopleSChoiceRuby.html ), coz je Ruby na steroidech :)
16. 7. 2005 9:13
Nový
Re: Ruby a Rails
celé vlákno
Zajímavé, ale myslím, že lepší bude počkat na Ruby 2.0 využívající nový YARV VM. Dle jeho autora bude kromě jiných v nové verzi zahrnuta i podpora nativních threadů, viz: http://article.gmane.org/gmane.comp.lang.ruby.yarv.devel/57
Další info: http://www.atdot.net/yarv/
YARV by měl ale hlavně přinést výrazné zrychlení, v některých případech až 10x oproti dnešnímu Ruby. Právě rychlost je asi hlavní věc, ve které Ruby zatím zaostává za Perlem i Pythonem.
Další info: http://www.atdot.net/yarv/
YARV by měl ale hlavně přinést výrazné zrychlení, v některých případech až 10x oproti dnešnímu Ruby. Právě rychlost je asi hlavní věc, ve které Ruby zatím zaostává za Perlem i Pythonem.
Wejn (neregistrovaný)
19. 7. 2005 8:58
Nový
Re: Ruby a Rails
celé vlákno
No, tak kdo by se netesil na YARV :-)
Jenze ja mam pocit, ze stabilni verze je jeste peknych par mesicu v budoucnosti.
A pokud jde o tu rychlost -- no, pokud v Ruby nepisete zrovna realtime veci a nebo zpracovani grafiky, da se docela dobre pracovat i s 1.8.X. :-) Nehlede na to, ze napriklad Rails tohle dobre resi pomoci fragment/page/action cachovani.
Jenze ja mam pocit, ze stabilni verze je jeste peknych par mesicu v budoucnosti.
A pokud jde o tu rychlost -- no, pokud v Ruby nepisete zrovna realtime veci a nebo zpracovani grafiky, da se docela dobre pracovat i s 1.8.X. :-) Nehlede na to, ze napriklad Rails tohle dobre resi pomoci fragment/page/action cachovani.
ond (neregistrovaný)
15. 7. 2005 15:23
Nový
Ruby jako evoluce Perlu
celé vlákno
Ruby umí všechno co Perl a to velmi podobným způsobem,
a ještě mnoho věcí navíc, ale hlavně si myslím má naprosto nejlepší syntaxi, ze všech v současnosti existujících jazyků. Je to ta nejlepší evoluce Perlu jakou znám.
Perl jsem používal od roku 1997. Ruby od roku 2001.
a ještě mnoho věcí navíc, ale hlavně si myslím má naprosto nejlepší syntaxi, ze všech v současnosti existujících jazyků. Je to ta nejlepší evoluce Perlu jakou znám.
Perl jsem používal od roku 1997. Ruby od roku 2001.
da5id (neregistrovaný)
16. 7. 2005 10:19
Nový
Problém s Rails ...
celé vlákno
Na základě probíhající diskuse jsem se na Rails kouknul a musím se přiznat, že mě oslovil ;-) Narazil jsem ale na newbie problém: nedaří se mi založit novou aplikaci jako non-root. Zde přikládám výstup:
~/public_html/test$ rails .
/usr/local/lib/ruby/gems/1.8/gems/activesupport-1.1.1/lib/active_support/dependencies.rb:186:in `const_missing': uninitialized constant ActiveRecordError (NameError)
from /usr/local/lib/ruby/gems/1.8/gems/activerecord-1.11.1/lib/active_record/validations.rb:2
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:21:in `require'
from /usr/local/lib/ruby/gems/1.8/gems/activesupport-1.1.1/lib/active_support/dependencies.rb:200:in `require'
from /usr/local/lib/ruby/gems/1.8/gems/activerecord-1.11.1/lib/active_record.rb:37
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:21:in `require'
from /usr/local/lib/ruby/site_ruby/1.8/rubygems.rb:182:in `activate'
from /usr/local/lib/ruby/site_ruby/1.8/rubygems.rb:181:in `each'
from /usr/local/lib/ruby/site_ruby/1.8/rubygems.rb:181:in `activate'
from /usr/local/lib/ruby/site_ruby/1.8/rubygems.rb:167:in `activate'
from /usr/local/lib/ruby/site_ruby/1.8/rubygems.rb:166:in `each'
from /usr/local/lib/ruby/site_ruby/1.8/rubygems.rb:166:in `activate'
from /usr/local/lib/ruby/site_ruby/1.8/rubygems.rb:37:in `require_gem_with_options'
from /usr/local/lib/ruby/site_ruby/1.8/rubygems.rb:31:in `require_gem'
from /usr/local/bin/rails:17
Pod rootem všechno projde v pohodě, osobně jsem to tipoval na práva, ale všechno vypadá v pohodě - tak nevím. Dělám něco úplně špatně? Dík za každou odpověď a hezké léto :-)
~/public_html/test$ rails .
/usr/local/lib/ruby/gems/1.8/gems/activesupport-1.1.1/lib/active_support/dependencies.rb:186:in `const_missing': uninitialized constant ActiveRecordError (NameError)
from /usr/local/lib/ruby/gems/1.8/gems/activerecord-1.11.1/lib/active_record/validations.rb:2
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:21:in `require'
from /usr/local/lib/ruby/gems/1.8/gems/activesupport-1.1.1/lib/active_support/dependencies.rb:200:in `require'
from /usr/local/lib/ruby/gems/1.8/gems/activerecord-1.11.1/lib/active_record.rb:37
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:21:in `require'
from /usr/local/lib/ruby/site_ruby/1.8/rubygems.rb:182:in `activate'
from /usr/local/lib/ruby/site_ruby/1.8/rubygems.rb:181:in `each'
from /usr/local/lib/ruby/site_ruby/1.8/rubygems.rb:181:in `activate'
from /usr/local/lib/ruby/site_ruby/1.8/rubygems.rb:167:in `activate'
from /usr/local/lib/ruby/site_ruby/1.8/rubygems.rb:166:in `each'
from /usr/local/lib/ruby/site_ruby/1.8/rubygems.rb:166:in `activate'
from /usr/local/lib/ruby/site_ruby/1.8/rubygems.rb:37:in `require_gem_with_options'
from /usr/local/lib/ruby/site_ruby/1.8/rubygems.rb:31:in `require_gem'
from /usr/local/bin/rails:17
Pod rootem všechno projde v pohodě, osobně jsem to tipoval na práva, ale všechno vypadá v pohodě - tak nevím. Dělám něco úplně špatně? Dík za každou odpověď a hezké léto :-)
Ondřej Tůma (neregistrovaný)
15. 7. 2005 17:44
Nový
me spis desi python
celé vlákno
Tedy v perlu zatim moc neprogramuji - neb co potrebuji vetsinou napisu uz v shellu, ale jinak jako back-end bych sel rozhodne do perlu - byt se zatim ucim. Nejvice se mi na perlu libi prave ten podobny pristup jako je v c(++). Dalsi a hodne silnym plusem je rozhodne rozsireni - snad vsechny mozne knihovny co jen znam pokud maji zastoupeni ve scriptovacim jazyce - tak je to perl. Na web zatim porad php - ono je to na to proste stavěné ;)
Ale co me děsí víc je python - tedy sem znám svým přístupem k pythonu. Prostě v něm musím programovat v práci a fakt mi nesedí. Ale bohužel, pokud bych chtěl dělat nějaká udělátka pro nejrůznější programy - jako automatické generování, pluginy apod. obávám se že mi zbývá jedině python. Jmenuji třeba jen: gnumeric, k3d, planner. Což mě příde jako škoda.
Ale co me děsí víc je python - tedy sem znám svým přístupem k pythonu. Prostě v něm musím programovat v práci a fakt mi nesedí. Ale bohužel, pokud bych chtěl dělat nějaká udělátka pro nejrůznější programy - jako automatické generování, pluginy apod. obávám se že mi zbývá jedině python. Jmenuji třeba jen: gnumeric, k3d, planner. Což mě příde jako škoda.
15. 7. 2005 18:33
Nový
Re: me spis desi python
celé vlákno
ad rozsireni:
pro Perl se rozsireni pisou naprosti priserne, jeste ze existuje SWIG, ktery alespon cast prace udela za me.
pro Ruby to neni vubec ke srovnani, to je radost psat!
Kouknete na tento clanek: http://www.onlamp.com/pub/a/onlamp/2004/11/18/extending_ruby.html, ten mi mluvi z duse. Mmch: ta rozsireni se daji i cist!
Je pravda, ze so se tyce ruznych knihoven, vede Perl na cele care, ale s tim, jak se snadno wrappery Ruby pisi a jak rychle jich pribyva se neni treba bat, ze by s nimi byl v Ruby problem.
ad Python: taky mi nesedl, i kdyz si myslim, ze neni vubec spatny. Jsem rad, ze me kolega presvedcil zkusit Ruby, zkuste to taky, treba vam sedne lepe.
pro Perl se rozsireni pisou naprosti priserne, jeste ze existuje SWIG, ktery alespon cast prace udela za me.
pro Ruby to neni vubec ke srovnani, to je radost psat!
Kouknete na tento clanek: http://www.onlamp.com/pub/a/onlamp/2004/11/18/extending_ruby.html, ten mi mluvi z duse. Mmch: ta rozsireni se daji i cist!
Je pravda, ze so se tyce ruznych knihoven, vede Perl na cele care, ale s tim, jak se snadno wrappery Ruby pisi a jak rychle jich pribyva se neni treba bat, ze by s nimi byl v Ruby problem.
ad Python: taky mi nesedl, i kdyz si myslim, ze neni vubec spatny. Jsem rad, ze me kolega presvedcil zkusit Ruby, zkuste to taky, treba vam sedne lepe.

