Przewodnik dla programistów dotyczący zalet i wad języka Python

Python jest rozliczany przez Python Software Foundation jako łatwy do nauczenia się i działający wszędzie. Jest przydatny w wielu typach aplikacji, w tym w tworzeniu stron internetowych, informatyce naukowej i edukacji. Google i Instagram są jednymi z wielu użytkowników Pythona, a język ten dobrze radzi sobie w indeksach popularności.

Ale Python miał swoje problemy, z pytaniami dotyczącymi jego wydajności i dziwactw projektowych. Aby dojść do sedna tego, co jest właściwe - a może nie tak - w Pythonie, redaktor w Large Paul Krill poprosił dygnitarzy ze społeczności Pythona o ich wkład.

Profesjonaliści Pythona

Przeczytaj, używaj z łatwością. „Główną cechą programu w języku Python jest to, że jest łatwy do odczytania” - mówi Pierre Carbonnelle, programista i bloger Pythona, który prowadzi indeks języka PyPL. „Przynosi to korzyści tobie i innym. Pomaga ci jaśniej myśleć podczas pisania programów i pomaga innym, którzy będą utrzymywać lub ulepszać twój program. W obu przypadkach napisanie programu w Pythonie wymaga mniej wysiłku niż jego napisanie w innym języku, takim jak C ++ lub Java ”. Czytelność Pythona ułatwia rozwój oprogramowania open source, dodał Carbonnelle.

Python jest łatwy w użyciu i niezwykle popularny w środowisku akademickim, tworząc dużą pulę talentów, mówi Sumit Chachra, CTO w Tivix, firmie konsultingowej w zakresie oprogramowania, która specjalizuje się w programowaniu Python / Django. Django i Python są wykorzystywane przez Tivix w programowaniu WWW i mobilnym, mówi.

Python to bardzo produktywny sposób pisania kodu, mówi Stephen Deibel z Wingware, który tworzy Wing Python IDE. „Część z tego wynika z prostej składni i czytelności - praktycznie nie ma„ schematu wzorcowego ”. Część z nich pochodzi z bogatej, dobrze zaprojektowanej wbudowanej i standardowej biblioteki oraz dostępności wielu otwartych źródeł oprogramowania innych firm biblioteki i moduły ”. Dodaje, że dzięki łatwości zrozumienia kod jest łatwiejszy w utrzymaniu. 

Python, mówi Chachra, jest dynamicznie wpisywany i elastyczny, a kod jest mniej rozwlekły. Jednak cytuje dynamiczne typowanie jako potencjalny negatyw (patrz poniżej).

Internet rzeczy możliwości. Python może stać się popularny w Internecie rzeczy, ponieważ są na nim oparte nowe platformy, takie jak Raspberry Pi, mówi Carbonnelle. Dokumentacja Raspberry Pi cytuje ten język jako „wspaniały i potężny język programowania, który jest łatwy w użyciu (łatwy do czytania i pisania), a dzięki Raspberry Pi umożliwia połączenie projektu z rzeczywistym światem”.

Korzyści z kodowania asynchronicznego. Python, mówi Deibel, „świetnie nadaje się do pisania kodu asynchronicznego, który zamiast tworzenia wątków wykorzystuje pojedynczą pętlę zdarzeń do pracy w małych jednostkach”. Twierdzi, że kod ten jest często łatwiejszy do napisania i utrzymania bez mylącej rywalizacji o zasoby, zakleszczeń itp. „Generatory Pythona to świetny sposób na przeplatanie wielu pętli przetwarzania w tym podejściu”. 

Podejście wieloparadygmatyczne przewyższa Javę. Podejście programistyczne w Pythonie nie jest tak ograniczone jak w Javie, mówi Carbonnelle. Na przykład, nie musisz tworzyć klasy obiektowej, aby wydrukować 'Hello world' w Pythonie - musisz to zrobić w Javie. W przeciwieństwie do Javy, Python jest wieloparadygmatem i obsługuje OO, proceduralne i funkcjonalne style programowania, mówi. (Java niedawno dodała funkcje funkcjonalne w Javie 8.)

„W Pythonie wszystko jest obiektem” - mówi Brian Curtin, członek zarządu Python Software Foundation i główny współpracownik CPython. „Możliwe jest pisanie aplikacji w Pythonie przy użyciu kilku paradygmatów programowania, ale umożliwia to pisanie bardzo jasnego i zrozumiałego kodu zorientowanego obiektowo”.

Wady Pythona

Szybkość może być problemem. „Ponieważ jest to język interpretowany, często jest wielokrotnie wolniejszy niż języki kompilowane” - mówi Curtin. „Jednak wraca do oddzielenia języka od środowiska wykonawczego. Niektóre testy porównawcze kodu Pythona działającego w ramach PyPy działają szybciej niż odpowiadający im kod w języku C lub inne”.

„Możliwą wadą Pythona jest jego niska prędkość wykonywania” - mówi Carbonnelle. Jednak wiele pakietów Pythona zostało zoptymalizowanych na przestrzeni lat i działa z szybkością C, mówi.

Wydajność, mówi Chachra, „jest wolniejsza w porównaniu ze starszymi językami, takimi jak C / C ++, a nawet nowszymi, takimi jak Go”.

Brak komputerów przenośnych i przeglądarek. „Python jest obecny na wielu platformach serwerowych i stacjonarnych, ale jest słaby w komputerach mobilnych; bardzo niewiele aplikacji na smartfony jest tworzonych w języku Python” - mówi Carbonnelle. „Rzadko występuje również po stronie klienta aplikacji sieci Web”.

Pythona nie ma w przeglądarkach internetowych, zauważa Deibel. - To prawdziwy wstyd. Jest brython, ale nie sądzę, żeby nadawał się do użytku w prawdziwym świecie. Python jest trudny do zabezpieczenia i dlatego nie ma go w przeglądarkach - dodaje. „Wciąż nie ma dobrej bezpiecznej piaskownicy / więzienia dla Pythona i myślę, że jest to zasadniczo niemożliwe dla CPythona (standardowa implementacja). 

Ograniczenia projektowe. Wielbiciele Pythona przytoczyli kilka problemów związanych z projektem języka. Ponieważ język jest wpisywany dynamicznie, wymaga więcej testów i zawiera błędy, które pojawiają się tylko w czasie wykonywania, mówi Chachra.

Tymczasem globalna blokada interpretera języka Python oznacza, że ​​tylko jeden wątek może uzyskać dostęp do wewnętrznych elementów Pythona w danym momencie, mówi Deibel. „W dzisiejszych czasach może to być mniej ważne, ponieważ można tak łatwo odrodzić zadania w celu oddzielenia procesów za pomocą modułu wieloprocesorowego lub zamiast tego napisać kod asynchroniczny”. 

Curtin mówi, że istnieje kilka konwencji dotyczących używania Pythona, ale znaczące białe znaki to taka, która jest narzucana przez interpreter. „Struktura programów w Pythonie musi być spójna, więc tam, gdzie nawiasy lub inne identyfikatory pozwalają użytkownikowi na większą swobodę w innych językach, w Pythonie liczy się wcięcie”.