Przenośne Windows

Odkąd Microsoft uwierzył, że przeniesienie Windows na ogromny rynek urządzeń przenośnych może dać nieporównywalnie lepsze efekty niż w świecie komputerów, konsekwentnie buduje mobilną markę.

Odkąd Microsoft uwierzył, że przeniesienie Windows na ogromny rynek urządzeń przenośnych może dać nieporównywalnie lepsze efekty niż w świecie komputerów, konsekwentnie buduje mobilną markę.

Głównym - choć nie jedynym - produktem Microsoftu dla urządzeń przenośnych jest tzw. platforma Windows Mobile, zbudowana na bazie systemu Windows CE. Mobilny Windows znajduje się w szerokiej gamie urządzeń - od komputerów typu PDA, przez odtwarzacze multimedialne, po komputery sterujące produkcją i sprzęt nawigacyjny. Wszystkie odmiany Windows Mobile mają cechy wspólne i wszystkie programuje się w podobny sposób.

Podstawa to Windows CE

Windows Mobile (czy PocketPC) składa się tak naprawdę z trzech elementów - systemu operacyjnego Windows CE, platformy sprzętowej i dodatkowych aplikacji (typu Pocket Word). Podstawą rozwiązania jest Windows CE. Tworząc od zera rozwiązanie mobilne, można niemal dowolnie wybierać potrzebne komponenty systemu operacyjnego. Do każdej wersji Windows CE dołączane jest specjalne środowisko (IDE) - Platform Builder, które pozwala samodzielnie złożyć system dostosowany do danych potrzeb.

Platform Builder pozwala zbudować obraz Windows CE, przetestować go (także w emulatorze) oraz symulować pracę całego rozwiązania. Co istotne, wszystkie etapy mogą być zautomatyzowane, tak by łatwo przeprowadzać testy w różnych konfiguracjach. W nowej Windows CE w wersji 5.0 te same operacje można robić z poziomu linii poleceń, jak i z poziomu środowiska IDE.

Platform Builder jest od razu połączony z debuggerem - można podglądać stan kodu, ustawiać pułapki itp. Dzięki podłączeniu kodu źródłowego CE (jest dostępny na licencji Shared Source) można obserwować, w jaki sposób nasza aplikacja współpracuje z jądrem systemu. Warto także dodać, że Platform Builder można "konstruować" Windows CE bezpośrednio z kodu źródłowego systemu.

Takie możliwości w przypadku systemów czasu rzeczywistego (RTS) bywają pożyteczne, bowiem pozwalają dokładnie prześledzić zależności czasowe pomiędzy kluczowymi elementami rozwiązania.

Środowiska programistyczne

Platformy mobilne są szczególnym wyzwaniem dla twórców środowisk programistycznych. Przynajmniej z dwóch powodów.

Po pierwsze dysponują stosunkowo małymi zasobami, a programiści przyzwyczaili się, że pamięć i dyski są tanie, więc nie warto pisać oszczędnie. Dodatkowo urządzenia mobilne są bardziej różnorodne niż PC. W przypadku Windows Mobile mamy do czynienia z dosyć podobnymi urządzeniami - telefony, palmtopy, odtwarzacze multimedialne - ale nawet w tym przypadku programiści muszą brać pod uwagę różnice między poszczególnymi modelami.

Drugi kłopot związany jest z przenośnością - zwykle programowi dla urządzenia przenośnego towarzyszą jakieś elementy po stronie PC czy telefonu komórkowego. Tak więc język programowania/środowisko powinny obejmować dużą gamę urządzeń. Niestety, Java w przypadku PocketPC praktycznie nie jest wykorzystywana. Co prawda ponad trzy lata temu Sun opracował specjalną wersję PersonalJava, ale nie jest ona już wspierana ani rozwijana. Obsługuje głównie archaiczne Windows CE 2.11, choć można ją uruchomić też na nowszych platformach. Pojawiły się pogłoski o kolejnym projekcie Suna - "Captain America", ale nie było dużego zainteresowania platformą Javy na PocketPC. Obecnie, jeżeli ktoś chce tworzyć aplikacje w Javie dla PocketPC, musi się liczyć z tym, że dla każdego klienta należy nabyć za ok. 6 USD specjalną wersję Javy opracowaną przez IBM (J9 JVM).

Dużą popularnością cieszy się język Basic, który z uwagi na prostotę jest dosyć popularnym narzędziem. Przykładem uniwersalnego środowiska jest GBasic, który pozwala uruchomić ten sam program na tradycyjnym PC, na urządzeniu z Palm OS, PocketPC, telefonach Nokii i urządzeniach typu SIMPUTER. GBasic ma wbudowany motor bazodanowy, może wykorzystywać różne sposoby komunikacji (GPRS/WLAN itp.). Protokół komunikacyjny niestety jest zamknięty, ale producent od razu wbudował mechanizmy kompresji przyspieszające operacje.

Istnieje także wiele prostych języków skryptowych, które pozwalają pisać i kompilować aplikacje bezpośrednio na PocketPC. Można używać Scheme, kilku wersji kompilatorów C++, Perl-a (5.6 z prostym IDE). Warto wspomnieć o środowisku NSBasic - jest to kompilator, który pozwala tworzyć aplikację albo na PC, albo na PocketPC. Co ciekawe, na PocketPC dostępny jest nawet projektant formularzy, w którym można stworzyć okienka wykorzystywane przez aplikację pisaną dla PocketPC. Dzięki temu, że Microsoft udostępnił specyfikację języka C#, powstała także wersja kompilatora C#, który może działać i kompilować aplikacje bezpośrednio na PocketPC (jest to specjalna wersja DotGNU).

Tylko Mobile

Microsoft stara się wypromować nową markę - Windows Mobile. Dotychczas funkcjonowały dwie oddzielne marki - Smartphone i PocketPC. Z uwagi na niewielkie różnice pomiędzy nimi zdecydowano o pozostawieniu jednej uniwersalnej marki.