(Iron)Python - materiały
W ostatni czwartek miałem przyjemność zaprezentować na Warszawskiej Grupie .NET zalety, jakie daje wykorzystanie w codziennej pracy języków dynamicznych, w szczególności Pythona i IronPythona. Przy okazji porządków w notatkach zamieszczam poniżej zbiór linków, które pozwolą zainteresowanym w poszerzeniu wiedzy:
Jak zacząć?
- Pobrać środowisko uruchomieniowe z https://www.python.org/. Dobre choćby jako podstawa do wszelkich tutoriali, dokumentacja oraz zbiór standardowych bibliotek (modułów).
- Do eksperymentów na platformie Windows przydadzą się napewno odpowiednie rozszerzenia oraz IronPython.
- W zrozumieniu składni oraz podstaw pracy z językiem oprócz standardowego tutoriala polecam rzut okiem na klasyczną już pozycję - Dive into Python.
Środowisko pracy
- Jeśli okaże się, że do codziennej pracy nie wystarczają standardowe narzędzia do edycji, warto przyjrzeć się innym, darmowym alternatywom - SPE lub PyDev (wtyczka do Eclipse).
- Jeśli zależy nam na bardziej wydajnej pracy, polecam jedno ze środowisk komercyjnych. Zarówno WingIDE jak i Komodo oferuje zintegrowany debugger, pracę w środowisku projektowym wraz z integracją z systemami do kontroli wersji oraz wiele innych usprawnień.
- Jeśli koncentrujemy swoje wysiłki na pracy z IronPythonem, jedynym słusznym wyborem jest (darmowa) wtyczka do Visual Studio 2008, dystrybuowana w ramach SDK. Niestety wyklucza to wykorzystanie wersji Express.
Aplikacje i ciekawostki
- Django - najbardziej chyba popularny framework do szybkiego tworzenia aplikacji WWW z uwzględnieniem wzorca MVC. Warto też zobaczyć jego konkurencję - TurboGears oraz Pylons.
- Zope - historycznie pierwsze, duże, monolityczne środowisko aplikacyjne, interesujące głównie ze względu na tak egzotyczne pomysły, jak w pełni obiektowa baza danych. Zope stał się bazą dla wielu produktów CMS, choćby popularnego w środowisku open source Plone.
- CherryPy - lekki, bardzo elastyczny serwer WWW, nadający się świetnie jako podstawa do własnych eksperymentów.
- SQLAlchemy oraz SQLObject to dwa najbardziej znane rozwiązania do mapowania obiektowo-relacyjnego.
- TwistedMatrix - bardzo ciekawy zbiór bibliotek do pisania aplikacji usługowych - ciekawe podejście do pisania aplikacji wielowątkowych (bez użycia tradycyjnych wątków), wsparcie dla większości popularnych protokołów sieciowych i wiele innych ciekawych elementów.
Python, .NET i DLR
- IronPython stawiany jest jako przykład integracji języków dynamicznych z resztą platformy .NET. Żywym przykładem może być wykorzystanie tego języka do tworzenia aplikacji ASP.NET.
- DLR kojarzony jest przede wszystkim z technologią Silverlight. Część przykładów dostępnych jest w związku z tym na Silverlight Showcase, nieco więcej zobaczyć można w ramach projektu na CodePlex. Uwaga: te ostatnie niestety nie współpracują domyślnie z najnowszą wersją wtyczki (1.1 alfa). Wystarczy natomiast prosta korekta, poprzez modyfikację pliku
CreateSilverlight.js
i zmianę parametruVersion
na1.1
. Jeśli kłopoty nie ustąpią, polecam aktualizację samej biblioteki (plikSilverlight.js
) do najnowszej, dostępnej choćby w ramach Silverlight 1.1 SDK.
Comments
Anonymous
February 03, 2008
PingBack from http://msdnrss.thecoderblogs.com/2008/02/04/ironpython-materialy/Anonymous
February 03, 2008
PingBack from http://msdnrss.thecoderblogs.com/2008/02/04/ironpython-materialy-2/Anonymous
February 04, 2008
Jak się mają te frameworki Pythonowe (Django, Zope, itd) do .NET Framework? Czy da się w nich wykorzystać .NET Framework i IronPython? IronPython wymaga środowiska uruchomieniowego Pythona u spodu? Twój wpis sugeruje, że tak poprzez "jak zacząć". Pytam, bo słabo znam dynamiczne języki (Ruby i Python) i zastanawiam się dlaczego warto się nimi zainteresować w porównaniu z innymi dostępnymi opcjami. Piszesz głównie w kontekście aplikacji WWW. Jesteś w stanie podać powody, dla których zamiast tradycyjnego ASP.Net z VB.Net/C# warto zainteresować się Pythonem? Jak w przypadku innego rodzaju projektów?Anonymous
February 04, 2008
- Wskazane frameworki typu Django czy Zope dotyczą oczywiście znacznie węższej dziedziny niż cały .NET, bo wyłącznie aplikacji WWW. Nie słyszałem o eksperymentach, związanych z ich uruchomieniem poprzez interpreter IP - co nie znaczy oczywiście, że nie będzie to możliwe. Każdy z tych produktów traktowałbym jednak niezależnie - osobiście nie widzę realnych korzyści z wykorzystania w ramach jednego projektu kilku frameworków na raz. Samo porównanie ich nie wydaje się mieć sensu - poza wiele mówiącym słowem "framework" niewiele ich łączy ;) (w szczególności uwzględniając jeszcze Zope 3).
- IP dystrybuowany jest w całkowicie niezależnej paczce. Instalacja tradycyjnego cpythona może być jednakże przydatna, jeśli zależy nam na dostępie do standardowych bibliotek. IP jest ich (z całą świadomością autora) pozbawiony.
- Uważam, że warto interesować się, a przynajmniej śledzić również inne (poza "tradycyjnym ASP.NET") rozwiązania, ponieważ innowacja pojawia się w różnych miejscach - coś, czym za chwilę będzie żył świat ASP.NET, czyli MVC można było posmakować już ładnych kilka lat temu. Takie podejście wymusza też (przynajmniej w moim przypadku) bardziej krytyczne podejście do codziennej pracy.
- Na prezentacji wspominałem o różnych naturalnych zastosowaniach języków dynamicznych. Fakt, że większość z nich dotyczy WWW świadczy raczej o dużej aktywności tej branży. Sam tworzyłem w językach dynamicznych też aplikacje okienkowe (tu doskwierał mi brak sensownego IDE do "wyklikiwania" formatek), serwery komunikacyjne (z tym z kolei nie było problemu) czy czy całą masę podręcznych narzędzi. Podstawową wartością był i pozostaje fun factor. Tylko i aż tyle.