Marek Olejniczak

Wieloplatformowe środowiska 

i narzędzia programistyczne

Żyjemy w świecie, w którym konkurencja i różnorodność idei przyczynia się do rozwoju społecznego, kulturalnego i technicznego. Dotyczy to każdej dziedziny, również informatyki. W informatyce i programowaniu różnorodność przejawia się między innymi poprzez wielość języków programowania oraz platform programistycznych (czyli systemów operacyjnych). Ów motor napędowy postępu może stać się jego hamulcem, jeśli jedna dominująca technologia staje się tak hermetyczna, że użytkownicy są zmuszeni z takich, czy innych względów tylko z niej korzystać. W programowaniu owa szkodliwa hermetyzacja sprowadza się do zmuszania użytkownika do używania określonej platformy systemowej i określonego systemu operacyjnego tylko z tego powodu, że istniejące oprogramowanie dostępne jest tylko na tę jedną "słuszną" platformę.

Użytkownik stosuje określony program po to, aby zrealizować konkretne zadanie: napisać tekst, wykonać obliczenia, przygotować prezentację multimedialną. Tak długo, dopóki jakość funkcjonowania programu użytkowego nie zależy od środowiska, w którym się ten program wykonuje, dla użytkownika tego narzędzia jest całkowicie obojętne, czy ów program wykona się działając pod kontrolą systemu operacyjnego Windows, Linux, FreeBSD, czy Solaris. Przecież system operacyjny i platforma sprzętowa stanowią jedynie środowisko, w którym wykonuje się program i same w sobie, w oderwaniu od oprogramowania użytkowego, są bezużyteczne.

Na początek trochę filozofii

Większość firm produkujących oprogramowanie, poza kilkoma niechlubnymi wyjątkami, stosuje politykę udostępniania swojego oprogramowania dla różnych platform systemowych. Daje to użytkownikowi swobodę decyzji w zakresie doboru odpowiedniego środowiska pracy.

Inaczej się dzieje w sytuacji, gdy użytkownik zmuszony zostaje do zakupu określonego systemu operacyjnego tylko z tego powodu, że na tę właśnie platformę istnieje potrzebne mu oprogramowanie. Być może ów program jest mu potrzebny do wykonania określonego zadania jedynie raz w miesiącu lub rzadziej. I aby wykonać tę pracę, musi zakupić oddzielny komputer wraz z określonym systemem operacyjnym tylko dlatego, że firma dostarczająca potrzebne mu oprogramowanie nie chce lub nie potrafi przenieść tej aplikacji na inną platformę. Tego typu podejście niektórych firm jest szkodliwe i powinno być tępione, gdyż stanowi hamulec w rozwoju oprogramowania i bije użytkowników końcowych po kieszeni. W przypadku pojawienia się pytań o przyczynę niedostępności określonego programu na inną platformę, często pojawia się argument mówiący o niskiej popularności lub mniejszym rozpowszechnieniu tejże platformy. Jest to jednak argument całkowicie chybiony, gdyż dana platforma jest popularna nie sama z siebie, lecz z powodu dostępności na nią określonego oprogramowania użytkowego. Tworząc oprogramowanie na określoną tylko platformę, firma przyczynia się do powstania tak zwanego efektu "kuli śnieżnej": ponieważ na daną platformę jest oprogramowanie, to ta platforma staje się z konieczności bardziej popularna niż inna, co z kolei powoduje, że inne firmy programistyczne tworzą oprogramowanie tylko na tę "popularną" platformę, co pogłębia jeszcze bardziej ten efekt. Tym samym popularność danego środowiska jest często spowodowana nie tyle jego jakością, co dostępnością oprogramowania działającego w tym środowisku.

Ten stan rzeczy spowodowany może być wieloma przyczynami:

