Wady
- w porównaniu z językami statycznie typowanymi (C++/pascal/JAVA/C#) koszmarnie powolny
- z powodu wyżej jego zastosowanie w szybkich i wydajnych aplikacjach konsolowych czy desktopowych to jakieś totalne nieporozumienie
- architektura przez wcięcia może też sprawiać problemy
Argumenty o wyższości szybkości tworzenia aplikacji nad ich wydajnością w przypadku aplikacji desktopowych czy konsolowych mnie nie przekonują. Już wolałbym użyć języka kompilowanego, statycznie typowanego. Co do pythona, wkurza mnie jakiś brak kompatybilności wstecznej, bo np. BoaConstructor 0.6.1 uruchamia się bez problemu na py26, natomiast na wersji 2.7 już nie. Podobnie może być z innymi programami. Poza tym trzeba dopasowywać biblioteki do konkretnej wersji pythona bo i z tym mogą być problemy.
Ogólna ocena: pozytywna i moim zdaniem warto się tego języka nauczyć w swojej ścieżce rozwoju. Szybkość tworzenia aplikacji, ze względu na składnię o dynamiczne typowanie może być mocnym argumentem ale ja bym to odniósł raczej do web, bazując na DJANGO, bo jeśli chodzi o aplikacje desktopowe, jeśli ktoś chce zachwalać pythona, proponuję zachować odrobinę pokory.
Rower w porównaniu do motocykla też jest koszmarnie wolny. Ale to nie jest jego wada, to jest jego cecha. W związku z tym do czego innego stosuje się motocykl, a do czego innego rower. Tutaj jest podobnie. Jak chcesz mieć program robiący superszybkie obliczenia to napisz go w Fortranie. A Pythona pozostaw do innych zastosowań.
Natomiast zgadzam się, że tworzenie bloków poprzez wcięcia może sprawiać problemy. Rozsypie się formatowanie tekstu (np. podczas kopiowania) i szlag tafia całą logikę kodu. Większość przykładowych kodów w internecie jest napisana pod wersje 2.x, przez co nie działają z 3.x. Kwestia dopasowania wersji bibliotek do wersji Pythona jest kolejną wkurzającą sprawą, z tym się zgodzę.
Generalnie Python jest taki-sobie. Gdzieś w internecie przeczytałem opinię że jak w dzieciństwie ktoś wolał bawić się klockami Lego, to powinien brać się za Pythona, a jak wolił zabawę plasteliną, to za Rubiego. Coś w tym jest. Ja wolałem plastelinę i faktycznie, Ruby chyba bardziej do mnie przemawia. Dlatego zacząłem od nauki Rubiego, aby za jego pomocą zrozumieć "kanciastego" Pythona.