Udostępnij za pośrednictwem


          

IronPython – jak zacząć?, cz. 1/2

Udostępnij na: Facebook

Autor: Bartosz Kierun

Opublikowano: 2010-11-26

Artykuł ten jest pierwszym z cyklu artykułów poświęconych językowi Python oraz wsparciu środowiska **.NET**dla dynamicznych języków programowania.

W niniejszym artykule zajmiemy się wprowadzeniem do implementacji języka Python na platformie .NET, czyli IronPythonem. Przedstawione zostaną tu podstawowe zagadnienia i komponenty pozwalające czytelnikom rozpocząć swoją przygodę z tym bardzo popularnym, dynamicznie typowanym językiem programowania.

Po zapoznaniu się z informacjami zawartymi w tym artykule będziesz:

  • potrafił skonfigurować swoje środowisko pracy tak, aby możliwe stało się programowanie w IronPythonie,
  • znał podstawowe komponenty i narzędzia umożliwiające pracę z tym właśnie językiem,
  • potrafił napisać swój pierwszy program w języku Python.

Wymagania wstępne

Pracę z IronPythonem należy rozpocząć od kilku drobnych przygotowań, które obejmują przede wszystkim instalację odpowiednich komponentów. Główna paczka instalacyjna jest całkowicie darmowa i można ją bez problemu znaleźć na witrynie portalu CodePlex, znajdującej się pod adresem www.codeplex.com/IronPython. Wymaganiami wstępnymi, które należy dodatkowo spełnić, jest obecność w systemie zainstalowanej odpowiedniej wersji środowiska. NET Framework (2.0 lub wyższa), a pracę z kodem na pewno znacznie ułatwi pakiet Visual Studio w wersji 2008 lub 2010. Warto pamiętać, że w przypadku IronPythona i wielu innych pokrewnych projektów (np. IronRuby) pieczę nad nim sprawują społeczności, co oznacza w praktyce dużo bardziej dynamiczny cykl rozwojowy.

Najnowszą wersję pakietu instalacyjnego z platformą .NET Framework 4.0 znajdziesz pod tym adresem: https://www.microsoft.com/downloads/en/details.aspx?displaylang=en&FamilyID=9cfb2d51-5ff4-4491-b0e5-b386f32c0992  i w praktyce jest to jedyny wymagany komponent niezbędny do rozpoczęcia pracy z IronPythonem. Jeżeli jednak interesują nas bardziej zaawansowane rzeczy oferowane zazwyczaj przez środowiska programistyczne, takie jak: debugger, kolorowanie składni, wizualne środowisko pracy itd., dobrze jest posiadać również zainstalowany pakiet Visual Studio. Warto nadmienić, że w IronPythonie możemy programować również w wielu innych środowiskach programistycznych, np. w bardzo popularnym darmowym edytorze SharpDevelop, dostępnym pod tym adresem: http://www.icsharpcode.net/OpenSource/SD/Default.aspx.

**Rys. 1. Witryna projektu IronPython.

Na zawartość paczki instalacyjnej składają się następujące elementy:

  • biblioteki oraz pliki wykonywalne z implementacją języka Python w środowisku .NET,
  • interaktywna konsola programistyczna,
  • komponenty integracyjne ze środowiskiem Visual Studio 2008 lub 2010.

Krótka historia IronPythona

W czasach pierwszych wersji platformy .NET Framework podejmowano wiele prób stworzenia wydajnych implementacji różnych języków programowania w środowisku uruchomieniowym CLR. Niestety, na początku wiele z nich kończyło się niepowodzeniem, a w Internecie ukazywały się krytyczne artykuły, podające w wątpliwość neutralność językową platformy .NET.

Sytuacja zmieniła się znacząco na korzyść flagowej platformy programistycznej firmy Microsoft, kiedy za próbę stworzenia implementacji języka Python wziął się Jim Hugunin – twórca bardzo udanej implementacji tego języka pod maszynę wirtualną Javy (Jython). W trakcie pracy nad projektem okazało się nawet, że w wielu testach wydajnościowych szybkość wykonywania się programów pod kontrolą środowiska uruchomieniowego CLR jest nawet szybsza niż w natywnej implementacji w języku C. Stało się to możliwe głównie dzięki pojawieniu się platformy .NET w wersji 2.0 wraz z mechanizmami takimi jak typy ogólne (generics) oraz szybkie delegaty (fast delegates). Dzisiaj w rozwój IronPythona zaangażowanych jest wiele osób, głównie ze społeczności związanych z językiem Python.