W tym artykule chciałbym pokazać, że tworzenie oprogramowania funkcjonującego na wielu platformach, pod kontrolą wielu systemów operacyjnych, jest możliwe bez jakichklowiek nakładów finansowych i czasowych. Obecnie dostępne są takie narzędzia i środowiska programistyczne, które pozwalają przenosić oprogramowanie między różnymi systemami operacyjnymi praktycznie bez wprowadzania jakichkolwiek zmian w kodzie programu. Dostępne obecnie technologie powodują, że tłumaczenie o niemożności dostarczenia oprogramowania funkcjonującego pod różnymi systemami operacyjnymi staje się wymówką świadczącą o niewiedzy lub chęci utrzymania monopolistycznej pozycji na rynku.

Jak można tworzyć oprogramowanie wieloplatformowe?

Mottem, które będzie nam przyświecać, niech będzie sentencja zaczerpnięta ze strony domowej projektu FOX, która brzmi: "Write Once, Compile Anywhere", co w wolnym przekładzie oznacza "Napisz program jeden raz, a następnie skompiluj go pod dowolnym systemem operacyjnym". Obecnie dostępnych jest wiele narzędzi umożliwiających wcielenie w życie tego hasła. Można je podzielić na następujące grupy:
  1. Wieloplatformowe biblioteki umożliwiające tworzenie kodu binarnego funkcjonującego na wielu platformach, bez potrzeby wprowadzania zmian w kodzie źródłowym programu. Istotnym elementem całości jest wieloplatformowy kompilator, który potrafi wytworzyć binaria dla różnych platform bez konieczności wprowadzania znaczących zmian w opisie projektu (np. pliku Makefile). Niezwykle poszukiwaną grupą tego typu narzędzi są kompilatory skrośne (ang. cross compilators), które pozwalają utworzyć kod wynikowy dla innej platformy, niż ta, na której kompilator działa. Na przykład, programista może pod Linuksem utworzyć binaria dla platformy Windows.
  2. Wieloplatformowe narzędzia GUI (Graphics User Interface), które umożliwiają utworzenie interfejsu użytkownika łatwego do przeniesienia między różnymi platformami sprzętowo-programowymi.
  3. Wieloplatformowe narzędzia IDE (Integrated Development Environment) oraz RAD (Rapid Application Development) umożliwiające przyspieszenie procesu projektowania oprogramowania. Dzięki wieloplatformowości zespół programistów w procesie tworzenia oprogramowania nie jest przywiązany do konkretnej platformy programowo-sprzętowej. Efekt końcowy ich pracy może zostać w łatwy sposób przeniesiony na dowolną platformę docelową. Narzędzia tego typu pozwalają optymalnie zorganizować pracę zespołu programistów, gdyż każdy z nich pracuje w ulubionym przez siebie środowisku (np. Linux, Solaris, Windows, MacOS, itd.), a cząstkowe efekty ich pracy mogą zostać zintegrowane i przeniesione na dowolną platformę docelową.
Narzędzia IDE oraz RAD nie są niezbędne do tworzenia oprogramowania wieloplatformowego, jednak znakomicie ułatwiają proces projektowania i zwiększają elastyczność pracy zespołu programistów - programiści mogą pracować na swoich ulubionych platformach.

Inną drogą do uzyskania oprogramowania funkcjonującego na różnych platformach jest zastosowanie języków interpretowanych, które nie wymagają kompilacji. Spośród wielu języków interpretowanych funkcjonujących na wielu platformach, na szczególną uwagę zasługują: Perl, Python oraz (w połączeniu z serwerem WWW Apache) bardzo popularny PHP. Języki skryptowe są mało lubiane przez programistów tworzących komercyjne aplikacje ze względu na brak możliwości ukrycia kodu źródłowego. Wprawdzie dostępne są również kompilatory wspomnianych wyżej języków interpretowanych, jednak ich popularność nie jest jeszcza zbyt duża. Na osobną uwagę zasługuje język Java, który pod wieloma względami spełnia wszystkie wymagania stawiane aplikacjom wieloplatformowym: jest kompilowany (co daje możliwość ukrycia kod źródłowego) i w zasadzie niezależny od platformy. Ten ostatni postulat nie jest spełniony w sposób doskonały, gdyż brak błędów w funkcjonowaniu aplikacji napisanych w języku Java zależy od wersji maszyny wirtualnej Javy. W praktyce oznacza to konieczność dostarczania wraz z kodem programu konkretnej maszyny wirtualnej.

