python vs. perl

sziasztok
ugy dontottem, hogy (hobbi) projektemet meg egyszer es utoljara :) hajlando vagyok ujrairni, mert a perlbe kezdek belegabalyodni..
a projektem nem regexp-ekbol all, erre a perl tokeletes volna.. tomboket, socketeket es idozitest kell kezelnie, relative nagy mennyisegben (daemon).
tehat: melyik nyelvet ajanljatok, es miert? engem foleg a sebesseg erdekelne, es szakmai okok.
valaszaitokat varom
ErdosJ

Hozzászólások

neki is alltam mar egy tesztet kesziteni..
elso feladatban mindket scriptnek fel kellett toltenie egy szazezer elemu tombot egytol szazezerig. a perl negy szazad masodperccel gyorsabb volt.

nem gyorsabb. A kulonbseg az, hogy a range egy listat keszit, mig az xrange egy generator. Tehat ha iteralni akarsz rajta "for i in ...." modon, akkor az xrange jobb mert nem foglal (annyi) memoriat, es gyorsabb. De mivel te listat akarsz kesziteni, ezert semmi ertelme xrange-t hasznalnod.

A perl általában gyorsabb, de a python sokkal átáthatóbb. Ha az ember nem áll ellen a kísértésnek könnyen ír perben write only kódot. Nem csoda ha belekavarodtál.
Pythont ajánlom.

Szerintem a Perl is olyan, mint a legtöbb nyelv, ami nem köti meg nagyon a kezed: lehet benne szép, meg spagettikódot is írni. Ha Perlben kódolsz, az alábbi két szempontot tartsd szem előtt:
- mindig figyeld a CPAN-t, hátha valaki már megírta azt, amire szükséged van (pl. ha szervert írsz, származtass a Net::Server-ből)
- mindig használj névtereket, még akkor is, ha nem OO kódot írsz (és akkor már a csomagokat rakd külön fájlokba)
Így azért lehet átlátható szkriptet írni, csak nyilván nagy a kísértés, hogy az ember gányoljon...

Én szerintem meg nagyon nehezen lehet benne szép és átlátható kódot irni. Pont azért, mert magától a sok nyelvi hieroglifa miatt kb. 100 sor után átláthatatlan lesz bármilyen Perlben irt kód. Ettől még nagyon hatékony programozási nyelv marad. A Python-ban viszont alapból szinte csak tiszta kódot irhatsz a tagoltság miatt. Eleve úgy tervezték a Python nyelvet, hogy egyszerű és hatékony és átlátható legyen. A Google-nál nem véletlen, hogy majd' teljesen kiirtották a Perlt és az új kódok nagy részét Python-ban irják. Ajánlom olvasásra a http://www.pythonology.net/success&story=esr oldalt, ahol nagy múltú open-source guru Eric S. Raymond ir a saját tapasztalatairól.

Olyan nincs hogy "kis gyakorlattal a perl jól olvasható". Akármilyen gyakorlatod van, a nyelvnek vannak korlátai. Egy idő után azok a tünetek fognak jelentkezni amiket irtam. Ajánlom, hogy tanulmányozd kicsit jobban a témát. Olyan véleményekre vagyok kiváncsi, akik mindkét nyelvben tudnak programozni és több éves tapasztalattal rendelkeznek.

Én is a Pythonra szavazok...
Nem vagyok egy nagy Perl guru, de nehéz átlátható kódot írni (csábít a sokféle lehetőség a "rövid" kódokra - ráadásul mindent lehet többféleképp is írni, ami szintén nehezíti az olvashatóságot). Pythonban nehezebb átláthatatlan kódot írni (de lehet!).

Ha számolni akarsz, akkor numpy, scipy, vagy épp a spec. ciklusod megírása psyco-ba vagy direkt C-ben megoldás lehet.

http://codespeak.net/pypy/dist/pypy/doc/news.html

Van/lesz benne minden: JIT, Stackless Python, és amit még szeretnél (te írhatod a fordítót :))

Amúgy kis feladatra nem vészes a C modul írása sem. Mondjuk a 3 sornyi for ciklusom köré kellet 30 sor sallang a "modulosításhoz", de a gyorsulás 1000-szeres volt.