Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Witam
Mam pytanko do doświadczonych użytkowników Perla.
Często słyszy się od doświadczonych administratorów, iż Perl to podstawa, Perl, nic tylko Perl. Nie jestem początkującym w programowaniu. Wydaje mi się, że te obstawanie za Perlem jest wynikiem tego, iż istnieje on najdłużej i tak już się ludzie "wychowali". Z tego co wiem, to Perl nie ma możliwości, których nie miałby Python. Ktoś powie: ma wbudowane wyrażenia regularne, Python ma bibliotekę i nie tylko on.
Wydaje mi się, że jeżeli ktoś dopiero teraz ma zaczynać naukę takiego języka, to Perl wcale nie jest najlepszym wyborem. Rozumiem osoby, które nauczyły się 5-10 lat temu Perla i nie mają powodu uczyć się Pythona.
Pytam bo chcę kupić sobie książkę i dlatego, że na jednej z rozmów o pracę pytali mnie o Perla. Jak powiedziałem, że używam Pythona to głową "szef" kręcił. Podejrzewam, że chodziło mu o to, że oni mają już w tym perlu stworzone skrypty itd.... a nie o to, że w Pythonie się nie da albo będzie to trwało dwa razy dłużej.
Jak już mówiłem nie jestem początkującym w programowaniu i wiem, że najlepszy język to ten, który się najlepiej zna. Nie raz mnie ktoś zagiął używając "gorszego" języka, bo lepiej go znał niż ja C/C++ i assemblera włącznie.
[b]Tak więc co takiego ma Perl czego nie ma Python oprócz swoich żołnierzy i religii?[/b] :)
Offline
Kiedyś tez byłam wyznawcą perl'a, ale to się zmieniło bo po prostu "czegoś" mi zaczęło brakować w tym języku i obiektowo tak średnio się w nim pisało.
Kilka ludzików z naszego kanału ircowego zaczęło pisać w pythonie jakiś czas temu o to myślę że się też przesiądę ok zaczęłam czytać dokumentacje i dziabać jakieś tam drobne "skrypciki" bo trudno to nazwać programami na samym początku to dość dużo rzucałam kurwami i tworzeniu czegokolwiek ale po czasie człowiek przywyknie i do takich zastosowań (zabawki takie po 200-300 linii kodu spokojnie mi starcza)
Co do tej wypowiedzi to chyba masz racje ja z sieciami i linuxem tak bardziej na poważnie mam do czynienia od 2002 roku i wtedy tredy był właśnie peryl :]
Python ma tą zaletę że jest dużo bibliotek czasami aż trudno się na jakąś zdecydować :] i oczywiście świetną dokumentacje na stronie projektu nawet jakieś polskie portale gdzieś widziałam poświęcone tematowi :]
Jeśli chodzi o prace to w zależności do jakiej firmy startujesz i co miałbyś tam robić bo czasami jest tak że tworząc jakiś projekt stosuje się różne rozwiązania pisane w różnych językach więc żądana jest taka że trzeba "sprzedać" swoje umiejętności jak najlepiej i przekonać do siebie przyszłych pracodawców
Offline
Jeżeli chodzi o tą pracę, to w kontekście dla administratora sieci, nie programisty. Do automatyzacji zadań. Używałem już Pythona 4 lata temu i spodobał mi się ale w każdej książce jaką mam o Uniksach tylko Perl i Perl...
Ja się wychowałem na C++ i dla mnie używanie tych wszystkich znaków przed wszystkim, nawet funkcją jest chore. AWK tego nawet nie ma.
Chciałem się przekonać, czy dobrze myślę.
Lepiej dobrze znać Pythona niż słabo Perla.
Dzięki za wypowiedz.
Offline
wg mnie tak "Lepiej dobrze znać Pythona niż słabo Perla."
Ja też wole pisać w C++ ale czasami jest to męczące np obsługa snmp
Co do skryptów do automatyzacji pracy przeważnie nie są one powiązane ewentualnie luźno powiązane ze sobą więc tworzenie własnych rozwiązań w pythonie nie powinno nikomu przeszkadzać :]
Offline
Ja to mam jakiś uraz do języków obiektowych ;). Perla lubię za to, że nie ma w nim jedynej słusznej drogi i można osiągnąć rozwiązanie na wiele sposbów. Czy jest on dobrym wyborem dla początkującego - polemizowałbym, chociaż ma świetną dokumentację to trochę bałaganiarski język.
Swoją drogę kiedyś gdzieś przeczytałem, że pewne programy binarne zostały zastąpione skryptami Perla, gdyż te drugie wykonują się szybciej (w dystrybucji Debian oczywiście ;) ), tak apropos "potęgi" Perla.
Offline
Ale w Pythonie nie trzeba wcale obiektowo programować, to, że wszystko ma swoje właściwości i metody nie znaczy, że musisz z nich korzystać.
Widziałem statystyki, np. dla frameworka do filtrowania pakietów inline gdzie Perl jest w tym szybszy ale binarne, ciekawe w czym były napisane.
Perl ma tą przewagę nad Pythonem, że ma więcej lat i "doświadczenia" ale z czasem i Python tego nabiera. Obecnie jest ciężko z książką do Perla, natomiast Python to jak hit.
Offline
Na początek naprostowanie kilku głupot:
[quote=grzesiek]Wydaje mi się, że jeżeli ktoś dopiero teraz ma zaczynać naukę takiego języka, to Perl wcale nie jest najlepszym wyborem. Rozumiem osoby, które nauczyły się 5-10 lat temu Perla i nie mają powodu uczyć się Pythona.[/quote]
Dyskusję wprowadzasz na tory „doświadczonych użytkowników” oraz „zawodowej (płatnej) administracji systemami”, więc wysuwanie argumentu o tym że nie jest najlepszym wyborem do nauki pierwszego języka interpretowanego jest nie na miejscu. Jeśli ktoś stara się o posadę administratora to już dawno poznał przynajmniej jeden język interpretowany, a zapewne kilka. I nauka kolejnego będzie dla niego o wiele łatwiejsza niż dla kogoś kto z programowaniem ma wspólnego mało lub nic.
[quote=grzesiek][b]Tak więc co takiego ma Perl czego nie ma Python oprócz swoich żołnierzy i religii?[/b] :)[/quote]
Każdy język programowania ma fanatyków świata poza nim nie widzących. perl nie jest tutaj wyjątkiem, python zresztą też nie.
[quote=grzesiek]Lepiej dobrze znać Pythona niż słabo Perla.[/quote]
To zdanie jest zawsze prawdziwe dla praktycznie dowolnych porównywalnych czynności. Oczywiście że lepiej dobrze znać pythona niż słabo perl-a, ale tak samo lepiej dobrze znać perl-a niż słabo pythona. Lepiej dobrze znać Windowsa niż słabo Linuksa. Lepiej umieć dobrze ugotować makaron niż słabo pieczeń.
Widzę że to samo pytanie wysłałeś na p.c.l.p. I tam już Ci odpowiedziano — największa potęga perl-a tkwi w one-linerach, które mogą wykonywać nawet dość zaawansowane zadania.
Poza tym potęga perl-a tkwi w tym, że w trakcie rozmowy o pracę pytano Cię o perl-a właśnie. (Notabene to dziwne że wymogiem dla nich była znajomość perl-a, a mimo to w ogłoszeniu nie zastrzegli sobie że poszukują tylko osób go znających.)
Poza tym nie bierzesz pod uwagę np. sprawności w wykonywaniu bardzo dużej liczby operacji. python może ma tak samo dobry silnik do wyrażeń regularnych, ale jeśli wykorzystujesz je do np. filtrowania pakietów na serwerze z rurką 1 Gbit, to nie wystarczy żeby dany język robił to dobrze, musi jeszcze robić to bardzo szybko. I tutaj np. python może się dławić, w przeciwieństwie do perl-a (podkreślam: [b]może[/b]. Osobiście nie robiłem żadnych testów, chodzi mi tylko o zobrazowanie pewnych potencjalnych sytuacji).
Generalnie: próbujesz zabsolutyzować dyskusję, co nie ma sensu. Obiektywnie rzecz biorąc żaden język programowania nie jest lepszy od innego (powiedzmy że wykluczając ezoteryczne). Ale pewne języki dużo lepiej niż inne radzą sobie w pewnych specyficznych sytuacjach. I zawsze musisz je wybierać z punktu widzenia tych sytuacji właśnie.
Offline
W Pythonie równie dobrze można tworzyć one-linery. Kto wie czy nie potężniejsze. :)
Zresztą te one-linery to tylko zrobienie kodu bardziej nieczytelnym w większości przypadków.
Offline
Perl jest fajny szybki i magiczny + to co powiedział Minio, ale...
Python jest mniej magiczny, umie w zasadzie to samo i jest o niebo czytelniejszy.. to moje 0.03PLN
Dawniej używałem perla, teraz wszystkie nowe programy piszę w pythonie.
Mimo to lubię czasem zajrzeć w jakiś perlowy spagetti-kod :D
Ostatnio edytowany przez zlyZwierz (2010-11-17 23:17:27)
Offline
[b]czadman[/b]: http://groups.google.com/group/pl.comp.lang.perl/msg/8e2f4479fc9a20bf? ([url=http://groups.google.com/group/pl.comp.lang.perl/browse_frm/thread/b7a672be4c32c9fa]cały wątek[/url]).
(minusy prowadzenia dyskusji w dwóch czy więcej miejscach.)
Co do czytelności: w każdym języku programowania można napisać nieczytelny kod. W perl-u może jest to łatwiejsze (bo pozwala na bardzo dużo), ale nie jest wadą języka że komuś brak samodyscypliny i pisze coś czego sam za kilka miesięcy nie będzie potrafił zrozumieć.
Offline
Na szczęście jestem zdyscyplinowany :)
Może to tylko moje subiektywne odczucie, ale po przepisaniu wieeelu moich skryptów z perla na pythona okazało się, że są o połowę krótsze, dodatkowo robią dwa razy więcej (zazwyczaj dopisywałem pare ficzerów) i przy okazji są o niebo czytelniejsze.
Offline
A ja myślę, że siłą perla jest [url=http://search.cpan.org/]CPAN[/url], i moduły praktycznie do wszystkiego, lepsze czy gorsze, ale przeważnie jakoś działają.
Np moduł do mBanku, do ING, Net::Gadu, Ebay; do Exela, Accesa.
Do tego tony gotowych skryptów.
Praktycznie ciężko tam czegoś nie znaleźć.
Z pythonem czy C++ już tak różowo nie jest.
A czasami coś trzeba zrobić szybko, bez szukania przez tydzień klas i bibliotek.
Offline
Przykłady czytelnego kodu Pythona... ;) :
http://www.c2.com/cgi/wiki?ObfuscatedPython
http://www.p-nand-q.com/python/obfuscated_python.html
Ciężko też nie znaleźć czegoś czego by już w Pythonie nie było, ale to nie jest argument wpływający na jakość języka.
Offline
Pozwolicie że podepnę się pod temat choć z nieco innym pytaniem - czemu w ogóle maja służyć języki skryptowe? Dla ludzi siedzących w "interesie" zapewne pytanie banalne - ale ja jakoś nie mogę uwierzyć w zalety tego rozwiązania. Np na stronie Pythona, chwalą się że "stworzenie aplikacji zajmuje 10 razy mniej czasu niż w C++", no fajnie - tylko co to znaczy? Że w jakiś magiczny sposób Python skraca długość składni do pętli, switchy czy innych operacji warunkowych? Czy w jakiś magiczny sposób można pisać bardzo mało, zarazem bardzo czytelnego kodu w tym (czy innych interpretowanych) językach??
Wytłumaczcie to, bardzo Was proszę.
Offline
http://www.dmh2000.com/cjpr/cmpframe.html
Offline
[quote=Minio]Na początek naprostowanie kilku głupot:
[quote=grzesiek]Wydaje mi się, że jeżeli ktoś dopiero teraz ma zaczynać naukę takiego języka, to Perl wcale nie jest najlepszym wyborem. Rozumiem osoby, które nauczyły się 5-10 lat temu Perla i nie mają powodu uczyć się Pythona.[/quote]
Dyskusję wprowadzasz na tory „doświadczonych użytkowników” oraz „zawodowej (płatnej) administracji systemami”, więc wysuwanie argumentu o tym że nie jest najlepszym wyborem do nauki pierwszego języka interpretowanego jest nie na miejscu. Jeśli ktoś stara się o posadę administratora to już dawno poznał przynajmniej jeden język interpretowany, a zapewne kilka. I nauka kolejnego będzie dla niego o wiele łatwiejsza niż dla kogoś kto z programowaniem ma wspólnego mało lub nic.[/quote]
I to chciałeś mi powiedzieć, sam głupoty piszesz i nie czytasz dokładnie.
Oczywiście poznałem twoją wypowiedz na tej grupie - była równie chamska jak tu hehe
Ostatnio edytowany przez grzesiek (2010-11-18 18:47:45)
Offline
[quote=grzesiek]I to chciałeś mi powiedzieć, sam głupoty piszesz i nie czytasz dokładnie.[/quote]
Może jakieś przykłady? Argumenty? Cytaty? Nie?
[quote=grzesiek]Oczywiście poznałem twoją wypowiedz na tej grupie - była równie chamska jak tu hehe[/quote]
Myślę że nie, ponieważ na p.c.l.p. odpowiadałem tylko w gałęzi dotyczącej wspomnianego przez Szymona memu, i żadnego z moich listów nie posądziłbym o chamskość. Myślę że pomyliłeś mnie z 0xF albo Stachem Klekotem (który rzeczywiście wypowiada się w dość agresywny sposób, ale jednocześnie jest najwyższej klasy specjalistą).
Offline
Przeczytaj moje pytanie, nie pytam o wybór "pierwszego języka interpretowanego", nie jest to mój pierwszy język a tym bardziej interpreter.
Co do twoich uwag "głupot" o staranie się o posadę to tak się składa, że na rozmowę zostałem zaproszony bo bardzo dobrze zdałem test, po nim była rozmowa itd...
Oczywiście że lepiej dobrze znać pythona niż słabo perl-a, ale tak samo lepiej dobrze znać perl-a niż słabo pythona. Lepiej dobrze znać Windowsa niż słabo Linuksa. Lepiej umieć dobrze ugotować makaron niż słabo pieczeń.[/quote]
ta ta
(lepiej dobrze znać pythona niż słabo perla) == (lepiej dobrze znać perl-a niż słabo Pythona) == (jeżeli znasz dobrze Pythona to tak jak byś znał dobrze Perla)
A teraz pytanie ma sens?
Pomyliłem się, to nie Ty tam na grupie pisałeś ale to nie zmienia faktu, że twoje uwagi co do mojego pytania "głupiego" do niczego mi nie są potrzebne. Zdziwiony jestem jak mało tam konkretów padło.
Offline
Python jest sexi, to tyle ;]
Offline
A kobiety z Pythonem na szyi dopiero... :)
Offline
a ja wam mówię: bash :P
Offline
[quote=grzesiek]
Oczywiście że lepiej dobrze znać pythona niż słabo perl-a, ale tak samo lepiej dobrze znać perl-a niż słabo pythona. Lepiej dobrze znać Windowsa niż słabo Linuksa. Lepiej umieć dobrze ugotować makaron niż słabo pieczeń.[/quote]
ta ta
(lepiej dobrze znać pythona niż słabo perla) == (lepiej dobrze znać perl-a niż słabo Pythona) == (jeżeli znasz dobrze Pythona to tak jak byś znał dobrze Perla)[/quote]
Prawie tak. Jeśli znasz dobrze Pythona to [b]mniej-więcej[/b] tak jakbyś znał dobrze perl-a. Jesteś w stanie poradzić sobie z podobnym spektrum problemów, chociaż odmiennymi narzędziami. Do tego dochodzi subiektywnie pojmowana wygoda, czas poświęcony na pisanie programu i czas w którym ten program będzie wykonywał określone zadanie. Wszystkie te czynniki są względne i zależą od szeregu innych zmiennych. Nie sposób dalej porównywać tych języków w oderwaniu od tychże zmiennych.
[quote=grzesiek]A teraz pytanie ma sens?[/quote]
A co właściwie się zmieniło?
[quote=grzesiek]Pomyliłem się, to nie Ty tam na grupie pisałeś ale to nie zmienia faktu, że twoje uwagi co do mojego pytania "głupiego" do niczego mi nie są potrzebne.[/quote]
Tobie żadne odpowiedzi nie są potrzebne, bo oczekujesz tylko utwierdzenia się w swoim przekonaniu. Widać to po tym, że nie podejmujesz bardziej merytorycznych wątków oraz że cały czas próbujesz te języki porównywać w oderwaniu od konkretnych, rzeczywistych sytuacji.
[quote=grzesiek]Zdziwiony jestem jak mało tam konkretów padło.[/quote]
A teraz w drugą stronę: w czym Python jest lepszy od perl-a?
Podano Ci konkrety: perl zazwyczaj bardziej nadaje się do one-linerów. perl ma centralne, bardzo bogate repozytorium pakietów z własnym menedżerem pakietów. No i oczywiście perl lepiej się nadaje do pewnych zadań, ale jednocześnie python lepiej się nadaje do innych.
To ile i [b]jakie[/b] są przewagi perl-a nad pythonem to jedno. To czy te argumenty Cię przekonują to drugie.
Spinnen Essen: [url=http://fluxboxpl.org/portal/]FluxboxPL[/url] [url=http://przepis-na-lo.pl/]Przepis na LibreOffice[/url]
Offline
[quote=Minio]Prawie tak. Jeśli znasz dobrze Pythona to [b]mniej-więcej[/b] tak jakbyś znał dobrze perl-a.[/quote]
Chyba mniej niż więcej. Tak można dojść, do tego że się zna każdy język "mniej-więcej".
Moglibyście już przestać dyskutować, to tak jakby się kłócić co jest lepsze country czy disco-polo? Jak zwykle co kto lubi, komu wygodnie, zależnie od wymagań i celów. Tyle, nie ma się co spierać.
Offline
Time (s) | Query |
---|---|
0.00016 | SET CHARSET latin2 |
0.00004 | SET NAMES latin2 |
0.00125 | SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='18.227.190.231' WHERE u.id=1 |
0.00091 | REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '18.227.190.231', 1732264235) |
0.00061 | SELECT * FROM punbb_online WHERE logged<1732263935 |
0.00046 | SELECT topic_id FROM punbb_posts WHERE id=158775 |
0.00008 | SELECT id FROM punbb_posts WHERE topic_id=17763 ORDER BY posted |
0.00054 | SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=17763 AND t.moved_to IS NULL |
0.00005 | SELECT search_for, replace_with FROM punbb_censoring |
0.00220 | SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=17763 ORDER BY p.id LIMIT 0,25 |
0.00183 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=17763 |
Total query time: 0.00813 s |