wxWindows


WxWindows to wieloplatformowa biblioteka klas pozwalająca kompilować na wielu platformach programy napisane w języku C++. Przeniesienie oprogramowania na inną platformę w większości przypadków nie wymaga wprowadzania zmian w kodzie źródłowym programu lub wymagane zmiany są minimalne. Biblioteka dostarcza wspólny dla wszystkich platform interfejs API, lecz wykorzystuje rodzimy dla danej platformy graficzny interfejs użytkownika (GUI), dzięki czemu aplikacja uzyskana przy wykorzystaniu tej biblioteki zachowuje szatę graficzną typową dla danej platformy.

WxWindows wywodzi się z Intytutu Sztucznej Inteligencji Uniwersytetu w Edinburgh, gdzie został zainicjowany w 1992 roku przez Juliana Smarta. Przez wiele lat dynamicznego rozwoju osiągnął obecny stan, który pozwala tworzyć wysokiej jakości programy na platformach Unix, Linux, Windows i MacOS. Biblioteka posiada wszystkie komponenty niezbędne do utworzenia nowoczesnego interfesju użytkownika i śmiało może konkurować z produktami komercyjnymi. Na uwagę zasługuje bardzo dobra i szczegółowa dokumentacja oraz duża ilość dodatkowych narzędzi wspomagających tworzenie aplikacji. Biblioteka wxWindows posiada cechy, które wyróżniają ją spośród innych bibliotek tego typu, w tym także bibliotek i narzędzi komercyjnych. Na szczególną uwagę zasługują: wbudowana obsługa HTML poprzez wbudowane klasy, wspomaganie dla OpenGL, obsługa wirtualnych systemów plików, obsługa plików graficznych w wielu formatach, interfejs ODBC do baz danych, wielowątkowość, obsługa protokołów sieciowych (TCP/IP, HTTP, FTP, itd.), znacznie bardziej przejrzysty i efektywniejszy niż w Microsoft MFC system obsługi zdarzeń. Tworzenie aplikacji CASE ułatwione jest dzięki wbudowanej bibliotece Object Graphics Library.

WxWindows może być użyty z wieloma rodzajami kompilatorów. Pod Windows biblioteka może być używana z wolnymi (na licencji GPL) kompilatorami Cygwin oraz Mingw32, wywodzącymi się od GNU GCC, oraz z 16-bitowymi wersjami Visual C++ oraz Borland C++. W środowisku Unix wxWindows współpracuje ze wszystkimi kompilatorami C++, wykorzystującymi biblioteki graficzne GTK, Motif, Lestiff oraz OpenMotif. Ten uniwersalny pakiet umożliwia tworzenie profesjonalnych aplikacji, które mogą być kompilowane na następujących platformach:

Ponadto dostępne są pakiety osadzone na niektórych popularnych platformach. Na uwagę zasługują następujące projekty:
W odróżnieniu od większości innych wolnych i komercyjnych międzyplatformowych bibliotek, wxWindows nie zajmuje się rysowaniem grafiki na ekranie, lecz stanowi zbiór klas opakowujących rodzime widgety dla danej platformy. Dzięki temu aplikacje utworzone przy wykorzystaniu wxWindows zachowują charakterystyczny wygląd platformy na której działają.

WxWindows posiada bogaty zbiór klas umożliwiających konstruowanie złożonych programów. Z ważniejszych klas wymienić należy:

