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.
Tak więc co takiego ma Perl czego nie ma Python oprócz swoich żołnierzy i religii? :)
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:
grzesiek napisał(-a):
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.
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.
grzesiek napisał(-a):
Tak więc co takiego ma Perl czego nie ma Python oprócz swoich żołnierzy i religii? :)
Każdy język programowania ma fanatyków świata poza nim nie widzących. perl nie jest tutaj wyjątkiem, python zresztą też nie.
grzesiek napisał(-a):
Lepiej dobrze znać Pythona niż słabo Perla.
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: może. 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
czadman: http://groups.google.com/group/pl.comp.lang.perl/msg/8e2f4479fc9a20bf? (cały wątek).
(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 CPAN, 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
Minio napisał(-a):
Na początek naprostowanie kilku głupot:
grzesiek napisał(-a):
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.
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.
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
grzesiek napisał(-a):
I to chciałeś mi powiedzieć, sam głupoty piszesz i nie czytasz dokładnie.
Może jakieś przykłady? Argumenty? Cytaty? Nie?
grzesiek napisał(-a):
Oczywiście poznałem twoją wypowiedz na tej grupie - była równie chamska jak tu hehe
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ń.
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 ja wam mówię: bash :P
Offline
grzesiek napisał(-a):
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ń.
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)
Prawie tak. Jeśli znasz dobrze Pythona to mniej-więcej 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.
grzesiek napisał(-a):
A teraz pytanie ma sens?
A co właściwie się zmieniło?
grzesiek napisał(-a):
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.
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.
grzesiek napisał(-a):
Zdziwiony jestem jak mało tam konkretów padło.
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 jakie są przewagi perl-a nad pythonem to jedno. To czy te argumenty Cię przekonują to drugie.
Offline
Minio napisał(-a):
Prawie tak. Jeśli znasz dobrze Pythona to mniej-więcej tak jakbyś znał dobrze perl-a.
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