<em>Mono</em>tematycznie o monopolu, grupie i nagłych oświeceniach



[ozdobnik]

_phantom_ poprosił mnie ostatnio o wyrażenie opinii o poniższym ,,ostrzeżeniu'' wystosowanym przez Microsoft:

--ciach-z-ln.pl--
Mono 1.0.4

Firma Novell wydała stabilną wersję platformy Mono oznaczoną numerem
1.0.4 oraz wersję rozwojową o numerze 1.1.2. Jednocześnie
przedstawiciele Microsoftu oświadczyli, że nie zamierzają wspierać w
żaden sposób projektu, a jako że firma nie udzieliła żadnej licencji na
wykorzystanie platformu .NET ani Novell-owi ani firmie Ximian uznaje
Mono jako próbę nielegalnego odtworzenia swojej platformy. Jest to
równoznaczne z ostrzeżeniem dla programistów przed stosowaniem jej w
poważnych komercyjnych zastosowaniach.
--ciach--

Czy jest się czym przejmować? Moim zdaniem -- nie.

Microsoft dba o swoją markę. Jest to sprawa oczywista, każda firma tak robi. W przypadku MS potrafi to przybierać formy wymuszania sposobu w jaki się wysławiamy -- wg. official naming guidelines nie wolno w artykule, eseju czy rozmowie użyć wyrażenia ,,Windows'', ,,Windowsy'' czy ,,Okienka'' na określenie platformy bądź systemu operacyjnego autorstwa MS. Jedynym prawidłowym określeniem jest pełna nazwa, tj. ,,System Operacyjmy Microsoft Windows'' z odpowiednio dużą ilością znaczków ® pomiędzy wyrazami.

Abstrahując od tych wysiłków, nie należy zapominać, że .NET jest oczkiem w głowie Microsoftu. I jako platforma na której ma działać wszelkie oprogramowanie -- musi być absolutnie bez zarzutu. Nie dziwi więc odcięcie się MS od Mono, które jest całkowicie poza jego kontrolą. Korporacja z Redmond nie może więc w żaden sposób zapewnić bezbłędnego i stabilnego działania nie swojego produktu. A taki projekt ,,podszywający'' się pod .NET może zagrozić ,,marce'' Microsoftu.

Sytuacja tutaj podobna jest do Sunowskiej Javy, jedyna różnica jest taka, że Sun certyfikuje maszyny wirtualne pochodzące z innych źródeł. Gdyby MS nie dążył do całkowitej dominacji na rynku, to pewnie również wprowadziłby tak± certyfikację dla innych, mając możliwość a) zgarnięcia taczki $$$ za każdy certyfikat; b) nie wydania certyfikatu projektom wykazującym najdrobniejsze odchylenie, a tym samym szkodzące wizerunkowi platformy .NET.

Ostrzeżenie więc jest jedynie sposobem na powiedzenie ,,to nie jest .NET jaki promujemy, nie możemy dawać na niego żadnych gwarancji'' w stosunku do Mono czy też dotGNU.

Co do rzekomej nielegalności -- nie widzę problemu. Reverse engineering dla zachowania kompatybilności dozwolony jest nawet w USA, a Mono z reverse engineeringiem nie ma nic wspólnego. Jest jedynie implementacją standardów ECMA 334 i ECMA 335 oraz odtworzeniem działania funkcji na podstawie dokumentacji. Dwadzieścia lat temu robił to Stallman, w zeszłym wieku zaczęło to robić Wine, zrobiło to GNU w stosunku do Javy i nikt nie może tego zabronić, bo nie jest to nielegalne. To nie jest dekompilacja. Nawiasem mówiąc, w książce, z której ostatnio się uczyłem, w rozdziale o dekompilacji jest tłustym drukiem i w ramce napisane, że jeśli kiedykolwiek zdisasemblujesz choć kawałek Microsoftowego .NETu -- możesz na zawsze pożegnać się z wprowadzaniem choćby najmniejszych zmian w Mono. Projekt Ximiana/Novella jest całkowicie ,,clean room implementation''.


Pozostając w temacie -- niedawno minął rok od kiedy zapisałem się do lokalnej Grupy Marketingowej^Werrm, Grupy .NET na mojej uczelni. Chociaż uczelnia akurat ma w to zerowy wkład i nie powinna być tu wymieniana, bo jeszcze ktoś pomyśli, że to jej zasługa.

No więc minął rok a ja dopiero teraz wymyśliłem program, który byłby mi potrzebny i który mógłbym napisać na .NET. Złożyła się na to między innymi moja przeprowadzka i konieczność jeżdżenia na zajęcia komunikacją miejską, do tego z przesiadką. Mając do dyspozycji parę tramwajów i dwa razy tyle autobusów, które wcale tak często nie jeżdż±, wielokrotnie muszę decydować -- czy poczekać na kolejny tramwaj, czy przejść parędziesiąt metrów na przystanek autobusowy. Rozkłady jazdy moge sobie podrukować, ale co to za przyjemność przeglądać kilka kartek, pamiętać poszczególne godziny odjazdów i szukać tego, co najwcześniej?

