Witam. Postanowilem nauczyc sie Pythona, korzystam z CPython 3.1.2 i tak sie bawie i pisze jakies bzdetki. Wczoraj dowiedzialem sie ze jest cos takiego co nazywa sie GIL (Global Interpreter Lock), ktore to narzedzie uniemozliwia wykonywanie bytecodu przez 2 watki rownolegle. Co za tym idzie - nie ma mozliwosci [#]_ wykorzystac wiecej niz 1 procka / core w aplikacji jesli interpreterem jest CPython. Co wiecej, mozna startowac nowe watki, ale wtedy one sa wykonywane na 1 procku / core, i aplikacja dziala o wiele wolniej niz jakby byla jednowatkowa - czesto lepiej jedna funkcje wywolac 2 razy jedna po drugiej niz rownolegle.

Moje pytanie teraz do Was, ktorzy pewnie Pythona znacie duzo lepije ode mnie, i to w zastosowaniach komercyjnych (ja poki co dlubie w domku). Szczegolnie interesuje mnie opinia AdamaPL, ktory zdaje sie pisze w tym zawodowo. Otoz, jak to wyglada w takich wlasnie komercyjnych aplikacjach? Wezmy na to takie aplikacje webowe pisane np. w Django (ktorego nie znam jeszcze) - tam jest jakis serwer dedykowany, pisany w pythonie, czy korzysta sie z mod_python na apache czy jak? Jak wyglada sytuacja z watkami, procesami? Czy aplikacje webowe z zalozenia nie maja takich potrzeb? W koncu i tak pewnie aplikacja jest ograniczona dostepem do bazy i czytaniem / pisaniem IO.

Pytanie moje wynika z tego ze chce sie nauczyc Pythona (w sensie tak porzadnie aby moc powiedziec o sobie ze go dobrze znam, a mam wysokie wymagania) i mysle sobie ze nawet przesiac sie z tego w czym teraz dlubie - progamowanie w Javie (EE), na temat ktorej sie nie wypowiem bo po prostu nie chce przeklinac. Czy to ma przyszlosc, teraz, kiedy coraz wiecej prockow / core wbudowywanych jest w nasze telefony (!), a Intel costam przebakiwal o 1000 prockow w kompie? Czy lepiej uznac Pythona jako zabawke i jednak uczyc sie innych jezykow? Np. Scala [#]_, groovy czy inne cuda (Clojure wyglada ladnie no i to jest LISP, Erlang, Ruby?). Tego Pythona i tak jeszcze podraze bo mi sie bardzo podoba, wrecz jestem zakochany, i na pewno sie przyda, i pewnie ulatwi nauke innych jezykow.

Prosilbym o opinie.

.. [#] Tak, wiem ze mozna to wylaczyc jak sie pisze kod w C, ale nie o tym mowa poniewaz czasami to nie wchodzi w gre. Chodzi mi o czystego Pythona.
.. [#] Tak, wiem ze to chodzi na JVM. Mowiac ze nienawidze Javy mam na mysli ten durny i ograniczajacy jezyk, gowna (ekhm, no nie dalo sie uciec) pokroju EJB, JPA i inne badziewia. Sama JVM jako platforma wydaje mi sie calkiem atrakcyjna. Np. taki Jython na niej nie ma problemu z GIL, ma 'prawdziwy' GC a nie jakiestam liczenie referencji, ale w tej chwili to tylko wersja 2.5.x, maja jakies przymiarki do 3, ale nawet ta 2.5 jest bez baterii - np. nie mozna uruchomic na tym Mercuriala i dlugo nie bedzie mozna, chociaz Django chodzi. Nie wiem jak Pylons czy inne.