Best web framework for python
Swoją przygodę z programowaniem webowym zaczynałem oczywiście z PHP. Jak każdy wie, jest to najbardziej bałaganiarski język z możliwych:) Pozwala na prawie wszystko. Oczywiście da się w nim coś konkretnego i eleganckiego wyklepać lecz jest do dość trudne i wymaga mocnego pilnowania siebie i swoich współpracowników. A zmiany w aplikacjach napisanych przez kreatywnych “programistów” są niemal samobójstwem.
Los skierował mnie w stronę Pythona. Pierwszym poznanym frameworkiem był CherryPy. Był to koniec CP1 i sam początek CP2. CP jest bardzo ciekawe i co najważniejsze bardzo proste. Bardzo łatwo ogranąć kod i wiadomo co i gdzie się dzieje. Niestety koderom CP trochę brakuje rozwagi i potrafią zmieniać różne rzeczy bez powiadomienia i bez większej zmiany numerka wersji. Tak było np. z obsługą forków. Cały czas była wzmianka o tym w dokumentacji lecz wcieło kod to obsługujący. Pytaliśmy się lidera projektu i się dowiedzieliśmy, że nie będą tego obsługiwać. Duży projekt musieliśmy zamrozić w danej wersji CP. Naszczęscie najważniejsze zmiany mogliśmy sami nanosić. Przy okazji mogliśmy pooglądać miejsca gdzie ktoś zapomniał dopisać kodu.
Następnym frameworkiem był Webware. Stary, poczciwy kawałek kodu napisany dawno temu i już chyba zapomniany (aczkolwiek webware jest ciągle rozwijany). Niestety dokumentacja nie jest najlepsza i ciężko się w niej szuka informacji. Doszedłem jednak do wniosku, że nie jest zbyt nowoczesny i elastyczny. Poszedłem dalej:)
Zastanawiałem się nad Spyce, lecz jest trochę przekombinowany. Próbuje naśladować php’a i udaje się to przynajmniej przy błedach. Potem był Myghty. Podobno dobrze dopracowany i bardzo szybki lecz mało (jak dla mnie) intuicyjny i wzorowany na frameworku Perlowym. TurboGears jet oparty na CP więc odpadł od razu.
Oczywiście obserwowałem Zopa lecz nie mogłem doj do wniosku czy wchodzić w Zopa2 czy w Zopa3. Trójka ma mało gotowych produktów, nie jest tak popularna i ma skromną dokumentację. Na Zopa Dwa szkoda mi było czasu.
Dochodzimy do “współczesności”. Obecnie chyba najwiekszą popularnością cieszy się Django. Podchodziłem do tego frameworku lecz jak musiałem zacząć projekt, w Django zaczęła się mocna przebudowa “magic removal” więc się nie odważyłem kontynuować w tamtym momencie. Ponadto wydaje mi się, że nie jest zbyt elastyczny jak na dziwne wymagania jakie spotykam.
Najciekawszym projektem jest Pylons. Jest to przykład jak z wielu zlepków istniejącego kodu może powstać bardzo ciekawy projekt. Tak naprawdę źródła sa stosunkowo małe. Pylons jest raczej klejem który integruje różne biblioteki: Routes, WebHelpers, Myghty, Baker, Paste i wycinki CP i TG. Sercem webowym jest WSGI. Deweloperzy Pylonsa są ludźmi świadomymi i często słuchają użytkowników. Wiedzą co to jest stabilność API. Oczywiście projekt nie jest pozbawiony wad i jest we wczesnym staduim rozwoju. Poczekamy, zobaczymy do czego dojdzie. Narazie się skupiam na progrmowaniu w Pylonsie. Więc dołączyłem do klanu Pylonautów:)