Z alfabetyczną listą wszystkich klas obsługiwanych przez poszczególne porty biblioteki wxWindows można się zapoznać pod adresem http://wxwindows.org/supported.htm (plik liczy 430 kB długości).

wxWindows pod Win95 wxWindows pod Unix/Motif wxWindows pod Linux/GTK+ wxWindows pod Linux/X11 help wxWindows pod Win9x help wxWindows pod Linuksem
Panel kontrolek wxWindows pod Win95 Panel kontrolek wxWindows pod Unix/Motif Panel kontrolek wxWindows pod Linux/GTK+ Panel kontrolek wxWindows pod Unix/X11 Okno pomocy wxWindows pod Win9x Okno pomocy wxWindows pod Linuksem

Niezwykle cenną cechą wxWindows jest możliwość kompilacji skrośnej (cross-compilation), czyli generowania kodu dla innego środowiska niż to, w którym działa kompilator. Oznacza to, że pracując np. pod Linuksem można otrzymać binaria np. dla platformy Windows. Tę zaletę docenią wszyscy programiści, którzy pracują na codzień w środowisku Unix/Linux i muszą wygenerować kod dla Windows. Więcej szczegółów na temat kompilacji skrośnej pod Linuksem można znaleźć na stronie http://wxwindows.org/technote/crosscmp.htm.

Dla programistów używających wxWindows dostępnych jest wiele narzędzi wspomagających ich pracę. W pakiecie dostępny jest edytor dialogów wspomagający tworzenie estetycznych okien dialogowych i paneli sterujących. Dostępne są także narzędzia typu RAD (Rapid Applications Development), nie będące częścią dystrybucji wxWindows, wspomagające tworzenie aplikacji przy wykorzystaniu tej biblioteki. Na uwagę zasługują następujące projekty:

Wykorzystanie wymienionych powyżej narzędzi znacznie ułatwia i przyspiesza pracę programisty. Opisane narzędzia znajdują się w ciągłym rozwoju, a w kolejnych wersjach należy spodziewać się kolejnych ulepszeń zwiększających efektywność pracy programisty.

wxDesigner wxWorkshop wxWorkshop (2) wxHatch
WxDesigner podczas pracy Konstruowanie interfejsu za pomocą wxWorkshop WxHatch ułatwia tworzenie interfejsu użytkownika

poEdit
poEdit - Edytor wersji językowych dla wxWindows

Internacjonalizacje (lokalizacje) programów napisanych przy wykorzystaniu biblioteki wxWindows łatwo przeprowadzić za pomocą programu poEdit służącego do wygodnej edycji plików .po zawierających komunikaty wyświetlane przez program.

WxWindows dla Perla i Pythona

Duża popularność oraz produkcyjna jakość kodu uzyskanego przy pomocy biblioteki wxWindows zaowocowały pojawieniem się wielu dodatkowych narzędzi i portów. Ze wspaniałych możliwości wxWindows mogą korzystać nie tylko programiści C++, lecz również miłośnicy coraz bardziej popularnych wieloplatformowych języków Perl oraz Python. Na ich potrzeby powstały projekty wxPerl oraz wxPython, które umożliwiają tworzenie graficznych interfejsów użytkownika (GUI) dla programów napisanych w Perlu oraz Pythonie.

