Dostpnych dzi na rynku IT jzykw programowania mamy podobno wicej ni uywanych obecniena wieciejzykw naturalnych! "ednak spord duej grupy jzykw tworzonych przez lata po dzi dzie# przetrwa$y tylko niektre! Programici uywaj% ich na co dzie# do najrniejszych celw: tworzenia witryn internetowych& aplikacji desktopowych& skryptw administracyjnych& oprogramowywania rnych urz%dze#& a nawet tworzenia innych jzykw programowania! "ednym zezwyciskich& ktry przetrwa$ po dzie# dzisiejszy i zjedna$ sobieserca wielu programistw& jest Python! Przyjrzyjmy si mu dzisiaj troszk bliej! 'pis treci: 1. Konkurenci lat 90. 2. Jzyki skryptowe 3. Dziedzictwo Pythona 4. ele !zyka i ich realizac!a ". Kto i do cze#o u$ywa Pythona% &. o z pro#ra'owanie' aplikac!i internetowych% (. )dzie hostowa*% +. ,arzdzia dla pro#ra'ist-w 9. o z ./0a'i% 10. 1iteratura i 2r-d3a wiedzy 11. Przeciwnicy Pythona 12. 4ako5czenie (onkurenci lat )*! 4ani' zacznie'y przy#l6da* si sa'e'u !zykowi7 spo!rzy!'y kilkana8cie lat wstecz. Jako 'achin czasu wykorzysta!'y ty' raze' plakat stworzony przez 9:reilly7 ukazu!6cy histori #3-wnych !zyk-w pro#ra'owania. +ysunek ,! -ogo jzyka Python! .iebieski i $ty w% splecionezesob%! Pa#e 1 o; 14 Python< a=solutny wstp do 'y8lenia w o#-lny' !zyku pro#ra'owania 201301100& http<>>we=hostin#.pl>print>Python.a=solutny.wstep.do.'yslenia.w.o#ol?ny'.!ezyku.pr... Jak wida na wykresie, pocztki jzyka Python datuje si na rok 1991. Przyjrzyjmy si, jakie jzyki programowania istniay w tym czasie. aj!"i#szym ssiadem jest dziecko ik"ausa $irtha % &or"and Pasca", jzyk programowania su#cy g'wnie ce"om edukacyjnym ( dzi) u#ywany g'wnie w gimnazjach i "iceach, wci# o!ecny duchem w popu"arnym i majcych wci# swoich zwo"ennik'w jzyku *e"phi. +roszeczk ni#ej widzimy jzyk !ank'w % ,-&-.. /tworzony d"a zastosowa0 ekonomicznych i !iznesowych jest !ardzo wsko specja"izowanym jzykiem programowania. 1reszt nie ty"ko on. *wie dugie "inie poni#ej, , i ,22 to e3ekt po"ityki wyposa#ania ucze"ni 4meryka0skich w system 5ni6. /tudenci ko0czcy je rozwija"i ten system, piszcprogramy wa)nie w jzyku , % wymusi"i wicnie jako stosowanie tego jzyka na swoich pracodawcach. /td tak wie"ka jego popu"arno) oraz du#a i"o) powstaego oprogramowania. Poni#ej widzimy dziecko 7icroso3tu % 8isua" &asic. Jzyk wywodzcy si, jak z samej nazwy wynika, z &asica, jzyk modo)ci &i""a 9atesa, w ko0cu jzyk czsto u#ywany w czasach systemu *-/. :nne dugie "inie to ;-<+<4 % z racji swojej dugowieczno)ci, z 3antastycznie przetestowanymi !i!"iotekami do operacji matematycznych. 5#ywa si go po dzi) dzie0 g'wnie w )rodowiskach naukowych g'wnie z racji niezawodnych i od "at sprawdzajcych si w praktyce !i!"iotek. *a"ej widzimy Pro"og % jzyk przeznaczony do projektowania sztucznej inte"igencji =potra3icy rozwizywa na przykad szarady> czy 4d, z racji posiadania 3unkcji 3orma"nego dowodzenia poprawno)ci kodu, wykorzystywan w systemach krytycznych sektor'w takich jak? wojsko medycyna czy energetyka. "zyki skryptowe Je#e"i do!rze si przyjrze, wszystkie jzyki, o kt'rych do tej pory wspomniaem, to g'wnie wsko specja"izowane, kompi"owane jzyki programowania, majce zastosowanie w !ardzo wskich, specja"izowanych dziedzinach takich jak? !ankowo), o!"iczenia naukowe, systemy krytyczne czy nauka. Powstajcy wtedy jzyk Python !dcy jzykiem skryptowym =niekompi"owanym> og'"nego zastosowania mia ty"ko dw'ch, gro@nych konkurent'w? powstay w roku 19AA +c" ( +c"B+k oraz ty"ko o rok starszego Per"a. ikt wtedy nie sysza jeszcze o tak dzi) popu"arny PCP =za danymi -Drei""y % jego start to rok 199E> czy <u!y =za danymi z -Drei""y z roku 199F>. $arto zwr'ci uwag na jeszcze jeden dro!iazg. /trzaeczka Pythona zaczyna si w miejscu, w kt'rym ko0czy si #ywot jzyka 4&,. ie !ez powodu? 9uido Gan <ossum, znany powszechnie jako tw'rca jzyka Python, !y si"nie zaanga#owany w rozw'j wcze)niej wspomnianego jzyka. Po dzie0 dzisiejszy, przeg"dajc tutoria"e do 4&,, przemknie nam imi 9uido. Dziedzictwo Pythona Po por'wnaniu jzyka Python z 4&, widzimy, #e odziedziczy on po nim wie"e konstrukcji skadniowych, a"e spu)cizna Pythona jest znacznie wiksza. $ Pythonie mo#emy wykorzystywa trzy paradygmaty programowania. Hto), kto dopiero zaczyna przygod z programowaniem, mo#e Page I o3 1J Python? a!so"utny wstp do my)"enia w og'"nym jzyku programowania IK1F(11(KL http?BBwe!hosting.p"BprintBPython.a!so"utny.wstep.do.mys"enia.w.ogo"Mnym.jezyku.pr... zda si tym przera#ony, wyo!ra#ajcso!ie ogromny !aagan i !rak zrozumiao)ci kodu. 4"e nic z tych rzeczy. Rysunek 2. Paczki Pythona s rozprowadzane w postaci jajek (ang. eggs). Jest to model dystrybucji zbliony do RP!. *ziki swojej uniwersa"no)ci w tej dziedzinie Python znacznie zwiksza po"e, w kt'rym mo#e zosta zastosowany. Paradygmat procedura"ny =dzie"enia kodu na 3unkcje> jest nieodzownym podej)ciem do mode"owania zada0 matematycznych. +o wa)nie ta metoda, znacznie "epiej ni# paradygmat o!iektowy, pozwa"a nam tworzenie wydajnych a"gorytm'w rozwizujcych konkretne zagadnienie. 9dy doda do tego jeszcze mo#"iwo) tworzenia 3unkcji nienazwanych % mamy komp"et nowoczesnych narzdzi do programowania procedura"nego. -trzymujemy r'wnie# mo#"iwo) tworzenia k"as i o!iekt'w % czy"i paradygmat o!iektowy % dziki czemu mo#emy sprawnie mode"owa 3ragmenty rzeczywisto)ci "u! system'w skadajcych si na nasz ap"ikacj oraz korzysta ze wszystkich innych do!rodziejstw programowania o!iektowego. *oceni to szczeg'"nie ,i tw'rcy oprogramowania, kt'rym przyszo pracowa w wikszym zespo"e programist'w. +o jednak nie koniec. $chodzcw meandry programowania o!iektowego, zahaczamy o programowanie 3unkcyjne. +utaj, jzyki takiej jak Python, pokazuj pazur, dajcprogrami)cie gar) )wietnych narzdzi do grze!ania w napisanym ju# programie. ,echa ta nazywana jest czsto introspekcyjno)ci jzyka. ,ho to ty"ko niewie"ka cz) 3unkcjona"no)ci Pythona mo#"iwo)ci wycigania in3ormacji o stworzonych 3unkcjach, o!iektach, k"asach czy jeszcze innych e"ementach jzyka za pomoc odpowiednich 3unkcji % jest nieoceniona. ,zsto zwiksza r'wnie# poziom !ezpiecze0stwa kodu, gdzie mo#emy unikn stosowania instrukcji takiej jak e6ec=> na rzecz znacznie !ezpieczniejszych introspekcji. Page F o3 1J Python? a!so"utny wstp do my)"enia w og'"nym jzyku programowania IK1F(11(KL http?BBwe!hosting.p"BprintBPython.a!so"utny.wstep.do.mys"enia.w.ogo"Mnym.jezyku.pr... Cele jzyka i ich realizacja Czas uspokoi tych, dla ktrych to, co napisaem do tej pory, zaczo przypomina informatyczny bekot. Python to jzyk programoania dla szystkich. Przyjrzyjmy si icjego czterem podstaoym celom. !. atwy i intuicyjny jzyk, ale jednoczenie rwnie potny jak jego konkurenci "y mo#e dla ielu brzmi to jak pobo#ne #yczenie, a pomimo to $ udao si osi%gn% ten cel. Cho soo proste i pot#ne mog% ydaa si przeciie&stami, to jzyk Python %czy te die cechy. 'a prostot zostay ukierunkoane szystkie elementy skadni jzyka( soa kluczoe, nazy funkcji, bibliotek czy choby zaznaczanie blok kodu przez cicia. )e szystkich istniej%cych jzyk programoania, z ktrych czerpie Python, zostao zebrane to, co czytelne, i zlepione razem, aby torzyo mo#liie najprostszy jzyk programoania. Potg mo#emy za* podziia majestacie liczby oraz jako*ci dostpnych do jzyka bibliotek. )najdziemy tutaj szystko, czego dusza zapragnie. +lasy do obsugi sieci, najr#niejszej ma*ci baz danych czy cae frameorki. 'aet biblioteki do symuloania fizyki obiekt. ,. Bazujcy na Open Source kady !oe wnie" wk#ad do jego rozwoju -okumentacja Pythona zaiera da du#e dziay po*icone pisaniu rozszerze& dla tego jzyka. -opisa modu mo#e naprad ka#dy. .o#lio* implementoania noych fukcjonalno*ci oraz otarto* zaoocoaa ogromn% liczb% dodatkoych bibliotek. /utaj rnie# tki tajemnica impetu, z jakim rozija si jzyk. 0rono programist ochotnik z caego *iata pracuje nad jzykiem programoania. 1ak ida $ jedno*ci sia. Programuj%c Pythonie spotykamy si z bardzo nooczesnymi i czsto innoacyjnymi konstrukcjami, rozi%zaniami na miar dzisiejszych czas. -ziki temu Python ua#any jest za jzyk nie tylko elastyczny, ale tak#e nad%#aj%cy za trendami $ a konsekencji nooczesny. 2iele osb pisz%cych moduy i biblioteki na asne potrzeby publikuje je 3ieci, zikszaj%ctym samym portfolio jzyka oraz liczb dostpnych narzdzi. -odatkoym atutem, ktry spraia, #e kod projektoany z u#yciem jzyka Python jest dobrej jako*ci, s% dokumenty( standaryzuj%ce styl pisania kodu P4P56 oraz filozofia, ktr% rz%dzi si jzyk i poinien rz%dzi si programista nim pisz%cy $ legendarne ielu krgach programist /he )en of Python. )rozumienie go pozala nie tylko rozstrzygn% iele dylemat pod tytuem 7jak to zaprojektoa7 czy 7ktra implementacja jest lepsza7, ale tak#e lepiej zrozumie, dlaczego Pythonie co* jest zrobione, tak a nie inaczej, i dlaczego co* dziaa a*nie, tak a nie inny sposb. 8. $rozu!ia#y kod w pro%ty! angiel%ki! /o kolejny element pyaj%cy na czytelno* jzyka. +od programu czyta si miejscami jak ksi%#k napisan% bardzo prostym, przeplatanym yra#eniami logiczno5 matematycznymi, angielskim. 'aet tutaj ida, jak starannie zostay dobrane nazy, aby nie uczyni jzyka niezrozumiaym lub cho troch bardziej skomplikoanym. 2ida to byo na przykad przy refaktoryzacji jzyka zi%zanej z ydaniem Pythona 8. )goszono propozycj usunicia konstrukcji input&raw'input na rzecz dubloania funkcjonalno*ci Page 9 of !9 Python( absolutny stp do my*lenia oglnym jzyku programoania ,:!85!!5:; http(<<ebhosting.pl<print<Python.absolutny.step.do.myslenia..ogol=nym.jezyku.pr... odpoiednich obiekt dostpnych module sys. >czyi*cie, konstrukcj pozostaiono, argumentuj%cto zikszeniem prostoty i czytelno*ci jzyka. 9. Przydatno do rozmaitych codziennych celw, owocujca krtkim czasem programowania 1e#eli brakuje ci kalkulatora z mo#lio*ci% ykonyania dziaa& na liczbach zespolonych, chciaby* yrysoa szybko ykres jakie* funkcji, napisa prosty serer, storzy szybko prost% itryn z panelem administracyjnym, modeloa jaki* algorytm, co* zaszyfroa lub ykona jedn% z ielu innych drobnych rzeczy $ a masz dostp do komputera z zainstaloanym Pythonem $ nicnie stoi na przeszkodzie, aby* mg go do tego ykorzysta. -ziki konstrukcji jzyka ykonanie zadania yda si nie tylko proste, ale tak#e przyjemne i cale nie zajmie iele czasu. Czytaj%cto mogoby si ydaa, #e Python jest jzykiem dla przecitnego +oalskiego, ktry yszed a*nie po gazet do kiosku i po porocie stierdzi, #e chciaby sobie napisa prosty program, ktry ypisze mu funkcj trendu dla notoa& giedoych z ostatniego miesi%ca. ? tak jest rzeczyisto*ci. ) jednej strony jzyk ten posiada prost% skadni, z drugiej ogrom bibliotek, z ktrych rnie prosto korzysta. 2szystko dobrze opisane i udokumentoane. 'ie pozostaje nicinnego, jak tylko pisa. Kto i do czego uywa Pythona? 3koro ju# tak iele dobrego napisali*my o Pythonie, mogoby si nasun% pytanie $ czy ktra* z poa#nych firm go ogle u#ya@ )acznijmy od najbardziej oczyistego przykadu. Pradopodobnie miliony ludzi na *iecie nie zdaje sobie spray z tego, #e yszukuj%c informacje 0oogle, u#ya mechanizm napisanych z u#yciem Pythona. Page A of !9 Python( absolutny stp do my*lenia oglnym jzyku programoania ,:!85!!5:; http(<<ebhosting.pl<print<Python.absolutny.step.do.myslenia..ogol=nym.jezyku.pr... Rysunek 3. Gwna witryna Centralnej Agencji Wywiadowczej. Skorzystanoz rozwizania zaimlementowanegow !yt"onie # !lone w caej swojej okazao$ci. Google stosuje Pythona rwnie w innych swoich projektach. Moemy sobie tylko wyobrazi, przeglajc labs.google.com, czy ju wyane aplikacje ze stajni Google, jak wiele i jak barzo z!oonych i skomplikowanych witryn jest tworzonych w tej "irmie. #ak rozbuowane i skomplikowane aplikacje musz by w moliwie znacznym stopniu uproszczone, aby po latach ko i intencja programisty, cel i przeznaczenie napisanych bibliotek, "unkcji, stworzonych obiektw by! jasny i klarowny. Python naaje si$ tutaj iealnie. Generalnie czas programisty jest roszy ni czas maszyny %cho zasaa ta nie musi otyczy Google& ' tak wi$c skrcenie czasu programowania jest barzo korzystne la obu stron. (itryna )*+ zbuowana jest zwykorzystaniem )M,-a Plone ' napisanego oczywi.cie w Pythonie. /$zyk ten wykorzystywany jest rwnie w 0+,+ w *ntegracyjnym ,ystemie Planowania jako stanarowy j$zyk skryptowy. #o nie wszystko. Pythona uywa rwnie (alt 1isney 2eature +nimation o oskryptowywania animacji, zosta! wykorzystany take o napisania logiki wewn$trznej %w tym rwnie sztucznej inteligencji& w grze )i3ilization *4, a nawet uyty przy instalatorze +nacona ystrybucji 5e 6at 7inu8. Coz rogramowaniem alikacji internetowyc"% 9g!$biajc zasoby ,ieci, tra"imy na wa "rameworki napisane w Pythonie. 5ni si$ one przee wszystkim "ilozo"i poej.cia o tworzenia aplikacji. Pierwszy znich to 1jango: stworzony jako spjne, samowystarczalne rozwizanie, posiaajce swoje w!asne systemy szablonw, moeli i wiokw %kontrolerw&. 9estaw bibliotek i wbuowanych w niego mou!w czyni zniego zamkni$ty system o .ci.le okre.lonej "unkcjonalno.ci. ;wocuje to przee wszystkim prostot. #rzeba przyzna, e tworzenie aplikacji zuyciem tego rozwizania jest napraw$ !atwe, mona nauczy si$ go w kilka minut i b!yskawicznie, niczym za otkni$ciem magicznej rki, wyczarowa witryn$ zpanelem aministracyjnym. 1zi$ki ogromowi wspania!ych narz$zi ostarczonych przeztwrcw 1jango, ostajemy o r$ki wszystko to, co najbarziej potrzebne w tworzeniu w!asnego portalu internetowego. Page < o" => Python: absolutny wst$p o my.lenia w oglnym j$zyku programowania ?@=A-==-@< http:BBwebhosting.plBprintBPython.absolutny.wstep.o.myslenia.w.ogolCnym.jezyku.pr... Rysunek 4. Sesja Eclipsa w dziaaniu. W tle strona domylnie wywietlana po stworzeniu projektu oraz konsola paster shell dla Pylonsw. Problemy zaczynaj si gdy funkcjonalno dostarczona przez twrcw wyej wspomnianego Framework po prostu nie wystarcza !tedy naley zastanowi si nad uyciem Pylons" ktre prezentuje skrajnie odmienne podejcie" cec#ujce si siln modularyzacj $iemale wszystkie mec#anizmy jzyka to odrbne biblioteki i projekty zwizane z Pyt#onem %oemy je dowolnie dobiera i wymienia" samodzielnie decydujc" jakiego systemu szablonw" czy warstwy abstrakcji baz danyc# bdziemy uywa" oraz z jakic# komponentw do walidacji danyc# czy weryfikacji uytkownikw bdzie korzysta&a nasza witryna $ic nie stoi na przeszkodzie" aby rozszerzy nasz aplikacj o samodzielnie napisane biblioteki czy modu&y" nawet te dzia&ajce na poziomie serwera !!! Page ' of () Pyt#on* absolutny wstp do mylenia w oglnym jzyku programowania +,(-.((.,/ #ttp*00web#ostingpl0print0Pyt#onabsolutnywstepdomysleniawogol1nymjezykupr Rysunek 5. Django w caym swoim majestacie. Rozbudowany, nowoczesny, penokrwisty panel administracyjny. Gotowy w dwie minuty po starcie projektu. Oba frameworki maj si dobrze i posiadaj grono zwolennikw. Ich charakterystyczne cechy przemawiaj raz na rzecz jednego, a raz drugiego, pozwalajc zawsze wybra najlepszy z nich w zale!no"ci od stopnia skomplikowania oraz zaawansowania planowanego projektu. Gdzie hostowa #oogle, do"wiadczajc dobrodziejstw jzyka $ython, zrobi% prezent de&eloperom aplikacji internetowych, tworzc darmow platform do ich hostowania o nazwie #oogle 'pp (ngine. )wrcy frameworkw szybko dostosowali swoje projekty do mo!liwo"ci kont oferowanych przez #oogle. * +ieci znajdziemy mnstwo opisw pokazujcych, co zrobi, aby nasza aplikacja napisana w ,jango lub w $ylons mog%a zago"ci pod adresem -.appspot.com. .iestety, specyfika kont #oogle 'pp (ngine nie pozwala na przyk%ad na korzystanie z baz danych /y+01 czy $ostgre+01. 2e!eli wic sta nas na hosting i chcemy skorzysta z rodzimych us%ug, mo!emy "mia%o wykupi konto na rodzimym home.pl. /o!liwo" uruchamiania aplikacji $ythona jako skryptw 3#I otrzymujemy ju! w pakiecie 4usiness +tarter, a home.pl udostpnia wersj 5.6.5 tego jzyka, co jest ewenementem, je"li chodzi o najwikszych dostawcw w $olsce. 2ako serwer de&eloperski fantastycznie prezentuje si 7oot.ode, ktry swoj drog reklamuje si jako 8Raj dla programisty8 9 to bardzo przyjazne "rodowisko dla aplikacji opartych o ,jango czy $ylons. $rzegldajc dalej zasoby +ieci, bardzo czsto polecane s us%ugi /egi)eam oraz, majcy fantastyczn opini, *eb:action. 2ak wida, wybr jest niema%y, a cennikowo wszystkie te us%ugi mieszcz si w rozsdnych granicach. $rzytoczy%em tylko najlepiej prezentujce si i posiadajce $age ; of <= $ython> absolutny wstp do my"lenia w oglnym jzyku programowania 5?<@A<<A?B http>CCwebhosting.plCprintC$ython.absolutny.wstep.do.myslenia.w.ogolDnym.jezyku.pr... dobre opinie oferty. Do wielu innych dotrzesz, czytajc wtek powicony temu tematowi na forum Polish Python Coders roups. Narzdzia dla programistw Podstawowym narzdziem, kt!re otrzymuj pro"ramici Pythona, jest konsola. Pozwala ona na wykonywanie kodu w locie, szybkie testowanie pewnych rozwiza#, sprawdzanie konstrukcji kodu w zasadzie od zaraz. $zalenie u%yteczne narzdzie & szcze"!lnie przy pocztkach, kiedy jeszcze si uczymy. 'iedy zaczniemy szerzej wykorzystywa( dobrodziejstwa konsoli, na pewno przyda si jej rozszerzenie & iPython. Rysunek 6. Geany - prostota i pragmatyzm. Edycja niewielkiego programiku Jyt!ona z wykorzystaniem "#$. )r!d edytor!w mamy o"romny wyb!r. $k*adnie Pythona koloruje popularny P$Pad czy +otepad,,. -sobom lubicym proste, dedykowane rozwizania polecam edytor eany. .!wnie% amatorzy zaawansowanych rodowisk pro"ramistycznych znajd co dla siebie. +a czo*o wysuwa si tutaj /clipse wzbo"acony o wtyczk PyDe0. +iestety, amatorzy +et1eans musz jeszcze zaczeka( na oficjalne, wbudowane wsparcie dla jzyka Python w tym rodowisku, jednak ju% dzi mo" doinstalowa( do nie"o debu""er 2pyDb" lub przyjrze( si ofercie +et1eans Python /3. Pa"e 4 of 56 Python7 absolutny wstp do mylenia w o"!lnym jzyku pro"ramowania 895:;55;9< http7==webhostin".pl=print=Python.absolutny.wstep.do.myslenia.w.o"ol>nym.jezyku.pr... Rysunek 7. Kolejny fantastyczny duet. Far Commander i Vim - czasami mona zapomnie, e pracuje si pod !indo"s. Co z C#$-ami% Palm pierwszestwa wrd CMS-w wiata Pythona dziery Plone. O tym, z ja zaawansowanym systemem zarz!dzania tre"i mamy do"zynienia, moemy si przeona#, "zytaj!" j$ "ho#%y list &$n"jonalno"i te'oprojet$. O ini"jatywa"h stworzenia aplia"ji( CMS, )ii, *ra" "zy inny"h przypominaj!"y"h tenapisanew P+P moemy po"zyta# midzy innymi na witryna"h wii Pylons. Pord wiel$ lar$j!"y"h si projetw wartowspomnie#, i &antasty"znienapisany hportal, %d!"y tworem Paw,a +ajdana, otrym %y,ojai "zas tem$ ',ono, jest od pewne'o"zas$ w &azieprzepisywaniena jzy Python. -dzietojedyny znany mi CMS, przypominaj!"y prod$ty tworzonew jzy$ P+P, napisany z $y"iem Pythona. &iteratura i 'r(d)a "iedzy Przesz$$j!" zaso%y polsiej literat$ry doty"z!"ej Pythona, napotyamy ',wniena si!i wydaneprzez +elion. .edn! z pierwszy"h pozy"ji dostpny"h w naszym rodzimym jzy$ %y,y /ozmwi. Podzi dzie jest tojedna z lepszy"h si!e dostpny"h na ryn$ polsim. Przyda si sz"ze'lnietym, trzy szy%o%d! "h"ieli zapozna# si zes,adni! jzya, prze"hodz!" od raz$ doprzy,adw z pro'ramowana sie"iowe'o, zarz!dzania w!tami, serializa"j!, pra"! z pliami, %azami dany"h, implementa"j! om$nia"ji internetowej, parsowani$ +*M0 "zy 1M0. 2si!a ta toniew!tpliwiezestaw szalenieprzydatny"h &ra'mentw od$ z najrniejszy"h dziedzini zastosowa. 3najdziemiejs"ew %i%liote"z"eade'orozpo"zynaj!"e'osw! przy'od z Pythonem pro'ramisty. 4wietna na spr%owaniei dla ty"h, trzy "h"ieli%y poprost$ zo%a"zy#, "zy tenjzy pro'ramowania jest dla ni"h. 5la poszerzenia swojej wiedzy l$% w wypad$, w trym mamy pewno#, i Pythonem %dziemy zajmowa# si trosz d,$ej l$% nasze&$nd$szeprzezna"zonena si! nies! spe"jalnie o'rani"zone, wartozastanowi# si nad Python6 /e"ept$ry. Por$sza ona zna"znieszersze Pa'e78 o& 79 Python( a%sol$tny wstp domylenia w o'lnym jzy$ pro'ramowania :87;-77-8< http(==we%hostin'.pl=print=Python.a%sol$tny.wstep.do.myslenia.w.o'ol>nym.jezy$.pr... spektrum zagadnie, wszystkie one zostay omwione znacznie dokadniej i okraszone fragmentami kodu. Osobicie, z niecierpliwoci czekam na wydanie ksiki !yt"on # $prowadzenie. %iedy przygldam si& wersji angielskiej, moim skromnym zdaniem b&dzie to najlepsza z dost&pnyc" pozycji na rynku polskim i moe przyczyni' si& do znacznej popularyzacji tego fantastycznego j&zyka. (koro jestemy ju przy literaturze, warto nadmieni', e wszyscy fani )ruce *ckela i +"inking in ,a-a mog spodziewa' si& +"inking in !yt"on, a niecierpliwi zajrze' na witryn&, gdzie s dost&pne szkice ksiki. .am te dobr wiadomo' dla osb posiadajcyc" dar czytania dokumentacji. Od wersji /.012333 moemy cieszy' si& bardzo dobrze opracowan dokumentacj bazujc na (p"inksie. 4ie brakuje take materiaw dost&pnyc" w 5nternecie. !rawdziw skarbnic jest witryna !olis" !yt"on 6oders 7roup. !olecam j wszystkim pocztkujcym oraz tym bardziej zaawansowanym8 pr&nie dziaajce forum i kana 596 to pewne miejsca, w ktryc" mona liczy' na pomoc naszyc" rodakw w postawieniu pierwszyc" :jak i tyc" kolejnyc"; krokw w tym j&zyku programowania. 6"o' j&zyk !yt"on jest j&zykiem wieloplatformowym, tematyka tworzenia w nim aplikacji bardzo cz&sto przewija si& na wszelkic" <=>7ac" :=inu? >ser 7roup; lubujcyc" si&, mogoby si& czasem zdawa', we wspomnianej tematyce. .oesz te zaangaowa' si& w dziaalno' grup, takic" jak %rakowski !y%onik czy $arszawski $ar!y. )ardzo cz&sto temat !yt"ona jest rwnie poruszany na konferencjac" prowadzonyc" przez %rakowski oddzia 7oogle. $szystko to spina coroczna konferencja !y6on :lub jej polska odmiana !y6on !=;, ktra w roku /33@ odbya si& w 9ybniku. Przeciwnicy Pythona !o wpisaniu frazy Apyt"on -sB w wyszukiwarce natrafimy na dziesitki debat prowadzonyc" przez bojownikw (ieci, wszczynajcyc" pucze i wi&te wojny, biorcyc" udzia w niekoczcyc" si& dyskusjac" dotyczcyc" wyszoci j&zyka programowania C nad D, piszcyc" niezmordowanie nocami testy udowadniajce ic" racje, tworzc niekoczce si& zestawienia w *?celu i wykresy, w ktryc" supki z ic" ulubionym j&zykiem programowania pokazuj wyszo' ic" teorii nad zdaniem reszty wiata, ktry si& nie zna... 6"ciaem tutaj poruszy' kilka, cz&sto poruszanyc" tematw i postawi' je w wietle8 suc"yc", obiektywnyc" faktw. E Python jest mniej wydajny ni inne jzyki !yt"on jest j&zykiem skryptowym. ,ego kod nie jest kompilowany do wydajnej postaci wykonywalnej, tak jak ma to miejsce w 616FF. 6zy jednak w ktrymkolwiek z jego pryncypiw widnieje gdzie "aso Gwydajno'GH Ot nie. Iadnym z czterec" nadrz&dnyc" celw j&zyka nie jest wydajno', jest to wi&c bez wtpienia sprawa drugorz&dna. $ydajno' j&zyka, c"o' systematycznie zwi&kszana oraz poprawiana, jest podporzdkowana czytelnoci oraz prostocie skadni. !yt"on nie zosta stworzony jako najszybszy, skrajnie wydajny j&zyk projektowania systemw czasu rzeczywistego. 4ie taki jest jego cel i nie taki by gwny zamys jego twrcy. E Python ma dziwn skadni +rzeba to przyzna'. !rogramujc w tak popularnyc" j&zykac" jak 6, 6FF, ,a-a czy !J! :nazwijmy je roboczo # klamerkowymi;, mogoby si& wydawa', e skadania j&zyka programowania powinna wanie tak wyglda', klamerki nawiasiki, ify, fory i switc"e. !age KK of KL !yt"on8 absolutny wst&p do mylenia w oglnym j&zyku programowania /3K2MKKM30 "ttp811web"osting.pl1print1!yt"on.absolutny.wstep.do.myslenia.w.ogolNnym.jezyku.pr... Python zaskakuje tutaj na kadym kroku, nie rozpieszczajc zatwardziaych programistw wyej wspomnianych jzykw programowania i zmuszajc ich do przestawienia si na form znacznie oszczdniejsz i pozornie "niewygodn" zaen !owiem od wci"# $pu%cizna po jzyku &'( daje si tutaj mocno we znaki# $am do%wiadczyem tego, jak mocno trze!a zmieni" podej%cie i my%enie o jzyku programowania i tworzeniu programw, a!y doceni" zaety Pythona, zacz" korzysta" z jego do!rodziejstw i do%wiadczy" w penej skai skrcenia czasu pracy programisty# Przypomina to mniej wicej przej%cie ze zwykego edytora tekstu do )ima pocztkowo wydaje si nam to kompetnie innym, egzotycznym, dziwnym rozwizaniem, majcym gdzie% jednak, po !iszym poznaniu, swoj ogik, fiozofi i g!oki sens# *ednak i tutaj wystarczy spojrze" na cee jzyka# +arwno skadnia jak i wszystkie zastosowane w niej konstrukcje maj przy%piesza" prac programisty i zarwno czyni" kod !ardziej czytenym, prostszym i intuicyjnym# ,awet kosztem egzotyczno%ci skadni jzyka i zmuszenia programisty do zmiany przyzwyczaje- na!ytych w innych popuarnych jzykach programowania# . Python jest lepszy lub gorszy ni inne jzyki programowania (iko mwi" o tym, czy Python jest epszy czy gorszy ni jaki% inny jzyk# Python jest epszy w !yciu Pythonem i reaizacj swoich cew i rwnocze%nie Python jest gorszy w !yciu P/P, *a0 czy kadym innym jzykiem programowania# Przyzwyczajenie drug natur programisty# 1o, e jakiemu% programi%cie wygodniej si w czym% pisze kod, nie oznacza, e jego jzyk jest epszy# *est wygodniejszy da niego# 1o wszystko# 2iee zestawie-, na ktre mona natrafi" w $ieci, to porwnanie jzyka Python, P/P u! 3u!y# +ostawiajc interpretacj popuarno%ci, wydajno%ci oraz io%ci oprogramowania napisanego we wcze%niej wspomnianych jzykach (zytenikowi, chciaem zwrci" uwag na zestawianie 4i moim zdaniem !ezsensowne pr!y wyonienia epszego jzyka5 Python kontra 3u!y# (hciaem zacz" od tego, e moim skromnym zdaniem rnorodno%" jest rzecz do!r6 pozwaa zawsze dokona" wy!oru, wy!ra" epsze narzdzie do zadania, ktre przed nami stoi# Pythona i 3u!ego porwna!ym do komiksu i wiersza# Prostota i intuicyjno%" jzyka Python przypomina mi komiks# 2e7my na przykad historyjki o 8arfiedzie# 2 prostych przypadkach wystarczy spojrze" na rysunki, czasami w !ardziej skompikowanych mona przeczyta" dymki 4docstringi5, a!y zrozumie" sens dowcipu# ,arzucone s jednak sztywne formy6 w komiksie wystpuj okre%one postaci 4z rzadka jakie% inne5, jzyk musi !y" prosty, forma graficzna i wygd gwnych !ohaterw narzucony# 8arfieda rysuje si tak, a nie inaczej i ju# (zasami ma czapeczk, a innym razem wystpuje z mandoin, ae 8arfied to wci 8afied# 2szystko jest proste, jasne, widoczne na pierwszy rzut oka# 1worzenie programw w jzyku 3u!y przypomina mi natomiast pisanie wierszy# 'ogactwo skadni, rnice si niuansami konstrukcje, indywiduany sty tworzenia, finezja i "to co%"# + jednej strony wci w narzuconych z gry ramach 4skadni nie da si wyczarowa" z rkawa, jest jaka jest5 z drugiej strony ogrom i rnorodno%" konstrukcji dostpnych w 3u!ym daje szerokie poe do popisu w indywiduanym podej%ciu do tworzenia kodu# 1ak jak komiksowy sty Pytona niczym 8P$ ukierunkowuje wci programist na tworzenie czytenego, prostego, intuicyjnego kodu, tak 3u!y pozostawia jego wygd i zrozumiao%" na !arkach twrcy, ktry moe pisa" kodowe poematy# ,ie ma tu naprawd sensu ocenia", ktre podej%cie jest epsze# +dyscypinowany i my%cy Page 9: of 9; Python6 a!soutny wstp do my%enia w ognym jzyku programowania :<9=>99><? http6@@we!hosting#p@print@Python#a!soutny#wstep#do#mysenia#w#ogoAnym#jezyku#pr### programista przy odrobinie wysiku moe bez wikszych problemw tworzy zrozumiay, czytelny kod w niemale kadym jzyku programowania. Python po prostu dodatkowo stara si to wymusi lub po prostu uatwi. ybr jest zawsze dobry. Poezja nigdy nie zast!pi komiksu i na odwrt. "eeli mamy odpowiednie zdolno#ci $ interpretacja nawet najbardziej abstrakcyjnej poezji przyniesie znawcy jedynie rado#, satys%akcj i odkryje przed nim nowy #wiat. & Python posiada dwie wersje i nie wiadomo, ktrej si uczy 'o %akt. (a pewnym etapie twrcy doszli do wniosku, e jedyn! drog! na unowocze#nienie Pythona i pj#cie dalej jest zerwanie ze wsteczn! kompatybilno#ci!. Postanowili wic przez pewien duszy okres czasu wydawa dwie wersje oprogramowania) ga!* +., -kompatybiln! wstecz. oraz /.,, w ktrej zostay podjte radykalne zmiany maj!ce na celu uczynienie jzyka Python jeszcze bardziej potnym i nowoczesnym. Poniewa zmiana ta nast!pia cakiem niedawno, szczeglnie jak na jzyki programowania, wiele bibliotek -na przykad do obsugo baz danych., %rameworkw czy zewntrznych moduw nie zostao jeszcze przeportowanych na wersj /. Posiada ona wic mniejsz! ilo# bibliotek zewntrznych. szystko z czasem si wyrwna i wraz z jego biegiem ga!* Pythona +., odejdzie w niepami, a liczba projektw tworzonych dla Pythona / bdzie przynajmniej dorwnywaa dzisiejszemu port%olio gazi +.,. 0opki to nie nast!pi, polecam uczy si Pythona w wersji +.1. Posiada on znaczn! cz# udogodnie2 wprowadzonych do gazi /. 3nice w samym jzyku s! na tyle niewielkie, i przerzucenie si z pisania z gazi + na / bdzie wi!zao si co najwyej ze zmian! przyzwyczaje2 i kilku konwencji. 4sobi#cie ruch, ktrym byo wydanie rwnolegle kolejnej gazi, uwaam za sukces twrcw jzyka Python oraz pozytywny owoc postawienia 5uido 6an 3ossum na stanowisku 7ene6olent 0ictator %or 8i%e $ osoby podejmuj!cej ostateczne, rozstrzygaj!ce decyzje w przypadku rnicy zda2 w grupie de6eloperw jzyka. 0ziki niemu $ bez wzgldu na wszelkie konsekwencje i utrudnienia, ktrych naleao si spodziewa $ wyjdzie to Pythonowi na dobre, czyni!c z niego jeszcze bardziej nowoczesny i przyjazny jzyk programowania. & Python to religia 9usz przyzna, e czytaj!c czasem o Pythonie czy o 3ubym, odnosz wraenie, e o ile programi#ci takich jzykw jak "a6a, :;; czy P<P s! nadal tylko programistami, Python czy 3uby stay si dla niektrych religi!. Zakoczenie "eeli po przeczytaniu tego tekstu, zastanawiasz si, czy jzyk Python jest dla :iebie, nie pozostaje :i nic innego, jak po prostu wyprbowa go. (ajpro#ciej bdzie skorzysta ze strony 'ry=Python lub zainstalowa go na swoim komputerze. 9iej zabawy. Page >/ o% >? Python) absolutny wstp do my#lenia w oglnym jzyku programowania +@>/=>>=@1 http)AAwebhosting.plAprintAPython.absolutny.wstep.do.myslenia.w.ogolBnym.jezyku.pr... Rysunek 8. Okno koczce pomyln instalacj jzykaPython w systemie Windows. Page >? o% >? Python) absolutny wstp do my#lenia w oglnym jzyku programowania +@>/=>>=@1 http)AAwebhosting.plAprintAPython.absolutny.wstep.do.myslenia.w.ogolBnym.jezyku.pr...