r   e   k   l   a   m   a
r   e   k   l   a   m   a

M#, czyli recepta na C# szybkie jak C++ i łatwe jak języki dynamiczne

Strona główna AktualnościOPROGRAMOWANIE

Myliłby się ten, kto uważałby, że w Microsofcie poza Windows świata nie widzą. Gigant z Redmond prowadzi od lat prace nad eksperymentalnymi systemami operacyjnymi, których owoce czasem znajdują zastosowanie w komercyjnych produktach firmy. Jednym z nich jest system Midori, rozwijany od 2008 roku jako następca Singularity – systemu na bazie mikrojądra o w pełni zarządzanym kodzie. Twórcy Midori postawili na współbieżne przetwarzanie danych i model bezpieczeństwa bazujący na radykalnej izolacji aplikacji, a efekty ich prac znalazły zastosowanie we frameworku .NET i wprowadzonym do Visual Studio 2010 języku F#, który znacząco ułatwiał programowanie równoległe i automatyczną paralelizację aplikacji, wprowadzając m.in. niemożliwość zmian stanów obiektu po jego utworzeniu. Schyłek znaczenia Silverlighta, mającego być idealnym środowiskiem uruchomieniowym dla aplikacji F#, pozostawił związane z Midori prace w cieniu (bo przecież to HTML5 jest najlepszym sposobem na aplikacje webowe), wygląda jednak na to, że idee zaprezentowane kilka lat temu znów wracają do łask.

Joe Duffy, architekt Microsoftu zaangażowany od lat w prace nad Midori, opublikował na łamach swojego bloga wpis poświęcony nowemu językowi programowania, którego ambitne założenia, jeśli zostaną zrealizowane, mogą znacząco wpłynąć na realia tworzenia oprogramowania w tej dekadzie.

Początkowo podział języków programowania w ich pragmatycznym wymiarze był dość oczywisty: z jednej strony mieliśmy języki o ogromnej wydajności, takie jak C czy C++, z drugiej języki zapewniające dużą produktywność, takie jak (to opinia Duffy'ego – przyp. red.) JavaScript. Pomiędzy nimi znaleźć można było C# czy Javę, zapewniające przyzwoitą wydajność i łatwość programowania. Czasy się jednak zmieniają, i szalony wyścig optymalizacji JavaScriptu doprowadził do sytuacji, w której mamy dziś całą rodzinę dynamicznie typowanych języków programowania, które wydajnością zaczęły dorównywać Javie czy C#. Z kolei samo C++, mimo rozmaitych ułatwień dla programistów, bezpieczeństwa typów dostarczać nigdy nie będzie – to język dla ludzi doświadczonych, chcących by ich kod działał jak najszybciej, nawet za cenę możliwych groźnych błędów.

Prace prowadzone w Microsofcie mają jednak przynieść bazujący na C# język programowania ogólnego zastosowania, który pogodzi ogień z wodą. Zapewni z jednej strony bezpieczną typizację i łatwość programowania, z drugiej strony wydajność kodu porównywalną z C++. Otrzymał już on nazwę M#, i z tego co pisze Duffy, będzie on zbiorem rozszerzeń dla C#, jedynie w niewielkim stopniu zrywających z kompatybilnością. Dlaczego właśnie C#? Przede wszystkim ze względu na dojrzałość tego języka, zapewniającego zarówno statyczną typizację (co było dla Microsoftu warunkiem koniecznym) jak i obecność takich konstrukcji jak delegacje, metody anonimowe czy wyrażenia lambda. Nie bez znaczenia jednak było to, że język powstaje w Microsofcie, gdzie jest wielu świetnych znawców C#, a już pewnie znacznie trudniej znaleźć tam kogoś znającego np. google'owe Go.

Analitycy są przekonani, że Microsoft idzie w dobrą stronę: Al Hilwa z IDC mówi, że w miarę jak rośnie zaawansowanie automatyzacji, jak zbliżamy się do automatycznych samochodów, sensowne jest oczekiwanie ulepszeń w automatycznej generacji kodu, ma więc też sens spodziewać się, że Microsoft będzie próbował przerzucić pomost pomiędzy produktywnością a wydajnością. Nowy język chwali też Aleks Bromfield z Google'a, który pracował wcześniej w Redmond przez kilka lat nad M#, podkreślając przede wszystkim zalety jego modelu błędów, który jest zarówno szybki, jak i bezpieczny i łatwy w użyciu – w przeciwieństwie do Javy bardziej pomaga niż przeszkadza, jego narzut też ma być niewielki.

Najlepsza wiadomość na koniec – już niebawem M# ma zostać wydany na wolnej licencji. Zanim to nastąpi, Microsoft chce dopracować kilka ostatnich szczegółów, koniecznych do wprowadzenia tego języka do kompilatora-jako-usługi Roslyn, tak by jego relacja z C# była bardziej elegancka.

r   e   k   l   a   m   a
© dobreprogramy
r   e   k   l   a   m   a
r   e   k   l   a   m   a

Komentarze

r   e   k   l   a   m   a
r   e   k   l   a   m   a
Czy wiesz, że używamy cookies (ciasteczek)? Dowiedz się więcej o celu ich używania i zmianach ustawień.
Korzystając ze strony i asystenta pobierania wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.