WxPerl jest modułem Perla pozwalającym zintegrować programy napisane w Perlu z GUI wxWindows. Dzięki modułowi wxPerl (http://wxperl.sourceforge.net) można połączyć bogactwo języka Perl z mocą klas wxWindows. Na uwagę zasługuje bogata dokumentacja oraz duża ilość przykładów pokazujących sposób łączenia biblioteki wxWindows z Perlem.

WxPython (http://www.wxpython.org/) umożliwia łączenie klas C++ biblioteki wxWindows z językiem Python i funkcjonuje bez żadnych modyfikacji na platformach Unix/Linux oraz Windows. Do instalacji i funkcjonowania wymaga następujących komponentów:

Dostępne są pakiety binarne oraz źródłowe pakietu wxPython dla wszystkich platform. Dostępne są także liczne przykłady oraz szczegółowa dokumentacja.

Programiści piszący w języku Python mają do dyspozycji jeszcze jedno narzędzie o groźnie brzmiącej nazwie Boa (http://boa-constructor.sourceforge.net/). Boa jest narzędziem IDE ze zintegrowanym kreatorem graficznego interfejsu użytkownika (GUI). W swoim wyglądzie wzorowany jest na Delphi Borlanda. Wyposażony jest w debugger i zintegrowany system pomocy. Do funkcjonowania wymaga modułu wxPython w wersji 2.3.2 oraz interpretera Python. Za pomocą Boa możliwe jest szybkie i efektywne tworzenie wieloplatformowych aplikacji okienkowych w języku Python.

wxPython wxPython wxPython python debugger python IDE python - klasy
Aplikacja wxWindows C++ z osadzonym interpreterem Pythona Jedno z okien wxPython wxWindows, wxPython i wxHTML pozwalają tworzyć dynamiczne dokumenty HTML Debugger wxPython wxPython IDE Przegląd klas wxPython


Kto używa wxWindows

Jak łatwo się zorientować, biblioteka wxWindows zapewnia szerokie możliwości tworzenia nowoczesnych aplikacji okienkowych pisanych w językach C++, Python oraz Perl dla platform Unix/Linux, Windows, MacOS oraz OS/2. Bogactwo dodatkowych narzedzi i rozszerzeń powoduje, że staje się cennym narzędziem nie tylko dla programistów piszących aplikacje wieloplatformowe. O wysokiej jakości tej biblioteki świadczy szerokie grono jej użytkowników oraz pozytywne recenzje, z którymi można się zapoznać pod adresem http://wxwindows.org/users.htm. Przeważa opinia, że wxWindows przewyższa jakością wiele produktów komercyjnych, włącznie z tymi, które są uważane za wiodące na rynku oprogramowania. Użytkownicy podkreślają dużą szybkość działania aplikacji, przejrzystą konstrukcję biblioteki, łatwość programowania i brak błędów zagrażających stabilności aplikacji. Jednoznacznie stwierdza się, że wxWindows nadaje się do tworzenia złożonych projektów, od których wymaga się stabilności, niezawodności i funkcjonowania w wielu środowiskach. Biblioteka wxWindows jest używana do realizacji wielu zaawansowanych technologicznie projektów. Wśród użytkowników pakietu znaleźć można instytuty naukowo-badawcze (np. California Institute of Technology (USA), Carnegie Mellon University, Center for Naval Analyses (USA), German Research Centre for Artificial Intelligence (Niemcy), Institute of Nuclear Research of the Hungarian Academy of Sciences (Węgry), Swiss Center for Scientific Computing (Szwajcaria)), instytucje rządowe (np. NASA Glenn Research Center (USA), National Human Genome Research Institute (USA), National Defense Research Establishment (Szwecja)), firmy przemysłu elektronicznego i informatycznego (Compaq Alpha Microprocessor Development Group, Red Hat U.K. Ltd., SciTech Software, Inc. (USA), Xerox (USA), MySQL AB (Finlandia), Motorola Semiconductor, Hitachi Europe Ltd.) oraz przemysł wojskowy i lotniczy (np. Lockheed Martin (USA), Daimler-Benz Aerospace AG (Niemcy)).

W oparciu o tę bibliotekę opracowano wiele zaawansowanych projektów, z niektórymi z nich można zapoznać się na stronie domowej projektu. Biblioteka jest popularna zarówno wśród projektów komercyjnych, jak również wśród projektów Open Source. Przykładowo, w oparciu o wxWindows opracowano wieloplatformowego klienta e-mail o nazwie Mahogany (http://mahogany.sourceforge.net/), który w swej funkcjonalności odpowiada programowi MS Outlook.

mahogany mahogany po rosyjsku
Mahogany swój wygląd zawdzięcza wxWindows Dzięki wxWindows Mahogany nie ma kłopotów z językami obcymi

 

Na wxWindows świat się nie kończy

Biblioteka wxWindows zdobyła uznanie wśród wielkiej rzeszy programistów dzięki bogactwu dostępnych klas, dodatkowych narzędzi programistycznych, integracji z innymi międzyplatformowymi językami programowania oraz wysokiej jakości kodowi, który pozwala tworzyć za jej pomocą niezawodne, efektywne i efektowne oprogramowanie. Choć przez wielu programistów pakiet wxWindows uważany jest za najlepszy spośród bibliotek umożliwiających tworzenie wieloplatformowych aplikacji, to nie można zapomnieć o innych pakietach tego typu, których możliwości są porównywalne z biblioteką wxWindows. Na uwagę zasługują następujące projekty: FOX, Fast Light Toolkit (FLTK), OpenGUI dla C/C++,  GLOW (GUI dla OpenGL i Mesa) oraz bliźniacze projekty z Object Central:
FOX

FOX jest narzędziem do konstruowania graficznego interfejsu użytkownika dla programów napisanych w języku C++. Dzięki integracji z OpenGL pozwala tworzyć efektowne aplikacje 3D. Jest niezależny od platformy na której działa. Uruchamiany był z powodzeniem pod kontrolą systemów operacyjnych Linux, FreeBSD, IRIX, SGI, HP-UX, AIX, SUN Solaris, Tru64 Unix, Windows 95/98, Windows NT, Windows ME oraz Windows 2000. Ponieważ znakomita większość implementacji FOX jest niezależna od platformy, oprogramowanie utworzone za jego pomocą można bez zmian przenosić na inne platformy. Kod uzyskany za jego pomocą jest szybki i efektywny. Współpracuje z kompilatorem GNU GCC (systemy Unix) oraz kompilatorami Visual C++ 6.0, Borland C++ Builder, GNU Cygwin32, GNU Mingw32 oraz IBM VisualAge C++ (Windows). Dużą zaletą pakietu FOX jest możliwość kompilacji skrośnej, np. na platformie Linux możliwe jest uzyskanie kodu dla Windows. Więcej szczegółów na temat cross-kompilacji znajdzie czytelnik w FAQ dostępnym na stronie domowej projektu.

FOX FOX GL
FOX - okno dialogowe drukowania FOX i OpenGL

Narzędzia V

Innymi wieloplatformowymi narzędziami służącymi do projektowania aplikacji w języku C++ są wydane na bazie licencji GNU LGPL programy o nazwie V. W chwili pisania artykułu V umożliwia tworzenie aplikacji na platformach Unix/Linux (kompilator GNU GCC) oraz Windows. Na platformie Windows pakiet V współpracuje z kompilatorami Borland C++, Watcom C++ oraz VC++. Port dla OS/2 oraz Motif jest w trakcie realizacji. W skład narzędzi V z Object Central wchodzą:
Wraz z pakietem użytkownik otrzymuje liczącą ponad 150 stron dokumentację oraz przykładowe programy. Ponieważ obsługa pakietów V jest intuicyjna, to nauka tworzenia aplikacji nie powinna zająć wprawnemu programiście C++ więcej niż jeden dzień. Oprócz większości standardowych elementów spotykanych w innych tego typu narzędziach, V C++ GUI Framework umożliwia budowanie aplikacji opartych o bibliotekę OpenGL.

VIDE umożliwia efektywne opracowywanie programów w językach C/C++ oraz Java oraz dokumentacji w formacie HTML. VIDE posiada następujące funkcje:

V IDE

VIDE - V Integrated Development Environment

  • Edytor z podświetlaniem składni dla C/C++, Java, Perl, Fortran, TeX oraz HTML i wieloma innymi dodatkowymi możliwościami, jak na przykład definiowaniem własnych makr.
  • Zarządzanie projektami.
  • Obsługa kompilatorów GNU GCC oraz Borland C++ w wersji 5.5.
  • Podświetlanie błędów w kodzie źródłwoym programu.
  • Zintegrowana obsługa debuggerów gdb (dla GNU GCC) oraz jdb (dla Java).
  • Zintegrowana obsługa V GUI Framework.
  • Wspomaganie tworzenia dokumentacji w HTML.
  • Obsługa WeditRes (Windows Resource Editor), darmowego edytora zasobów dla Windows wchodzącego w skład kompilatora LCC-Win32.

VIDE znajduje się w ciągłym rozwoju i w następnych wydaniach należy oczekiwać kolejnych udogodnień. Zapowiadany jest interfejs do polecenia grep, wspomaganie systemu kontroli wersji CVS, sprawdzanie pisowni, przeglądarka klas C++ oraz interfejs do profilera GNU GCC.

GLOW

Programiści chcący tworzyć przenośne, wieloplatformowe aplikacje graficzne 3D mają do dyspozycji kilka pakietów. Na uwagę zasługuje pakiet GLOW, który jest wieloplatfromowym narzędziem służącym do budowania interaktywnych aplikacji wykorzystujących bibliotekę OpenGL lub Mesa. GLOW jest wrapperem dla pakietu GLUT (GL Utility Toolkit) i funkcjonuje na wszystkich platformach, dla których istnieją porty pakietu GLUT oraz OpenGL lub Mesa.

GLOW GLOW pod Linuksem Kalkulator
Aplikacja Mesa + GLOW pod Linuksem Aplikacja GLOW pod WindowsNT Aplikacja GLOW pod MacOS


Podsumowanie

W artykule przedstawiłem niektóry tylko aspekty tworzenia oprogramowania wieloplatformowego. Nie sposób omówić szczegółowo wszystkich pakietów, bibliotek i narzędzi wspomagających programistę w tym względzie. Przedstawione narzędzia stanowią reprezentatywną próbkę tego, czym dysponują programiści chcący w wygodny sposób tworzyć aplikacje, które łatwo można przenosić między różnymi platformami programowo-sprzętowymi. Większość z nich dostępna jest na licencji GPL lub LGPL, a więc za darmo, z dostępnym kodem źródłowym. Jakość zaprezentowanych bibliotek i oprogramowania narzędziowego w niczym nie ustępuje produktom komercyjnym i śmiało można z nich korzystać nawet w zaawansowanych technologicznie projektach komercyjnych. Mam nadzieję, że przedstawione w tym artykule wieloplatformowe narzędzia znajdą szersze zastosowanie w praktyce i powoli odejdzie w niepamięć jeszcze dziś często spotykane stwierdzenie, że "tej platformy nasze oprogramiowanie nie wspomaga".

Linki

Cygwin: http://freshmeat.net/projects/cygwin/
GNU MinGW32: http://www.mingw.org/
Dev-C++ - IDE dla Win32 oraz Linuksa (świetne narzędzie, godne oddzielnego artykułu): http://www.bloodshed.net/
OpenGUI - biblioteka C/C++: http://freshmeat.net/projects/opengui/
Open Perl IDE: http://open-perl-ide.sourceforge.net/


O autorze:

Dr inż. Marek Olejniczak zajmuje się programowaniem dla systemów Linux oraz Windows, a także sztuczną inteligencją i systemami ekspertowymi. Zajmuje się także wdrażaniem systemu operacyjnego Linux i jego administracją. W swojej pracy korzysta z Linuksa i szeroko stosuje oprogramowanie Open Source.
Z autorem można skontaktować się pod adresem e-mail: marek@olmar.poznan.pl

Powrót do strony głównej