-
komplikacja w pythonie
Moja przygoda z programowaniem zaczeła sie od C++
jednak tak sie stało że nie za długo sie go pouczyłem bo zetknełem się z pythonem. Przeczytałem jakąś tam dokumentację czy coś takiego i stwierdziłem że język ten jest o mniebo prostszy :>
siciągnełem komplikator (przynajmniej wydaje mi sie że to jest komolikator)
uruchamiam i widze >>>:confused: :confused: :confused:
co to do cholery jest ten tryb interaktywny?
czy ktoś może mi powiedzieć jak tutaj np. napisać kod w zwykłym pliku a potem go komplikować?
mam nadzieje że nie wyszłem jeszcze na totalnego debila i prosze o pomoc ;)
-
O ile pamietam to pythona sie nie kompiluje... Jest on jak Perl - jezyk skryptowy, wymaga interpretera ktory go wykonuje. Jesli chcesz otrzymac binarke to musisz poszukac glebiej - pewnie sa jakies narzedzia do tego ale domyslnie nie jest to jezyk kompilowany do wersji kodu binarnego.
Uruchamias program w pythonie to laduje sie do pamieci interpreter ktory czyta kod, interpretuje i wykonuje.
-
eee... to beznadzieja
wracam do C++:cool:
-
C++ jest beznadzieja w pewnych zastosowaniach i na prawde docenisz python'a czy perl'a :) Wiem co mowie... zanim kolega napisze w C++ pierwszy ekran kodu (glownie includy) to ja juz mam dzialajace rozwiazania :) Perl powered!
-
to jak wygląda po kolei wszystko? (pisanie kodu, jak to sie uruchamia itd.) bo jestem nieco zielony w tym temacie...
-
W duzym skrocie... Perl powstal o ile pamietam w 1972 roku i od tego czasu napedza mase systemow, ktore tak na prawde przetwarzaja ogromne ilosci danych (gieldy papierow wartosciowych, banki, systemy rozliczania i raportowania). Python jest znacznie mlodszym rozwiazaniem i dzieki temu uniknal pewnych moze nie bledow ale reliktow przeszlosci ktore Perl nadal zachowuje.
Perl jest jezykiem w ktorym mozna pisac liniowo, strukturalnie albo obiektowo - jak kto woli. Te same instrukcje mozna zapisac na kilka sposobow - nie ma nalozonej ciasnej formy, ze to ma byc robione tak czy tak - TIMTOWTDI (there is more than one way to do it). Python jest czysto obiektowy z tego co wiem - jest to i wada i zaleta. Wada, bo nie do wszystkiego potrzeba zaprzegac obiekty, zaleta - bo wszystko jest standardowe i wzglednie jednolite.
Perl jest jezykiem bardzo przenosnym i jego porty sa dostepne na roznych platformach sprzetowych - kod napisany (jesli sie go poprawnie napisze) na Windows bedzie dzialal na Linuxie, BSD, Solarisie, AIX, DOS'ie... a nawet urzadzeniach typu PSION (notatniki elektroniczne - mialem raz serwer WWW i pisalem aplikacje webowe bedac na wakacjach od razu je testujac na wbudowanej przegladarce WWW). Python nie jest jeszcze az tak rozprzestrzeniony ale dobrze sobie radzi.
Uruchamianie programow - to juz inna hisotoria... generalnie Perl'a sie nie kompiluje, to jezyk interpretowany, czyli system na ktorym go uruchamiasz musi miec interpreter. Uruchomienie skryptu to uruchomienie interpretera, ten wczytuje kod, interpretuje, wykonuje... podobnie to wyglada w przypadku Python'a.
Biblioteki - ilosc tych w przypadku Perl'a jest ogromna! Zobacz http://search.cpan.org/ - tam tez masz od razu dokumentacje... Mozna pisac aplikacje sieciowe, serwery, aplikacje klienckie, proste CGI (bo uzywanie Perl'a do CGI to tylko jedno z bardzo wielu zastosowan), systemy przetwarzania rozproszonego, itp itd... za duzo aby to objac ot tak w rok czasu :)
Python - jeszcze nie dotarlem tak daleko... nadal siedze w Perl'u (od 1995 roku... i ciagle sie ucze).
Aktualnie mowimy o Perlu w wersji 5... Jest juz (mozna tak powiedziec ze 'jest') Pelr 6 - ale to zupelnie inna filozofia systemu juz... na inna opowiesc.
Teraz odniesmy jezyki skryptowe jak Perl czy Python (oraz sporo innych) do jezykow kompilowanych takich jak C++/C#. Majac interpreter na danej platformie on odpowiada za kompilacje kodu 'w locie' do takiej postaci ktora da sie uruchomic... Majac aplikacje skompilowna w jakims 'C' jest ona dla konkretnej platformy - procesora, bibliotek, itd... Bardziej przenosny jest wiec jezyk skryptowy. Ma to jednak tez swoj koszt - czas uruchomienia interpretera i kompilacji przy kazdym uruchomieniu programu.
Podsumowujac...
- jesli piszesz kod dla konkretnej platformy (procesor/system/biblioteki) i kod ma byc maly - wez jezyk kompilowany taki jak ktorys z 'C'
- jesli rozmiar albo czas uruchomienia nie jest tak istotny (za to wazny jest czas pracy) to wez to w czym wygodniej Ci bedzie napisac i co lepiej znasz
- jesli masz byc bardzo przenosny i mozesz zaakceptowac ulamki sekund opoznienia na starcie (bo o takich wilkosciach mowimy) to jezyk skryptowy bedzie Twoim wyborem
Aby byla jasnosc - Perl'a mozna tez kompilowac... perlcc, perl2exe (windows/linux - platne/pokazuje reklame na koniec), PAR, ActiveState Perl Dev Kit (ma fajny kompilatorek ale jest platne). Jak to sie ma dla Python'a nie wiem - przyznaje bez bicia.
Osobista rada - dobieraj technologie do problemow a nie problemy do technologii. O perlu moge dluuugo i duzo pisac - siedze w tym od lat i nigdy mnie nie zawiodl ale to nie znaczy ze jest najlepszy do wszystkiego. Jest za to bardzo uniwersalny i dlatego tak bardzo go lubie.
-
a który język byś mi polecił? Pythona czy Perla?
PS Bardzo skrótowo to napisałeś ;) ale musze przyznać że zachęciłeś mnie do spróbowania któregoś z tych języków :)
-
Ja zacząłem naukę perla i bardzo mi się spodobał. Chociaż książka, którą sobie kupiłem jest ciężka do nauki wg mnie.
-
Nie bede udawal ze nie jestem stronniczy bo jestem :D - osobiscie jestem zwolennikiem Perla i mam ku temu powody... Python'a znam pobieznie - dopiero za niego sie zabieram na bardziej zaawansowanym poziomie.
W perl'u mozesz napisac filtry do danych dzialajace strumieniowo i to w jeden linii. Takie rzeczy to na poczekaniu wychodza :)
Co jeszcze pisalem (tak z tego co pamietam na poczekaniu):
- analizatory logow i narzedzia do proaktywnej ochrony systemow (ogolnie sporo w zakresie security aby uproscic sobie zycie jako admin - z natury jestem bardzo leniwy hehe)
- serwer WWW
- sterta klientow WWW
- boty IRC - z obsluga botnetow, filtrow antybluzgowych ktore same sie uczyly, boty robily tez tlumaczenia tekstow na 6 jezykow (cale zdania - jako tlumacz miedzy dwoma kanalami IRC tlumaczac w locie), szukaly w google, itp, itd... masa przyjemnych rzeczy.
- sterowanie komputerami z Windows na poziomie 'merdania myszka' i klikania w rozne buttony na stronach WWW - aby uproscic dzialowi finansowemu reczne odczytywanie raportow ze stron WWW, ktore generowaly sie dosc dlugo - ustawione zadanie i rano mieli pliki na pulpicie
- obsluga sieci akademickiej - od rejestracji, przez nadzor po dynamiczne regulowanie ruchu i firewalli
- serwery aplikacyjne do konkretnych zadan (jedno- i wieloprocesowe)
- sporo innych rzeczy...
Co do ksiazek - polecam 'Perl Programowanie' (po Polsku) fajnie napisana, przystepnie... pozniej 'Perl Receptury' jesli brakuje Ci pomyslow... no i zasoby sieci - CPAN (www.cpan.org z wyszukiwarka search.cpan.org).
Doskonale dziala spolecznosc Perl'a na www.perlmonks.com. Polecam tez http://use.perl.org, pl.comp.lang.perl (od razu mowie zacznij od FAQ - jest swietnie opracowane, mialem tez w tym swoj maly udzial).
Do tego jest masa framework'ow z ktorych mozna korzystac - wystarczy poszukac... no i mozna w Perlu ugryzc wszystko.
Jak chcesz sie pobawic to polecam poznac moduly LWP, WWW::Mechanize, DBI, CGI. Zanim skonczysz czytac bedziesz mial mase pomyslow jak to zastosowac :)
Dobra... to ja wracam do mojego 'non-forking single-threaded non-blocking asynchronous multiplexing tcp socket server' - uhhhh... Nazwa dlugasna ale oddaje w skrocie co mam osiagnac. Bedzie to wlasnie napisane w Perl'u...
EDIT:
Zanim zaczniesz pisac poczytaj perlstyle aby pisac czysty kod - tzn czysty na tyle abys po pol roku potrafil sam zrozumiec co robi... Czasami ludzie robia takie spaghetti, ze po 2 tygodniach nie maja pojecia co robi ich wlasny kod. To najwieksze przeklenstwo TIMTOWTDI - program dziala tak jak dzialal a Ty nie masz pojecia dlaczego... nie wspominajac o tym aby ktos inny kto wezmie ten kod dal rade sie domyslic...
-
Niejaki Katharsis prezentuje kilka sposób kompilacji skryptu Python na plik wykonalny *.exe pod tym adresem:
http://ppcg.eu.org/forum/index.php?topic=12.0
Osobiście polecam Pythona jako język na pierwszy ogień.