Obiecanki cacanki z Microsoftu? Otwarty .NET i nowe Mono wyglądają na licencyjne pułapki

Strona głównaObiecanki cacanki z Microsoftu? Otwarty .NET i nowe Mono wyglądają na licencyjne pułapki
08.04.2015 13:08
Obiecanki cacanki z Microsoftu? Otwarty .NET i nowe Mono wyglądają na licencyjne pułapki

Uwolnienie przez Microsoft frameworku .NET nie przebiegło do końcatak, jak się na początku tego spodziewano. Jak wiadomo, Redmondzdecydowało się wydać na wolnej licencji MIT jedynie jego specjalną,zmodularyzowaną wersję, tzw. .NETCore, wraz z zestawem niektórych narzędzi programistycznych ibibliotek. Teraz po kod ten sięgnęli twórcy Mono, otwartejimplementacji .NET Frameworka – i to mimo poważnych wątpliwościco do tego, czy faktycznie kod od Microsoftu jest tak wolny, jak sięto oficjalnie przedstawia. Czy w tej sytuacji Mono powinno zniknąć zlinuksowych dystrybucji?

Na stronie Mono o wątpliwościach związanych z licencjonowaniem nieprzeczytamy. Nic dziwnego, lider projektu, Miguel de Icaza, jest wśrodowisku Open Source uważany za sympatyka Microsoftu, a czasemwręcz za konia trojańskiego tej firmy. Nowa wersja 4.0.0 przynosijednak tyle technicznychulepszeń, że te kwestie prawne odchodzą na bok. I tak kompilatorobsługuje język C# w wersji 6.0, pojawiło się wsparcie dla32-bitowych zmiennoprzecinkowych operacji o mniejszej dokładności (aza to większej wydajności), zwiększono sprawność sprzątanianieużytków, wyrzucono wsparcie dla starszych wersji API .NETFrameworka, zmniejszono narzut debuggera – i jak jużwspomniano, wykorzystano kod wydany przez Microsoft w ramach .NETReferenceSource.

To dopiero początek wykorzystania microsoftowego kodu: deweloperzyMono zapowiadają, że w przyszłości chcą przygotować wydanie MonoCore, które będzie mogło zastąpić .NET Core w ramach nowego systemudystrybucji bibliotek dla modularnego .NET-u, wykorzystując kodudostępniany nie tylko w ReferenceSource, ale też w CoreFX i CoreCLR.W teorii powinno to zapewnić same korzyści, na czele z większąkompatybilnością, ułatwiając uruchamianie kodu .NET w systemachuniksowych. Łatwość wykorzystania C# na Linuksie, OS X i BSD, jakąprzynosi Mono, mogłaby odwrócić uwagę od takich języków jak Rust czyGo, czyniąc go nie tylko prawdopodobnie najlepszym językiem ogólnegozastosowania, ale też językiem najbardziej uniwersalnym. Dziękiwbudowanemu w Mono toolkitowi Xwtmożna bowiem pisać i utrzymywać jeden kod, z którego powstanąaplikacje równie dobrze działające na Windows (przez WindowsPresentation Foundation), co i na Maku (Cocoa) czy Linuksie (Gtk).

Czy jednak na pewno korzystanie z darów Microsoftu jest takbezpieczne? Ciekawą analizę warunków, na których Microsoft udostępniłswój kod, przeprowadzili członkowie niemieckiego IfrOSS (Institut fürRechtsfragen der Freien und Open Source Software), Liu Qihao i CiaranO'Riordan. Nie zaufali obietnicom firmy z Redmond, lecz pamiętając ohistorii ataków patentowych zwróconych przeciwko wolnemuoprogramowaniu zdecydowalisię przyjrzeć szczegółom, w których wiadomo, co może tkwić.

Nam obietnice nie wystarczają, wam muszą wystarczyć

Formalnie uwolniony kod .NET wydany został na licencji MIT, jednejz najbardziej liberalnych licencji otwartego oprogramowania.Towarzyszy mu jednak oddzielna „obietnica patentowa”,zawarta w pliku PATENTS.TXTopublikowanym w repozytorium na GitHubie, wprowadzająca istotneograniczenia. Najważniejszym z nich jest to, że gwarancjabezpieczeństwa patentowego dana jest wyłącznie na kod źródłowy będącyalbo częścią .NET Runtime, albo częścią aplikacji zaprojektowanej podkątem uruchamiania na .NET Runtime. Jeśli więc ktoś przeniesieaplikację z .NET np. na Javę czy Pythona, obietnica automatycznieprzestaje obowiązywać.

Co więcej, obietnica jest ważna jedynie dla zgodnychimplementacji, zawierających wszystkie wymagane w standardziekomponenty. Jeśli więc ktoś zrobi sobie odchudzoną wersję środowiska.NET, to i w tym wypadku obietnica przestaje obowiązywać. Liu iO'Riordan zauważają, że to samo dotyczy wszystkich prób stworzeniazgodnych implementacji, które będą miały po drodze przecież wielepublicznie dostępnych wersji beta, jeszcze przecież niekompletnych –a więc i w tym wypadku obietnica by nieobowiązywała.

Samo zaś włączenie się w prace nad otwartym kodem, wykorzystującymźródła Microsoftu wiąże się z obowiązkiem podpisania umowy .NETContributor Licensing Agreement, na mocy której Fundacja .NETotrzymuje wszystkie niezbędne prawa do tworzenia wolnych i niewolnychodmian kodu, a co gorsze, przenosi na twórcę spore ryzyko prawne,związane z odpowiedzialnością za własność intelektualną i prawem dootrzymania zgody na wykorzystanie patentów.

Największe wątpliwości budzi jednak samo istnienie tej obietnicypatentowej. W licencji MIT nie ma ani słowa o zgodzie na dodatkowychwarunkach praw autorskich, mówi się wyłącznie o bezwarunkowejzgodzie. Programista sięgający po kod Microsoftu już otrzymał na mocylicencji MIT zgodę na jego wykorzystanie i modyfikowanie, niepowinien potrzebować dodatkowej obietnicy, że nie zostanie pozwany zatakie działania. Członkowie IfrOSS zauważają, że sam Microsoft, gdychce uzyskać gwarancje, że nie zostanie oskarżony o naruszeniepatentów, nigdy na żadne „obietnice” się nie zgadza –żąda udzielenia bezwarunkowych licencji. W tej sytuacji udostępnionyprzez Microsoft kod po prostu nie spełnia definicjiOpen Source, mimo że do tej właśnie definicji Microsoftbezpośrednio linkuje, wielokrotniepodkreślając, że udostępniony kod jest wydany na warunkach OpenSource.

W tej sytuacji korzystanie w swoich projektach zarówno z .NET Corejak i nowego Mono może wiązać się z ryzykiem prawnym, zależnym odsystemu prawnego w ramach którego działa programista, wystarczającegojednak, by postawić pod znakiem zapytania wartość korzystania ześwietnego przecież C# na otwartych platformach software'owych.

Programy

Aktualizacje
Aktualizacje
Nowości
Oceń jakość naszego artykułuTwoja opinia pozwala nam tworzyć lepsze treści.
Udostępnij:
Wybrane dla Ciebie
Komentarze (51)