Share via


(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ę parametru Version na 1.1. Jeśli kłopoty nie ustąpią, polecam aktualizację samej biblioteki (plik Silverlight.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

  1. 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).
  2. 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.
  3. 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.
  4. 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.