1) Dobre nawyki programistyczne.
Spośród kilku języków (programowania) które znam i z których korzystam na co dzień, właściwie żaden (z wyjątkiem Pythona) nie narzuca dobrego stylu programowania.
Pewnego razu zaglądnąłem do katalogu z programami, które pisałem gdy uczyłem się programować w C
void menu() { char Sciezka[300]; //sciezka pliku char wybor; int koniec/*konic malej petli*/,Koniec=0;/*koniec duzej petli*/ int i=0;//pomocniczy licznik while(!Koniec) { koniec=0; printf("Twoj wybor: "); scanf("%s",wybor); } } int main(int argc, char* argv[]) { if(argc != 2){ printf("**Brak parametrów**\n"); } else { menu(); return 0; } }Pomyślałem sobie: "Jaka masakra". Wyobrażacie sobie znaleźć błąd w takim kodzie?
Gdybym uczył się programować zaczynając od Pythona, pewnie nie zobaczyłbym teraz takiego bajzlu
(pomijając oczywiście wartość merytoryczną tego kodu ;)
Z drugiej jednak strony programując tylko Pythonie, z pominieciem C nie zrozumiesz jak działają wskaźniki,
ręczna alokacja pamięci (malloc, realloc, calloc, itp.) oraz jej zwalnienie. Najpradopodobniej nigdy
nie spotkasz się też z pojęciem wycieku pamięci, buffer overflow czy nie napotkasz na segmentation fault.
2) Zajebiście czytelny kod.
Zazwyczaj gdy patrze na jakiś fragment kodu napisany w języku Python zazwyczaj wiem co on "robi",
gdy zobaczę na odpowiadający mu fragment w innym języku (np. w Javie) musi upłynąć chwilka czasu zanim skumam co autor "miał na myśli" nawet gdy kod jest poprawnie skomentowany. Ponadto prawie zawsze kod w Pythonie będzie zdecydowanie krótszy (no może z wyjątkiem Rubyego, ale ten ma za to kosmiczną składnie ;)
3) Wydajność
"Python is fast enough for our site and allows us to produce
maintainable features in record times, with a minimum of developers,"
powiedział Cuong Do, Software Architect z YouTube.com.
"Python has been an important part of Google since the beginning,
and remains so as the system grows and evolves. Today dozens of Google
engineers use Python, and we're looking for more people with skills in
this language." powiedział Peter Norvig, director of search quality w Google, Inc.
"Python makes us extremely productive, and makes
maintaining a large and rapidly evolving codebase relatively
simple," powiedział Mark Shuttleworth z Thawte Consulting.
Jakieś pytania?
4) Testowanie
Testy jednostkowe są częścią języka od wersji 2.1 wzwyż.
A ich pisanie jest prawdziwą przyjemnością ;), nie to co w Javie...
5) "Importowanie z przyszłości" :)
"Instrukcja future jest dyrektywą
kompilatora, nakazującą skompilowanie danego modułu z użyciem składni
lub semantyki, która będzie dostępna w określonej przyszłej wersji Pythona"
Fajne, nie ?:) from __future__ import *
6) Przenośność
Kod pythona możesz uruchomić przez interpretator tego języka pod daną platformę lub system,
a w praktyce na Windowsie, Linuxie, Mac'u ...
Swoją drogą zmuszenie kogoś do pisania w C# jest ograniczaniem jego wolności.
A korzystanie z Mono jest jak murowanie nocnika do podłogi ;).
7) Sam wybierasz paradygmat.
Możesz pisać strukturalnie, obiektowo, a nawet funkcyjnie, nie to co w Javie...
żeby wypisać "hello world" na ekran musisz utworzyć obiekt.
no i na koniec:
8) Paradoks Pythona wg. Paula Grahama
"[...]Dlatego właśnie, z braku lepszego terminu, nazwę to Paradoksem Pythona: jeśli przedsiębiorstwo decyduje się na napisanie swojego oprogramowania we względnie ezoterycznym języku, będzie mogło zatrudnić lepszych programistów, ponieważ przyciągnie do siebie wyłącznie tych, którzy byli wystarczająco dobrzy, by się tego języka nauczyć. Określenie tej sprzeczności z punktu widzenia programisty jest nawet lepsze: język programowania, którego najlepiej się nauczyć by znaleźć dobrą pracę to język programowania, którego ludzie zwykle nie uczą się po to, by znaleźć pracę." [1]
Jak na razie tyle, jak mi się jeszcze coś przypomni to dopisze.
[1] polskie tłumaczenie eseju Paula Grahama http://www.pdembinski.konin.lm.pl/python_paradox.html
oryginał: http://www.paulgraham.com/pypar.html