Wprowadzenie do języka Python

Możliwościom języka Python przyjrzymy się dokładniej i bardziej szczegółowo w późniejszych rozdziałach. Zanim zaczniemy pisać jakikolwiek kod, warto zrobić krótkie wprowadzenie. Zobaczmy zatem, dlaczego stworzono właśnie taki język programowania.

Bardzo często programiści mają do czynienia z prostymi zadaniami związanymi z automatyzacją jakiegoś zadania, które chcemy zlecić naszemu systemowi operacyjnemu, czy przeprowadzenia jakichś operacji na dużej ilości plików. Czasami jest potrzebne stworzenie prostej i bardzo wyspecjalizowanej aplikacji posiadającej już interfejs użytkownika i korzystającej z bazy danych lub komunikującej się z Internetem (np. katalog posiadanych przez nas filmów).

Dla programistów używających tradycyjnych i statycznie typowanych języków programowania – takich jak C/C++/Java czy C# – stosowanie ich do właśnie takiej kategorii aplikacji wydaje się dosyć „niewygodne”. Dzieje się tak zazwyczaj za sprawą bardzo potężnych i rozbudowanych bibliotek standardowych oraz wydłużonego cyklu tworzenia samej aplikacji, co wiąże się z koniecznością dokonywania częstych rekompilacji kodu, czy „przekopywania” się przez dokumentację w celu odnalezienia odpowiedniej klasy lub funkcji.

Jeżeli możesz podpisać się pod twierdzeniami zawartymi w powyższym akapicie, to istnieje naprawdę duża szansa, że język Python został stworzony właśnie dla Ciebie.

Python jest bardzo prostym językiem programowania o bardzo łagodnej krzywej uczenia. To jednak nie oznacza, że nie jest językiem programowania z „prawdziwego zdarzenia”. Python posiada elementy języków proceduralnych, funkcyjnych oraz obiektowych. Duża ilość elementów, takich jak elastyczne kolekcje danych, wiele zabezpieczeń przed typowymi błędami (np. wyjście poza zakres tablicy), standardowe moduły czy tzw. garbage collector, czynią go znacznie potężniejszym niż większość tradycyjnych języków skryptowych – jak Awk czy Bash, nie mówiąc już o podstawowej powłoce systemu operacyjnego Windows.

Język Python pozwala na modularyzację pisanych przez nas programów i łatwą reużywalność części ich kodu oraz funkcjonalności. Posiada pokaźną liczbę standardowych bibliotek pozwalających na łatwą obsługę systemu wejścia/wyjścia, obsługi gniazd sieciowych, manipulację tekstem czy programowanie internetowe. Natomiast dzięki integracji z platformą .NET IronPython posiada już możliwości pozwalające stworzyć nawet najbardziej wyrafinowane aplikacje i systemy.

Python jest językiem interpretowanym, co w przypadku prostych programów lub prototypów znacząco skraca czas ich tworzenia, ponieważ nie musimy dokonywać częstych rekompilacji kodu. Interpeter ponadto może być używany interaktywnie, co czyni łatwym eksperymentowanie z tworzonym programem lub samym językiem. Python może pełnić również rolę bardzo zaawanasowanego kalkulatora matematycznego z obsługą skomplikowanych wyrażeń, macierzy czy liczb zespolonych.

Programy tworzone z języku Python są zazwyczaj bardziej zwięzłe i łatwiejsze do czytania niż ich odpowiedniki napisane w języku C/C++/Java czy C# z kilku powodów:

  • łatwe w użyciu i bardzo elastyczne złożone typy danych i kolekcje,
  • grupowanie wyrażeń i bloków kodu odbywa się poprzez wcięcia kodu, a nie użycie nawiasów,
  • nie ma potrzeby deklarowania typów danych używanych przez nas zmiennych.

Warto również wspomnieć o jeszcze jednej ważnej rzeczy, a mianowicie o nazwie języka. Otóż nie pochodzi ona wcale od nazwy pewnego gada, ale od nazwy znanego chyba wszystkim programu „Latający cyrk Monthy Pythona”, więc każde nawiązanie do tego telewizyjnego show jest jak najbardziej mile widziane – co nie oznacza jednak, że tworzone przez nas programy powinny być absurdalne!