Mono 3.0

Mono 3.0

    przez -
    37 523
    Firma Xamarin ogłosiła wydanie Mono 3.0, platformy programistycznej, która została zaprojektowana do łatwego tworzenia wielosystemowych aplikacji. Pomaga ona programistom wykorzystać szeroki ekosystem kodu, bibliotek i narzędzi .NET do tworzenia i przenoszenia aplikacji na platformy Linux, Mac OS X, Apple iOS i Google Android. Owa wersja będzie również podstawą dla późniejszych wydań Mono dla Androida i MonoTouch na urządzenia Apple iOS.

    Zmiany, jakie zaszły:

    • Asynchroniczny kompilator C#
    • Ujednolicony kompilator C# dla wszystkich profili
    • 4.5 Async API Profile
    • Zintegrowano nowe stosy Microsoft Open Sourced Stacks:
      • ASP.NET MVC 4
      • ASP.NET WebPages
      • Entity Framework
      • Razor
      • System.Json
    • Wysokowydajny Garbage Collector – SGen, z wieloma udoskonaleniami wydajności i skalowalności
    • Ulepszono dużą liczbę bibliotek klasowych i uruchomieniowych

    • Tomaszczyk

      Czytałem w komentarzach, że Mono łamie licencje Microsoftu. Czy to prawda? Bo w firmie chcemy napisać aplikację pod .NET i od razu pod Mono. Czy w takim razie ma to sens? Czy lepiej wybrać inną technologię?

      • Gerard Stańczak

        mono jest często porównywane do swego rodzaju pola minowego, jako że tworzenie na nim aplikacji jest bardzo ryzykowne. (ze względu na licencje). Szczegółów nie znam aczkolwiek wiem że wiele osób odradza tworzenia aplikacji pod mono
        btw podobne pytania mozesz też zadawać na forum

      • sprae

        Całe komercyjne Unity3d się na nim opiera i nie mają problemów.

      • Eeee? Jak to? Komercyjne Unity3D? Co to jest?

      • sprae

        Silnik do tworzenia gier komputerowych. Jest całkiem popularny w świecie indie i nie tylko. http://unity3d.com/
        W 4.x podobno ma być też na Linuksa.

      • Pewnie pomylił ze środowiskiem Unity w Ubuntu ;-)

      • o_O

        Jeszcze nie mają…
        Poza tym użytkowników mono nikt ruszyć nie może.
        Po prostu projekt Mono któregoś dnia zniknie za sprawą patentów i obudzą się z ręką w nocniku, w którym już teraz znajduje się wielka śmierdząca kupa microsoftu.

      • sprae

        Tu jest spis firm, które używaja Mono i się nie boją http://www.mono-project.com/Companies_Using_Mono
        Możecie ich spytać jak się z tym czują ;-), albo samego Microsoftu.

      • Mikolajs

        Odnoszę wrażenie, że trolujesz. Tutaj piszesz, że chcesz napisać coś w C#, a niżej, że czemu nie piszą w C zamiast C# :)

        Co do pytania to IMHO jak pisze się w aplikację w .NET to nic nie przeszkadza przerobić na MONO. Jak Ci się ktoś przyczepi (a na razie nikt takiego problemu nie ma) to możesz zawsze przestać rozpowszechniać aplikację MONO.
        Pytanie tylko czy warto pisać w .NET? Jeśli pisze się specjalnie dla Windows to pewnie tak, jak chce się przede wszystkim mulitplatformowo to lepiej pewnie w QT.

        Co do niebezpieczeństwa pisania w MONO to problem dotyczy dużych firm, które mogły by w jakiś sposób zagrozić Microsoftowi w ich biznesie. Wtedy Microsoft miałby łatwego hacka na taką firmę. Nie sądzę więc abyśmy kiedykolwiek zobaczyli coś większego napisanego w C# przez Google ;)

      • sprae

        Jak już się pisze coś na miarę C++ to chyba łatwiej jest używać natywnych widoków, współdzieląc tylko model/logikę. To powszechna całkiem niezła praktyka, teraz staje się popularna za sprawą różnic na rynku mobile. Nawet Sublime jest tak napisane, Szczególnie, że dziś każdy system stara się maksymalnie optymalizować i akcelerować swoje natywne biblioteki. Wyskakując z czymś co jest do wszystkiego i robi wszystko od nowa na własną rękę jest dość dużym balastem z masą niedoróbek (ze względu na wąski wspólny mianownik wszystkich platform [syndrom Javy]).

        Ważne jest jeszcze zastosowanie. Nie opłaca się przecież wyciągać C++ do robienia widoku dla kilku formularzy.

      • o_O

        Mono nie łamie licencji. Po prostu nie ma wcale licencji na używanie wielu bzdurnych patentów microsoftu, którymi obwarowane jest C#. Po szczegóły i niepodważalne dowody zapraszam do mojego komentarza niżej.

    • veramird

      Czytałem że mono na androida deklasuje szybkością davoka. Mił może ktoś z tym styczność i dał niezależną opinię? Bo reklamy swoje a rzeczywistość swoje.

    • Trigger

      Mono jest na licencji shared source, która nie jest zgdona z wolnym oprogramowaniem oraz zabrania wykorzsytania mono do celów komercyjnych.

      • Tomaszczyk

        Dlatego dziwię się, że ludzie i wyżej wymienione firmy się tym zajmują i tworzą pod to oprogramowanie. Czemu nie piszą w C?

      • marcinsud

        Bo łatwiejsze i szybsze jest pisanie w c# niż w c

      • Mikolajs

        Nie żartuj, a czemu nie od razu w assemblerze? :)
        Każdy język jest dobry do określonych zadań, w niektórych lepiej sprawdzają się języki z maszyną wirtualną·

      • harijari

        Kto czyta nie błądzi. Niestety ktoś nie przeczytał ;) http://www.mono-project.com/FAQ:_Licensing

        Dla leniwych:
        We use four open source licenses:
        The C# compiler is dual-licensed under the MIT/X11 license and the GNU General Public License (GPL).
        The tools are released under the terms of the GNU General Public License (GPL).
        The runtime libraries are under the GNU Library GPL 2.0 (LGPL 2.0).
        The class libraries are released under the terms of the MIT X11 license.
        ASP.NET MVC, the Managed Extensibility Framework (MEF), the Dynamic Language Runtime (DLR), System.Data.Services.Client, parts of System.Numerics and ASP.NET AJAX client software are released by Microsoft under the open source Microsoft Permissive License, some of them are dual licensed also as Apache2

    • o_O

      FAQ Mono http://www.mono-project.com/FAQ:_Licensing#Patent… jawnie kłamie na temat patentów.

      Microsoft, w swoim Community Promise, pozwala rzekomo używać ich patentów do implementacji ich standardów. Owszem, ale tylko tych, które są *niezbędne* do implementacji tych standardów:

      1) Mono narusza tym samym setki (bzdurnych, ale istniejących) patentów dotyczących optymalizacji i rozszerzeń, bez których jednak Mono nie nadawałoby się do użytku.

      2) Nie wszystko w .NET i C# jest standardem ECMA, a więc Obietnica tego nie obejmuje.

      Jednym słowem: Microsoft posiada patenty, które mogą posłużyć do pozwania Mono i zniszczenia tego projektu.

      Więcej: http://www.fsf.org/news/2009-07-mscp-mono

      Dlatego nie należy *uzależniać* programów i środowiska open-source od takiej zaminowanej technologii:

      “Why free software shouldn’t depend on Mono or C#”: http://www.fsf.org/news/dont-depend-on-mono

      • o_O

        Warto także zauważyć, że Microsoft Community Promise mówi jedynie, że *Microsoft* nie pozwie nikogo za patenty konieczne do implementacji cstandardowego C#. Ale gdy Microsoft sprzeda patent, nabywca może już bez przeszkód atakować nim Mono i używające go projekty. Do realizacji tego przekrętu wystarczy microsoftowi jakaś kurewka typu SCO albo Nokia, która kupi kilka patentów i rozpocznie wojnę z otwartym oprogramowaniem opartym na Mono.

      • harijari

        > FAQ Mono http://www.mono-project.com/FAQ:_Licensing#Patent…. jawnie kłamie na temat patentów.

        Które stwierdzenia w FAQ-u są fałszywe?

      • harijari

        Żeby być dokładniejszym:
        > 1) Mono narusza tym samym setki (bzdurnych, ale istniejących) patentów dotyczących optymalizacji i rozszerzeń,
        > bez których jednak Mono nie nadawałoby się do użytku.

        Jakich konkretnie patentów, mamy może jakąś wiarygodną listę?

        2) Nie wszystko w .NET i C# jest standardem ECMA, a więc Obietnica tego nie obejmuje.
        Jednym słowem: Microsoft posiada patenty, które mogą posłużyć do pozwania Mono i zniszczenia tego projektu.

        FAQ obejmuje dużo więcej niż objaśnienia dotyczące fragmentów objętych standardem ECMA. Zignorowałeś je i nie uwzględniłeś w rozumowaniu. Dlaczego?

        Wydaje mi się, że cała hucpa z MONO zawiera zbyt wiele emocji, a za mało faktów, i ma bardziej charakter FUD-u.
        Podejrzewam że gdyby autorem .NET nie był microsoft, a np Oracle, to wszystko byłoby cacy :)

        Niestety, jak do tej pory największy proces przy podobnym projekcie (Dalvik i Google vs Oracle). Jakoś nikt nie krzyczy, by uniezależnić się od ekosystemu Javy :)

      • o_O

        FAQ nic nie objaśnia, tylko zajmuje się bzdurami najważniejszy problem podsumowując kłamliwie w jednym zdaniu.

        Obietnica microsoftu mówi jedynie, że MICROSOFT nie pozwie nikogo, kto narusza patenty KONIECZNE do implementacji STANDARDU C#

        Implementacja mono to nie tylko C#, ale także."niekonieczne" optymalizacje i rozszerzenia podpadające pod patenty ms nieobjęte już tą obietnicą.

        Microsoft moze tez sprzedac kilka patentów, a firma któraje kupi może pozywać do woli. Obietnica mówi tylko o microsofcie. Wystarczy kurewka typu SCO czy Nokia i mono wraz z całym ekosystemem jest pozamiatane.

        Wreszcie obietnica microsoftu ma wątpliwą wartośc prawną, ponieważ nie jest umową, bo nie ma w niej dwóch stron. Z jednej jest ms, a z drugiej? Reszta świata? Mogę w każde chwili oznajmić, że rozdaję swój majątek wszystkim chętnym i w każdej chwili z czegoś takiego mogę się wycofać. Żaden sąd nawet nie przyjmie sprawy przeciwko mnie.
        Wyprzedzając komentarze debili na temat podobnego rozumowania przy GPL: gdy pobierasz program na GPL akceptujesz licencję, a więc warunki umowy i stajesz się stroną. Więc możesz iśc do sądu albo sam tam trafić.
        Jaką umowę podpisałeś z microsoftem w ramach ichniej Obietnicy?
        Co więcej, byli ludzie, którzy chcieli dostać tę obietnicę imiennie na piśmie, aby była to prawdziwa umowa, i microsoft im odmówił!

      • harijari

        Co więcej, byli ludzie, którzy chcieli dostać tę obietnicę imiennie na piśmie, aby była to prawdziwa umowa, i microsoft im odmówił!

        To jest ciekawe, źródło poproszę, chętnie doczytam

      • o_O

        > Could patents be used to completely disable Mono?
        > No. […]
        W świetle faktów to oczywista nieprawda.

        > The .NET Framework is divided in two parts: the ECMA/ISO covered technologies and the other technologies developed on top of it like ADO.NET, ASP.NET and Windows.Forms.
        Kłamstwo. Na .net składają się także optymalizacje i rozszerzenia standardu, które nie są KONIECZNE do implementacji języka C#, a tylko wtedy microsoft obiecuje nie pozywać za patenty.

        > The core of the .NET Framework, and what has been patented by Microsoft falls under the ECMA/ISO submission.
        Jak wyżej. "Core" .netu to standard C#, rozszerzenia i optymalizacje.

        i inne

      • harijari

        > W świetle faktów to oczywista nieprawda.
        Niestety, brakuje mi tych faktów w twojej wypowiedzi. Twoja wypowiedź opiera się dalej na wyborze jednego argumentu (ECMA/ISO) i zignorowaniu innych.

        W faq-u pojawia się zdanie, które zdajesz się ignorować:
        "The actual patent coverage includes the sum of both the ECMA-covered standards, their MS-PL licensed code and their Apache licensed code. "

        Jak rozumiem, pod pojęciem "rozszerzenia" rozumiesz te komponenty, które jak twierdzi projekt "and the other technologies developed on top of it like ADO.NET, ASP.NET and Windows.Forms.".
        Nie wiem co rozumiesz pod pojęciem "optymalizacje". Nie dostałem też listy patentów, które projekt miałby naruszać. Faktycznie, być może w optymalizacjach tkwi problem. Jak przedstawisz listę patentów i optymalizacji, łatwiej będzie mi się odnieść. Na razie jest to tak całkowicie rozmyte.

        Jeżeli ktoś ma świra na punkcie prawnego bezpieczeństwa własnego projektu (co jest jak najbardziej racjonalne, zwłaszcza w USA), po prostu może zignorować komponenty poza tej listy (mimo że Xamarin tłumaczy politykę obchodzenia zagrożenia w przypadku innych implementacji). Do tego mamy szeroki wybór bibliotek nie wchodzących w skład .NET, a będących całkowicie wolnymi od jakichkolwiek podejrzeń o bycie kukułczym jajem, np gtk#. Można się więc obejść bez komponentów których się boimy.

        Podsumowując, uważam że projekt Mono to świetny przykład oprogramowania FLOSS, a cały FUD wobec niego spowodowany jest bardziej awersją do Microsoft-u (bo nikt nie lubi microsoftu), awersją do Novella (bo podpisał swego czasu umowę o kooperacji w celu interoperacyjności z Microsoftem).

        I jest jak najbardziej na rękę konkurencyjnym rozwiązaniom. Jeżeli ktoś nasłucha się Linux narusza patenty (Steve Ballmer), od samego środowiska nasłucha się że jakieś Mono też, że Google (Dalvik, i Oracle vs Google, no i jeszcze Android) także, to raczej zastanowi się, czy inwestować zasoby w takie śliskie projekty. Lepiej kupić licencję,

      • o_O

        Mono NARUSZA patenty. To jest fakt, którego nikt nie neguje.
        Pytanie czy microsoft ich za nie pozwie. Obiecuje, że nie, ale Obietnica ma wygodne luki i być może nawet cała jest nic nie warta.

      • harijari

        Skoro tak, to dwa proste pytania:
        Jakie?
        W jakich krajach?

      • harijari

        Poczytałem trochę jeszcze tutaj: http://en.wikipedia.org/wiki/Mono_%28software%29

        I w mojej opinii status wygląda tak:
        Projekt mono jest bezpieczny pod względem patentowym gdyż,
        1. specyfikacja ze standardów ECMA objęta jest obietnicą microsoftu community promise (OK, można nie ufać, ale złamanie tej obietnicy to PR-owe sepuku).

        2. Kod licenjonowany na MS-PL oraz Apache license zawiera gwarancje patentowe. (licencje, nie obietnice).

        3. Projekt ma ustaloną politykę w przypadku wystąpienia rozszczeń patentowych. Więc nie mają plan awaryjny na wypadek problemów.

        4. Mono wchodzi w skład OIN (Open Initiative network), która to organizacja stanowi dodatkowy parasol ochronny na wypadek ataku patentowego na projekt. (http://en.wikipedia.org/wiki/Mono_(software)#cite_note-76).

        Podsumowując, nie twierdzę że potencjalnych zagrożeń nie ma.
        Obawa FSF polegała przede wszystkim na tym, że w przypadku utraty dostępu do C# jako technologi, utracimy dostęp do aplikacji opartych na tej technologi. I to byłby cios.
        Uważam jednak, że środki które podjęto by się chronić się przed taką ewentualnością są wystarczające.

        Ponadto, projekty Ubuntu oraz Fedora nie uznały argumentów przeciwników Mono za wystarczające (aczkolwiek uznano że należy sprawę monitorowąć), i mono nie wyleciało z tych dystrybucji: http://en.wikipedia.org/wiki/Mono_(software)#cite

        Najgorsze w tym wszystkim jest to, że niby są jakieś patenty, ale nikt za bardzo nie wie jakie. Takie to dla mnie straszenie "czarnym ludem". Jak widać wystarzyło, by steroryzować społeczność.

      • harijari

        Napisałem:
        Więc nie mają plan awaryjny na wypadek problemów.

        Powinno być:
        Więc mają plan awaryjny na wypadek problemów.

    • A czy ktoś może próbował napisać do Microsoftu z pytaniem na temat Mono? Czy nie łamie patentów?

      • o_O

        Oczywiście, że łamie. Tylko niektórzy wierzą, że bezwartościowa obietnica microsoftu uchroni mono przed pozwami.

        Lepsze pytania do ms to:
        – Czy dystrybuując Mono naruszam jakieś wasze patenty nieobjęte obietnicą?
        – Czy nie zostanę pozwany (jako ja, z imienia i nazwiska) za łamanie patentów, o których mowa w Obietnicy? (odpowiedź uprawnionego pracownika ms oznacza umowę)
        Na żadne z tych pytań odpowiedzi nie dostaniesz.

      • harijari

        Ok, wysłałem zapytanie do ogólnego supportu. Zobaczymy co napiszą. Nie spodziewam się za dużo (to raczej support pierwszego poziomu, więc cudów nie ma).

      • Super ;) Ciekawe co z tego wyniknie ;-)

    • Tomaszczyk

      To może nie do supportu tylko np. PRu i wskazać tę dyskusję?

      • harijari

        Chętnie, ale ja może jakiś ciemny jestem, ale nie mogłem znaleźć jakiegoś ciekawszego adresu email.
        Na infolinię dzwonić nie warto, bo tam od razu rozmawiamy ze zwykłym pracownikiem Call Center.

    • endeavour

      Jak by ktoś szukał zestawienia przydatnych narzędzi dla Mono, to jedno z wielu miejsc jest tutaj: http://www.goldenline.pl/forum/3318309/warsztat-pracy-dla-programujacych-w-mono/