M# jednak nie powstanie
Według wpisu na blogu jednego z programistów pracujących nad projektem Microsoftu, napisania nowego języka M#, projekt został zamknięty.
Rok temu opisano na DP pomysł Microsoftu na stworzenie nowego języka programowania nazwanego M#. Od samego początku cel tego projektu, jaki przedstawiano oficjalnie, wydawał się mało realistyczny. Brzmiało to jak fantazja: język prosty w użyciu jak języki dynamiczne, ale typowany i z zarządzaną pamięcią, przy tym szybki jak C++. Ciekaw jestem czy pierwotne doniesienia były wytworem wyobraźni projektantów, czy może przemawiali do nas marketingowcy, którzy postanowili przy okazji poprawić na kredyt wizerunek firmy. Stawianie sobie trudnych celów do realizacji jest godne pochwały, ale gdy zaczyna się mijać z realną oceną możliwości staje się śmieszne. Ze wspomnianego wpisu na blogu można wywnioskować, że raczej sami inżynierowie pracujący nad projektem mieli zupełnie realistyczne podejście, chociaż mogli nie wyprowadzać z błędu ich kolegów z innych działów. Projekt jak pisze bloger przyniósł zarówno duże sukcesy w jednych dziedzinach jak i spektakularne porażki w innych. Jednak gdyby patrzeć na projekt z punktu widzenia przedstawianego oficjalnie, to trzeba by to ocenić jako wielką porażkę. Sam programista pisze, że był to projekt wyłącznie badawczy, a wyniki tych badań będą wprowadzone do nowej wersji 7 języka C#. Większość programistów pracujących nad M# przeszło już do pracy nad C#. Nowe cechy jakie pojawią się w tym języku mogą być bardzo interesujące.
Pamiętajmy jednak o tym, że według pierwotnych zapowiedzi, M# miał być ratunkiem dla projektu Midori, czyli nowego jądra systemu operacyjnego napisanego w C#, a wywodzącego się od Singularity. Można się domyślać, że dla tego projektu koniec nadziei na M# jest totalną katastrofą. System ten działa zbyt wolno i nie nadaje się w takim stanie jakim jest do użytku w żadnym realnym urządzeniu. Nowy język, mając składnie podobną do C#, miał pozwolić na przyspieszenie działania jądra napisanego w projekcie Midori. Czyżby więc zostanie on skasowany? Nie jest to pierwszy i pewnie nie ostatni taki projekt, a na końcu albo znowu inżynierowie Microsoftu będą musieli reformować niereformowalne obecnie używane jądro, albo może uda się się gdzieś kupić jakieś jądro tak jak kupiono NT.
Wracając jednak do idei języka doskonałego, czyli prostszego w użyciu niż C/C++, a przy tym równie wydajnego pozostanie pytanie, czy Microsoft nie powinien pójść w tym samym kierunku, w którym poszli projektanci języka Vala. Ma ona sporo mankamentów, jak chociażby problemy z różnorodnymi typami danych jako, że zachowując kompatybilność z C i operując na bibliotekach tego języka musi umieć obsłużyć każdy typ występujący w C. Nie ma też prawdziwego Garbage Collectora, a jedynie proste zliczanie referencji. Jednak jej składnia jest zbliżona do C#, a przy tym wydajność do C++. Dysponując większą ilością czasu i programistów, a przy tym zrywając z zależnością od języka C, być może Microsoft były w stanie zrobić z tego coś sensownego. A przynajmniej być może dałoby się przepisać na ten język Midori i zakończyć z sukcesem projekt, tworząc nową rodzinę systemów operacyjnych.
Pytanie czy jest sens pisać jądro systemu operacyjnego w języku innym niż C/C++? (W końcu istnieje wiele języków, łatwiejszych w użyciu od C++, a przy tym niewiele wolniejszych). I czy fakt, że Microsoft zamiast pisać nowe jądro w sprawdzonej technologii szuka łatwego rozwiązania, nie wymagającego dużych nakładów, nie jest przypadkiem oznaką słabości firmy? Czy ktokolwiek jest w stanie napisać nowe, komercyjne jądro systemu, mogące konkurować z darmowym Linuksem lub jądrami z rodziny BSD? Coś mi się wydaje, że nie dowiemy się o tym. Bo jeśli Microsoft sam nie napisze takiego jądra, to raczej nie znajdzie się nikt inny. Przykładowo gdyby w takim Samsungu ktoś wpadł na pomysł by napisać własny system od podstaw, nie opierając się na gotowym i darmowym Linuksie to pewnie zarządzający firmą wysłali by go na leczenie ;)