2018-07-01

Krótki opis długiej historii Pythona

Python jest językiem dość starym, że się tak wyrażę. Obecnie pełno na rynku języków dość nowych dzieci jak Scala, Dart, Elm, Elixir, Kotlin czy wiele, wiele innych. W porównaniu z nimi Python jest staruszkiem, pojawił się on bowiem na początku roku 1991 na CWI – Centrum Matematyki i Informatyki w Amsterdamie. Nie jest to co prawda dziadunio taki jak np. C z roku 1972, ale taki pełnoprawny język w średnim wieku, to już jak najbardziej.

Jego głównym twórcą był Guido van Rossum, który do dziś ma przydomek „Benevolent Dictator for Life” i w zasadzie uznawany jest za najwyższy autorytet w świecie Pythona.

Z ciekawostek można dodać, że jeśli uda ci się znaleźć e-mail Guido gdzieś w sieci (nie jest to trudne) i wyślesz mu jakiś ciekawy mail z pytaniem, to istnieje spora szansa, że odpowie. Tak przynajmniej wynika z doświadczeń sporej ilości innych użytkowników Pythona.

Sama nazwa języka nie pochodzi, jak by się mogło wydawać, od zwierzęcia, a od serialu emitowanego w latach siedemdziesiątych przez BBC - „Latający Cyrk Monty Pythona”, którego to twórca języka, był fanem i uznał, że nazwanie swojego języka programowania Python, to będzie coś. Samo to powinno wystarczyć, by zachęcić cię do używania tego języka.

Python rozpoczął swój żywot w wersji 0.9.0, ale za długo w niej nie pożył, szybko wychodziły kolejne wersje. Wiązały się z nimi różne perturbacje, gdyż sam van Rossum, jak i najważniejsi członkowie zespołu, wiele razy zmieniali swój ‘dom’, przechodząc z jednej organizacji do drugiej.

Wszystko się jednak ustatkowało wraz z nastaniem wersji 2.1, która została wydana już pod szyldem Python Software Foundation – fundacji non-profit, która działa do dziś i wzorowana jest na Apache Software Foundation.

W założeniu Python miał być następcą języka ABC – innego prehistorycznego tworu, o którym nie będziemy się zbytnio rozwodzić, mimo tego, że wpływ jego jest ewidentny w Pythonie.

Oprócz ABC, w Pythonie wyraźne są pewne wpływy lub elementy zapożyczone z takich języków jak: C, C++, Haskell, Java, Perl czy Lisp.

Wężowe cele

Z tym Pythonem, to tak sprawa wygląda, że naprawdę warto go używać. Osobiście uważam, że jest on jednym z najlepszych języków do nauki podstaw programowania, czyli taki, jak miał być w zamyśle. Pozwala on szybko przejść do zrozumienia pewnych pojęć programistycznych, gdyż uczeń nie musi skupiać się zbytnio na opanowywaniu skomplikowanej składni czy zawiłych wyrażeń, jak to czasami ma miejsce w innych językach.

Python jest zwięzły i prosty – większość kodu może być bardzo łatwo zrozumiana przez kogokolwiek, kto choć trochę mówi po angielsku, lub ma słownik pod ręką, a sam kod jest zazwyczaj krótki, łatwy do zrozumienia i elegancki.

Wyjaśnienia tak naprawdę wymaga tylko kilka symboli, używanych, by skrócić zapis. Poza tym Pythona czyta się tak naprawdę podobnie, jak zdania w języku angielskim. To jest też właśnie pierwszy wężowy cel – prostota przedkładana nad złożoność.

Python z założenia miał być prosty, przyjemny i elegancki. Uważam, że taki jak najbardziej jest. Kolejnym celem jest przenośność. Pythona można uruchomić chyba na większości obecnie popularnych platform – Windows, prawie dowolny Linux, macOS. Do wersji 3.7, wydanej 27.06.2018, oficjalnie wspierane było nawet coś tak dziwnego, jak FreeBSD w wersji <= 9.

Dzięki temu Pythona można odpalić prawie wszędzie, jeśli tylko pozwalają na to zasoby sprzętowe. Następnym celem, który miał przed sobą Python, jest otwartość. Niektóre języki są dość ‘hermetyczne’ - można ich używać tylko po opłaceniu licencji albo tylko w określonych warunkach, celach.

