22 października 2008

PyCon 2008 Rybnik - wśród przeróżnych Pythonów



Zapowiadana podróż do Rybnika, gdzie odbyła się konferencja PyCon2008 uwieńczona została sukcesem w postaci świeżego spojrzenia na kilka bieżących technologii skojarzonych z językiem programowania Python. Oto moje trofea :-)



Być może nieco szczupłe będą moje notatki w porównaniu do wielkości tematów poruszanych na konferencji. Tak się złożyło, że uczestniczyłem we wszystkich wykładach i udawało mi się zadawać konstruktywne pytania prelegentom, z których snuję sobie wnioski. Jest ich kilka i chcę się nimi podzielić:


  • nie jest prawdą, że Python to niszowy język programowania - wręcz przeciwne w porównaniu do znanego wszystkim gimnazjalistom (i nie tylko) PHP - jest tylko słabo wypromowany (nie pomijam oczywiście rekomendacji firmy google.com ) i dający duże możliwości prezentacji naszych pomysłów pod konsolą, na stronie www, w postaci aplikacji desktopowej, w urządzeniach wbudowanych, telefonach komórkowych i okazuje się, że również w laboratoriach badawczych/naukowych.

  • jest prawdą, że Python ma słabą społeczność w Polsce bo nie ważne wg. jakiej metryki byśmy to mierzyli ponad 100 osób chętnych na spotkanie w jednym miejscu i łaknący wymiany doświadczeń to skromnie ... ale to jest pierwsza impreza w Polsce pod dumnym hasłem PyCon, natomiast jest to druga tej skali obok poznańskiego RuPy i jest to dla mnie istotne, że temat jest godny konferencji. Są też takie języki programowania, w których programiści zabijają się o zlecenia i niechybnie zapominają o higienie pracy, konsekwencji w kodowaniu - bo tłumaczą się czasem, że np. język narzuca im niechlujstwo, zbyt wiele rozwiązań, brakuje dobrze napisanych bibliotek, etc ...

  • jest sprawą oczywistą, że skoro mowa o Python, to też mowa o sporych możliwościach, czyli przetestowanych zbiorach modułów, które wspiera społeczność na całym świecie, kilku liczących się frameworkach i sukcesywnych wdrożeniach różnych aplikacji, między innymi webowych. Mam na myśli Django, o którym wspomniał na tej konferencji Marcin Mierzejewski (polecam też podstawy Django, które przygotował Marcin Kaszyński na Django - EuroPython 2008) i do tego CMS z możliwością rozbudowy Plone

  • bo Python też trochę wyznaje filozofię Ubuntu, tzn. tej słynącej dystrybucji Linux jest niejako elementarną częścią, bo przejmuje rolę w Desktopach dość dopracowanej obsługi notyfikacji, obsługi komunikatów systemowych i uruchamiania jakże istotnych apletów ;)

  • traktuje obiektowość minimalistycznie - w kilku linijkach napiszemy dość konkretne funkcjonalności (np: serwer, który nasłuchuje, udostępnia usługi w sieci i wykonuje odpowiednie polecenia w wątkach, wyzwala procesy cykliczne, generuje raporty w PDF i wysyła na e-mail, ftp, ssh), ale specjalnie dla zaniepokojonych programistów Java będą niebawem typowe interfejsy, które już dziś można tworzyć w określony sposób. Dodatkowo Python 3000 to nie będzie akcja typu piszę w PHP4 a teraz w PHP5 - a za rok się przesiadam na PHP6, bo providerzy też już go mają :) - społeczność poszła krok dalej i przeprowadzona będzie formalna migracja pozwalająca przetestować, czy aplikacje w Python 2.4 i 2.5 będą działały w Python 3000 ... a to już mnie przekonuje do zabawy więcej w węże a mniej w słonie :-)

  • okazuje się, że spora jest liczba dopracowanych bibliotek standardowych do pisania skryptów oraz niezależnych projektów OpenSource t.j. Sourceforge.net, koders.com,

  • szybki start programowania i sprzyjająca kodowaniu w konwencjonalnym stylu napisana dokumentacja np: Python Docs WebOb. Wybór języka Python przez NASA też nie był przypadkowy.

  • możliwość pisana wirtualnych interpretatorów przy pomocy samego języka i osadzania go w innych to taki kosmos, jaki już oferuje Python. Chcąc dla przykładu napisać sobie dedykowaną funkcjonalność garbage collection nie będziemy osamotnieni, bo projekt omawiany na konferencji PyPy nam to z miejsca umożliwia

  • moje ulubione testy rozmyte i wszelakie inne pisze się w Pythonie po prostu konsekwentne i z dużym naciskiem na stosowanie framworków tzn. znajdziemy swój ulubiony sposób testowania jednostkowego, funkcyjnego, regresyjnego, jak również przeprowadzimy bardzo ważne fuzz testing, o których był dość konkretny i obiecujący wykład na konferencji

  • wyczytałem kiedyś, że PHP5 wygląda na zaprojektowany na kolanie i chciałbym od razu zaznaczyć, że Python nie posiada tej wady, bo autor języka bardzo restrykcyjnie dobiera moduły biblioteczne, nie dopuszczając doń szajsowatych, niewnoszących nic rozwiązań

  • pozwala mi na używanie gotowych i przetestowanych rozwiązań do obsługi GDATA w ramach aplikacji googla. Rozjaśniając mój telefon + kalendarz googla to jedna i ta sama baza danych, którą synchronizuje też z innym, egzotycznym systemem korporacyjnym ... do tego stopnia bezboleśnie, bo na telefonie i komputerze PC mam kod napisany w Python

  • okazuje się, że można napisać program bez użycia instrukcji i zmiennych, bo w Pythonie jest możliwe programowanie funkcyjne. Do tego jesteśmy formalnie w stanie dowieść, że program jest bezbłędny. Może Python to nie Ocaml, ale zawsze można inny język na nim osadzić :-) Podstawy języka funkcyjnego w Pythonie to: lambda, map, reduce, filter

  • w ramach metodyki TDD i BDD, przy założeniach, że chcemy mieć pełne pokrycie testowe jest też wiele frameworków do testowania np: PyUnit, unittest, doctest, nosetest

  • jest wiele powodów, dla których w Narodowym Archiwum Cyfrowym aplikacje są tworzone właśnie w Pythonie ... ponoć jeden z nich to problem obsłużenia 2.5 milionów rekordów w bazie danych archiwum. Na szczęście jest Python + niskopoziomowa obsługa zapytań z pominięciem wszelkiej maści ORMy oraz partycjonowanie tabel poprzez mechanizmy dziedziczenia w PostgreSQL i do tego język wbudowany PL/Python zamiast PL/SQL)






Zachęcam do zapoznania się z językiem programowania Python, bo warto wiedzieć więcej.

Oto kilka uzupełniających słów ze zdjęciami z konferencji PyCon 2008 ... ja nie zrobiłem żadnego, bo za bardzo byłem skupiony na treściach przekazu :-)

Ciekawe linki:
Zarejestrowane konferencje PyCon
http://www.gapminder.org/
http://video.google.com/videoplay?docid=7996617766640098677
http://www.ted.com/index.php/talks/hans_rosling_shows_the_best_stats_you_ve_ever_seen.html

2 komentarze:

Anonimowy pisze...

Ze społecznością Pythona trochę przesadziłeś, uważam że najlepszym dowodem jest projekt Polish Python Coders Group i sama konferencja PyCon.

http://python.org.pl

Marcin Bielak | bieli - architekt oprogramowania i programista pisze...

Prezentacje, zdjęcia i zapisy video z konferencji PyCon PL 2008

Zmontowane nagrania wideo z konferencji PyCon PL 2008