Co się ludzie tak podniecają Pythonem?

0

Co jest w tym języku takiego super, że teraz jest na to taka faza. Cała masa programów w Pythonie, stron internetowych i ogólnie wszystkiego? Ja tego nie rozumiem. Składnia poprzez wcięcia oraz konieczność publicznego podania self jako argumentu dla metod instancji mnie przeraża.

0

Rozumiem, że analogicznych wcięć w C++ nie stosujesz? Wymuszenie formatowania wydaje się dziwne na początku, z drugiej strony po dziesięciu minutach przestaje się pamiętać, że to konieczność, wszystko robi się podświadomie.

Co jest takiego dobrego? Język jest elastyczny, efektywny, czytelny... Poza tym skryptuje się nim obecnie sporo narzędzi. Właśnie, dzięki za przypomnienie (pośrednio), miałem obadać rozszerzenie dla WinDBG dodające eval Pythona.

Co do self/this/wtf to nie widzę zbytniego problemu, wolę jawne symbole od magicznych słów kluczowych.

0

Ogolnie to szybko sie w nim kod pisze, jest popularny, ma duze wsparcie i niczego mu nie brakuje. Jest po prostu dobrze przemyslany.

Kiedys pisalem male skrypty w perlu i w ogole mi ten jezyk nie lezal podobnie jak php mi nie lezy, a niczym perl mnie nie zaskoczyl w porownaniu do C, co moglo by spowodowac zebym zaczal sie zaglebiac w ten jezyk. Natomiast python sie znacznie wyroznia i pozwala na osiagniecie wielu rzeczy w krotkim czasie.

Nie masz tablic w pythonie, ale masz listy. Kazda lista jest obiektem, wiec posiada metody. W przypadku listy beda to miedzy innymi takie metody jak sort, reverse, index, append, pop. Juz to pozwala na zrobienie czegos takiego:

lista = range(10)
lista.reverse

W dwoch linijkach kodu mam 'tablice', a wlasciwie liste wypelniona liczbami od 9 do 0. Idac dalej w tym kierunku moge sobie uzcy listy jako liste, kolejke, czy stos bez pisania zadnego zbednego kodu. Moge sobie ja posortowac od razu.

Drugim przykladem niech bedzie mozliwosc korzystania z typow jezyka C, ze struktur i dll'ek, czy biblioteki libc za pomoca modulu ctypes.

Jako trzeci przyklad dam takie cos:
conn, addr = sock.accept()
Accept zwraca mi gniazdo oraz adres nowego polaczenia, a do tego python pozwala to wszystko przypisac w ten sposob.

Dochodza jeszcze funkcje lambda, slowniki, krotki oraz mozliwosc importowania funkcji z innego skryptu.
O obsludze wyjatkow, obiektach i innych standardach juz nie mowie, mimo tego ze to jezyk skryptowy bardziej.

W kazdym razie polecam go, mimo tego ze jest jezykiem interpretowanym, co sprawia ze jest wolniejszy od tych kompilowanych.

0

*lista.reverse()

0

Ja osobiście preferuję Ruby, gdzie nie jest tak duży nacisk na wcięcia kładziony co często się przydaje jak potrzebujesz domknięć.
Tam wszystko co masz jest obiektem nawet nil, false czy true, więc z tą listą to na mnie wrażenia nie zrobiłeś. Co do Ruby to można to zrobić w 1 linijce:

tab = (0..9).to_a.reverse

Mi chodzi tak naprawdę jaka jest jego wyższość nad innymi skryptowymi. Jakoś dla Pythona nie znalazłem narzędzia takiego jak RubyGems.

0

Perl - jedyny język, który sprawia że kod w nim pisany jest tak samo czytelny przed, jak i po szyfrowaniu AESem [rotfl]
Mnie też kręci Python i chciałbym żeby w PHP te głupoty które niektórzy piszą się nie parsowały, a wszystko było tak posortowane i ustandaryzowane jak w Py...
A jak zamierzasz winterfresh obfuskować kod jednocześnie pisząc go, to faktycznie - powodzenia z ruby. Ja też se moge napisać:

$pierdolenie[1] = array(
    'Kolezanki i koledzy',
    'Z drugiej strony',
    'Podobnie',
    'Nie zapominajmy jednak, ze',
    'W ten sposob',
    'Praktyka dnia codziennego dowodzi, ze',
    'Wagi i znaczenia tych problemow nie trzeba szczerzej udowadniac, poniewaz',
    'Roznorakie i bogate doswiadczenie',
    'Troska organizacji, a szczegolnie',
    'Wyzsze zalozenia ideowe, a szczegolnie'
);

I potem wyciągać z tego linijkę w ten sposób:

$linijka = $pierdolenie[1][rand(0, count($pierdolenie[1])-1)];

Tylko lepiej coś rozpisać w 4 linijkach i spowodować że osoba przeglądająca kod, czy nawet my to od razu zrozumiemy spoglądając na kod po kilku miesiącach.

$min = 0;
$max = count($pierdolenie[1])-1;
$los = rand($min, $max);
$linijka = $pierdolenie[1][$los];

Odnosząc się do zasady DRY i KISS którą nawet w podpisie masz...

0

Hm, nie ma nic gemopodobnego? A easy_install? Potrafi sam dociągać i instalować paczki z sieci.

W Pythonie tez można to zrobić w jednej linijce, po prostu t0m_k lubi używać rzeczy typowo imperatywnych...

tab = reversed(range(10))
# albo:
tab = range(10)[::-1] # bardziej 'hakiersko'

Sam byłem kiedyś fanem Ruby, po początkowym zachwycie wywaliłem w cholerę, przewag nad Pythonem praktycznie brak, jego użycie sprowadza się głównie do Railsów i Metasploita...

0

O prostytutka kod mi ocenzurowało [rotfl]

// cenzura na 4p jest niezawodna :> - deus

0
winerfresh napisał(a)

Tam wszystko co masz jest obiektem nawet nil, false czy true, więc z tą listą to na mnie wrażenia nie zrobiłeś.

W Pythonie tez wszystko jest obiektem. Wrazenia na Tobie nie chcialem zrobic, tylko pokazalem Ci kilka mozliwosci, ktore python daje.

Co do odpowiednika dla rubygems w pythonie to nic Ci nie doradze, bo i tego nie znam i rubiego nie znam.

0

http://lotrepls.appspot.com/

/switch scala

println((0 to 9).reverse)

1 użytkowników online, w tym zalogowanych: 0, gości: 1