.NET pracuje dla konkurencji
- Sylwester Lewandowski,
- 18.11.2008
Pod auspicjami Novella rozwijana jest platforma Mono, która pozwala na względnie łatwe przenoszenie aplikacji stworzonych dla .NET w środowiska Linux, Unix i MacOS.
Pod auspicjami Novella rozwijana jest platforma Mono, która pozwala na względnie łatwe przenoszenie aplikacji stworzonych dla .NET w środowiska Linux, Unix i MacOS.
Jedną z zalet platformy .NET wymienianych przez Microsoft przy wprowadzaniu jej na rynek była możliwość uruchamiania kodu aplikacji w różnych systemach operacyjnych. Jednakże koncern z Redmond przez "różne systemy operacyjne" rozumie odmiany systemu Windows. Tak naprawdę dopiero wprowadzona ostatnio na rynek platforma Mono 2.0 daje programistom wykorzystującym .NET częściową niezależność od platformy systemowej. Początki Mono są datowane na 2001 r., kiedy to Ximian ogłosił, że opracowuje platformę, która umożliwi uruchamianie kodu napisanego przy wykorzystaniu narzędzi .NET w innych, alternatywnych środowiskach. Ximian została później kupiona przez Novell i od tej pory to właśnie ta korporacja kontroluje rozwój Mono. Pierwsza jej wersja pojawiła się w 2004 r. i zawierała kompilator C#, biblioteki i przestrzenie nazw: mscorlib, System, System.Xml, System.Data, System.Web, System.Web.Services i System.Drawing.
Najnowsza wersja Mono
ankietowanych przez IDC programistów, architektów, kierowników działów IT wskazało Microsoft .NET jako platformę, na której opierają się kluczowe aplikacje w ich organizacjach.
Ale prace nad wprowadzeniem obsługi WCF i WF trwają, a ich zakończenie planowane jest na przyszły rok. Zdaniem przedstawicieli Novell, najmniejsze szanse na wsparcie przez Mono ma WPF, gdyż silną pozycję na platformach unixowych ma projekt Moonlight - odpowiednik Silverlight dla Windows. Z tym akurat można by polemizować, gdyż Sliverlight to technologia zawierająca podzbiór WPF i uruchamiana wewnątrz przeglądarki, natomiast WPF pozwala także na budowanie aplikacji "okienkowych" i zawiera między innymi rozbudowane elementy grafiki 3D działające "bezpośrednio" pod kontrolą systemu operacyjnego.
Konkurencja dla .NET i Java
Microsoft współpracuje z Novell na kilku płaszczyznach. Wymienić należy wcześniej wspomniany projekt Moonlight oraz wsparcie dla wirtualizacji za pomocą Hyper-V dla SUSE Linux. Wprawdzie Mono nie stanowi poważnej kości niezgody (choć potencjalny problem mogą stworzyć prawa patentowe), ale wydaje się, że dla Microsoftu bardziej komfortowa jest sytuacja, gdy .NET jest jednoznacznie powiązany tylko z platformą systemową Windows. Wtedy prostota tworzenia aplikacji na tej platformie połączona z naturalnym trendem do ujednolicania infrastruktury mogłaby stanowić silny argument przemawiający za migrowaniem z innych systemów operacyjnych do Windows. Siłę .NET potwierdza badanie przeprowadzone przez IDC "Mission Critical North American Application Platform Study", według którego blisko 50% ankietowanych osób (programistów, architektów, kierowników działów IT) wskazało Microsoft .NET jako platformę, na której opierają się kluczowe aplikacje w ich organizacjach.
Mono 2.0 daje szansę (przynajmniej w teorii), że ten sam kod będzie mógł działać nie tylko pod kontrolą systemów operacyjnych Microsoftu, ale również pod Solarisem, MacOS lub Linuxem. Jest to dogodna sytuacja dla programistów, bo możliwość łatwego przeniesienia aplikacji na różne systemy zwiększa potencjalny popyt bez wzrostu kosztów związanych z koniecznością modyfikacji oprogramowania. Produkty do tej pory dedykowane tylko dla Windows będą miały szansę zaistnieć w nowym obszarze rynku i dotrzeć do szerszego grona odbiorców. W takim właśnie tonie wypowiada się Miguel de Icaza mówiąc: "Rozwijając projekt Mono chcieliśmy, aby większa liczba programistów zaczęła tworzyć i oferować aplikacje przystosowane do pracy pod kontrolą Linuxa".
Oprócz tego Mono to interesująca oferta dla firm wykorzystujących zarówno systemy Windows, jak i Unix lub Linux, bo nie będą musiały one budować kompetencji w zakresie kilku platform programistycznych. Opinie użytkowników są pod tym względem bardzo pozytywne. Potwierdzają one, że popularny język C# staje się uniwersalnym standardem, a pojawienie się technologii takich jak Mono może zagrażać nie tylko Microsoftowi, ale również Javie.
Marketing i rzeczywistość
Promocja Mono 2.0 koncentruje się na podkreślaniu jej niezależności od platformy systemowej oraz łatwości przenoszenia kodu między różnymi systemami. A jednym z najczęściej zachwalanych narzędzi tego pakietu jest Migration Analyzer (MoMA), który wspomaga programistów w wykrywaniu potencjalnych problemów, jakie mogą wystąpić przy migracji kodu aplikacji z .NET na Mono. A w przypadku złożonych rozwiązań problemy z konwersją są prawie nieuniknione. Świadomość tej sytuacji mają także twórcy Mono. Według ocen prezentowanych przez Miguela de Icaza, 45% aplikacji .NET będzie działać bez problemów po migracji do Unix, Linux lub MacOS, 18% będzie wymagało niewielkich poprawek kodu, natomiast w wypadku 20% niezbędne będą bardzo poważne jego modyfikacje. Zależy od stopnia integracji aplikacji z systemem operacyjnym. Na ile te szacunki są zgodne z rzeczywistością, na razie trudno ocenić. Użytkownikom Mono 2.0 pozostaje tylko mieć nadzieję, że ich kluczowa aplikacja lub najważniejsza funkcjonalność nie znajdzie się w trakcie migracji w 20% oprogramowania powodującego problemy.