Z Pythonem tego problemu nie ma – jest on kompletnie darmowy w użytkowaniu, modyfikacji, dystrybucji i czymkolwiek tam jeszcze sobie użytkownik życzy.

Dodatkowo Python jest otwarto-źródłowy a za jego rozwojem stoi społeczność. Co to znaczy w praktyce? Każdy ma wgląd do źródeł języka to raz, dwa, że jeżeli coś ci się w Pythonie nie podoba, uważasz, że coś mogłoby zostać zrobione lepiej, to…

Nie ma problemu. Weź daną funkcję i po prostu ją dopisz, zmień. Jeśli społeczność uzna, że twoje zmiany są zasadne i przydatne, to wylądują one w samym języku. Każdy może mieć zatem realny wpływ na to, jak wygląda Python, jak on działa. Świetna sprawa.

To tylko kilka z idei, które przyświecają Pythonowi, wszystkich ich tutaj nie opiszę, ale uważam, że te najważniejsze udało mi się zawrzeć.

Wąż co jakiś czas zrzuca skórę

O cóż mi chodzi? O fakt, że Python i jego zastosowania cały czas się zmieniają. Podobnie jak wąż, zrzuca on swoją starą skórę i zyskuje nowe miano.

Pierwotnie był to język, który wykorzystywano raczej jako język skryptowy. Automatyzacja pewnych procesów na serwerach, jakieś operacje na plikach, tekście i tak dalej. Python nie zdobył rynku szturmem, troszkę mu to zajęło. Na samym początku był raczej niszowy. Z czasem jednak oraz ewolucją samego języka, powszechnie zaczęto dostrzegać jego zalety i piękno.

Dlatego też na przestrzeni lat Python stawał się coraz to popularniejszy, jeśli chodzi o rozwój backendowych części aplikacji webowych, a jak sami wiemy, te od początku ostatniego tysiąclecia tak naprawdę, przeżywają nieustanny rozkwit. Sprawę ułatwiało pojawienie się na rynku kolejnych frameworków pythonowych, przeznaczonych właśnie do tworzenia aplikacji internetowych, takich jak Flask, Pyramid, Pylons, Web2py czy wreszcie Django, które było prawdziwym game-changerem.

Dzięki temu Python stał się całkiem popularny jako język wykorzystywany do pisania aplikacji internetowych, ale to nie wszystko. W obecnych latach możemy zauważyć nieustający wzrost zapotrzebowania na różnych specjalistów związanych z Data Science, Artifical Inteligence czy Neural Networks. Wszystkie te i pokrewne branże rozwijają się niesamowicie a językiem, który w zasadzie praktycznie tam króluje, jest Python.

Dlaczego? Spójrzcie na idee, jakie przyświecają Pythonowi – samo się wyjaśni. Analityk nie ma być dobrym koderem, on ma za zadanie przetworzyć dane, zatem potrzebny jest mu język, który szybko pozwoli mu, bez zbędnego zagłębiania się w składnie czy to, jak działa sam język, przelać swoje myśli w kod. Python idealnie się do tego nadaje z racji swej prostoty i wszechstronności. Już sobie to wyobrażam jak siedzi taki analityk jeden z drugim i patrzą, czy, podczas na pewno zwolnili całą zaalokowaną wcześniej pamięć w ich super pięknym kodzie napisanym w C albo C++. Nie ma takiej opcji po prostu. I dobrze.

Oczywiście Pythona wciąż używa się w różnego rodzaju skryptach, automatyzacji i tak dalej, niemniej jednak uważam, że nie jest to już jego główne zastosowanie, jak to było lata, lata temu.

Tak więc, jak widzicie, Python się rozwija i pojawia w coraz większej ilości projektów, dziedzin i stref związanych z ogólnie pojętą informatyką. Osobiście uważam, że ten trend raczej się utrzyma, podobnie zresztą, jak do tej pory, i Python z roku na rok będzie zyskiwał co raz to większą popularność, wejdźmy jednak w szczegóły – dlaczego? O tym w następnym wpisie.