I tu właśnie pojawia się zadania dla komputera -- skoro ,,elektrotechniczne maszyny obliczeniowe'' lubuj± się w numerkach i cyferkach, to niech one przeglądają te rozkłady i informują mnie o wynikach. I to właśnie robi mój prościutki program:

[Odjazdy autobusow by zdzichu]

Zrobienie całości nie zajęło nawet jednej nocy. Zanim pojawi się na stronie Grupy, muszę jeszcze nad nim posiedzieć. Najważniejsze, to skompletowanie wszystkich rozkładów jazdy, na razie jak widać mam ledwo trzy przystanki dla dwóch linii w bazie. Po drugie, muszę zrobić interfejs w ASP.NET do obsługi via WWW, ale to dużo czasu nie zajmie. Bardziej złożone będzie zrobienie UI w Windows.Forms, bo biedni windziarze nie maj± GTK# w standardzie. Mono ma w roadmapie implementację W.F zaplanowaną na Q4/2004, czyli niby-teraz-ale-jeszcze-nie. Więc GUI będzie musiało poczekać. Za to muszę przerobić backend, żeby poza PostgreSQL umiał porozumieć się jeszcze z innyi bazami (głównie MS SQL Server, ale również fajnie byłoby czerpać z pliku Accessowego -- .mdb). No i muszę znaleźc kogoś, kto sprezentuje mi palmtopa na którym da się uruchomić portable.NET, żeby program zaczął spełniać swoją funkcję asystenta. ;-)


Niedawno dokonałem odkrycia, na które inni wpadli pewnie cztery lata temu. Microsoft, dzięki pracy deweloperów Mono i dotGNU, dał środowisku Open Source/Free Software wspaniały prezent. W tej chwili jedynym argumentem przemawiającym zdecydowanie za platformą Windows we wszelkich porównaniach za i przeciw jest dostępność większej ilości specjalizowanego oprogramowania na Win. W pozostałych kwestiach wszystkie współczesne środowiska są porównywalne, ale to Windows ma wszelkie Photoshopy, 3D Studia, czy inne programy niedostępne nawet na Macintosha.

A teraz sytuacja się zmienia. Microsoft w .NET widzi przyszłość, będzie więc lobbował ISV do pisania programów na .NET. I ci ISV szybciej czy póĽniej dadzą się przekonać. Zwłaszcza, że w takim C# pisze się naprawdę przyjemnie (to mówiłem ja, programista C i asmowy, nie lubiący C++, niespecjalnie lubiący Javę, dla którego programowanie obiektowe jest nie do końca naturalne). I w momencie pojawienia się Photoshopa 9 czy 10 napisanego na .NET okaże się, że ten sam program, te same ,,windowsowe'' binarki bezproblemowo i tak samo działa na Mac OS X, Linuksach, *BSD i innych systemach -- ostatni argument upadnie. To samo oprogramowanie będzie dostępne na wszystkie platformy. ISV tworząc jeden program niejako automatycznie dostaną produkt na wiele platform. A przy wyborze systemu operacyjnego dla pozostaną tylko argumenty merytoryczne. Paradise. Enter here..

A katalizatorem do dokonania tego ,,odkrycia'' przeze mnie był ten wpis. Autor NPlot'a pewnie nawet w najdzikszych snach nie przypuszczał, że po jego ,,windowsowski'' program sięgnie użytkownik Linuksa szukający softu do rysowania wykresów. I uruchomi go niemal ,,z marszu''.


Archived comments:

da.killa 2004-11-11 19:36:22

Coś Ci sie w pliterki stało...

zdzichuBG 2004-11-11 19:40:15

Windows. Jak bede mial dostep do sieci w domu, to poprawie ten wpis.

djurban 2004-11-11 21:42:19

Etam, mono upadnie, gnome.NET poleci na pysk, kde bedzie triumfowac, czyli nic nowego :)

Morph 2005-07-10 18:20:53

Czy można skądś pobrać ten program z rozkładami ? Thx

zdzichuBG 2005-07-10 23:32:57

Można poprosić na jabberze o niego. Są jednak trzy wielkie ALE:
1) ALE ten program jest nieskończony, tj. intersujące Cię przystanki są wpisane w kodzie, nie ma możliwości konfiguracji ,,klikalnej''
2) ALE zmieniły się rozkłady jazdy w Gdańsku z okazji remontu Błędnika i nie mam aktualnych danych; które i tak były zdobywane metodą skryptowej przeróbki stronk ZKM na serie poleceń SQL co wołało o pomstę do nieba
3) ALE wciąż nie przepisałem bakcendu bazodanowego na coś uniwersalnego (ADO.NET?), czyli wciąż działa to jedynie z PostgreSQL.
Jeśli Cię to nie odstrasza, to JID masz, zagadaj, podzielę się z Tobą.

Comments


Comments powered by Disqus