Slashdot Mirror


Mono 4 Released, First Version To Adopt Microsoft Code

jones_supa writes: Version 4.0.0 of Mono, the FOSS implementation of the .NET Framework, has been released. This is the first release of Mono that replaces various components of Mono with code that was released by Microsoft under the MIT license. Microsoft itself is working towards .NET Core: a redistributable and re-imagined version of .NET, which has two code drops: CoreFX and CoreCLR. Mono at this point continues to provide an API that tracks the .NET desktop/server version. This means that most of the Mono code that has been integrated from Microsoft comes from the ReferenceSource code drop. Mono's C# compiler now also defaults to C# 6.0.

18 of 223 comments (clear)

  1. Beware Rust, Go, and D. by Anonymous Coward · · Score: 3, Insightful

    Being able to use C# on Linux and OS X and the BSDs will make languages like Rust, Go and D even less useful than they already are. People who are anti-Microsoft may not like to admit this, but C# is an excellent programming language, and .NET is an excellent runtime. Although they're over a decade old, they were so far ahead of their time when they were first released that they still feel fresh and relevant even today.

    Mono was always OK, but not great. Now that Microsoft is releasing code that Mono can also use, everyone is a lot better off. We'll finally be getting a high quality VM runtime for Linux, much better than Java and it's VM, and much, much better than Parrot and the other failed open source VMs. The .NET CLR always feels very transparent, unlike the JVM which is painfully obvious.

    It's getting to the point where any sensible software developer will write their software in C#, even if targeting Linux. C# is just the best general purpose language out there. In the rare cases where C# isn't suitable for some reason, modern C++ provides a superb alternative.

    Between C# and C++, there's just no need for other languages. Both C# and C++ offer low level functionality, as well as much higher level functionality like lambda functions, closures, generics/templates, OO, memory safety through GC and/or smart pointers, and so on.

    There's just no sensible reason to use a language like Rust, Go or D these days. They're inferior to languages like C# and C++ in various ways, but without being any better. So you're inherently worse off when you use them.

    If you're ever in a situation where you may be choosing between Rust, Go or D, postpone your decision and look at C# and C++. You will very likely be making a better choice by choosing mainstream, well-supported, portable, mature and efficient languages like C# and C++.

    1. Re:Beware Rust, Go, and D. by xonen · · Score: 4, Interesting

      Please don't compare apples to oranges. You are totally right about the trust issue, that's something personal. But it has very little to do with the C# language or .NET.

      Pulling JVM into the equation not really helps either, cause the consequent question would be: Do you trust Oracle? Or Google, for that matter if you count Dalvik in.

      I do like the C# as a language, having done a few smaller projects with it. The reason why i prefer not to use it is, indeed, because i don't trust or like Microsoft. Having said that, i am totally fine with the Mono project - despite all criticism it's just the language and the VM and has very little to do with MS, and when appropriate (i.e.: someone pays for it) i wouldn't hesitate to develop with Mono or .Net again.

      GP totally has a point here: The languages you really need for a certain task already exist, whether it be C, C++, C#, Java and a handful of other niches including but not limited to Perl and PHP. Whatever your choice is, try stick to a steady platform. Code written in any such `proven` language is much more likely to compile in another 10-20 years from now than code written in some obscure actively-developed language which adds little, that couldn't be done otherwise, but headaches.

      And AC above also has a point that many OS enthusiasts are guilty of exactly what they accuse their nemesis of. Hence he doesn't deserve the tag 'astroturfer', it may well be his honest opinion. It's totally ok to criticize, but be prepared to accept criticism too, please.

      --
      A glitch a day keeps the bugs away.
    2. Re:Beware Rust, Go, and D. by Gadget_Guy · · Score: 5, Insightful

      You sir, are a great astroturfer and deserve a raise from MS.

      That's really another type of FUD; that anyone who says something that isn't completely anti-Microsoft must be being paid to say it.

      It has been 10 years since Mono was released and 13 years since .NET was released, and for the entire time there have been the predictions that Microsoft will start suing all and sundry for patent infringement. For that entire time it hasn't happened. For that entire time it has been complete FUD, whether you like it or not.

      Well, just recently a very interesting article covering Microsoft "open source .NET" license, you should read up on that, especially MS requiring a license to the patents in the code you contribute, but refusing to grant you license for their code, instead, providing a promise not to sue.

      So what? None of that means that Microsoft is going to start suing you for using the Mono CLR and Framework. If you don't like their terms then don't add your own patented code to a .NET Foundation-owned project, but feel free to use Mono without any fear of being sued by Microsoft.

      If you really trust Microsot more than RedHat or opensource developers, than please, don't let anyone stand in your way, trust is a personal issue, some people trust ISIS, some - the supreme leader, but some prefer to be able to verify the code themselves, and Microsoft throwing their dying platform into opensource stream, hoping for a revival is very far from transparency and verifiability.

      Wow, talk about FUD again. Bringing up ISIS is just a modern version of Godwin's law. And "some prefer to be able to verify the code themselves" is FUD because this is all about open source code released by Microsoft. Of course you can verify the code yourself. Or are you mixing up the completely unrelated non-OSS Windows code that you can't see. How is that relevant to this discussion?

    3. Re:Beware Rust, Go, and D. by guruevi · · Score: 3, Insightful

      I am old enough to have worked with .NET pre-releases. Back then most viewed C#/.NET as a cheap and broken Java clone. It took .NET several years to become mature enough to be useful.

      --
      Custom electronics and digital signage for your business: www.evcircuits.com
    4. Re:Beware Rust, Go, and D. by Anonymous Coward · · Score: 3, Insightful

      I tend to agree. I've had to use C# recently, and the .NET stuff is impressively mature and full-featured. I'm an old hardcore Java programmer, and Microsoft copied Java and C++ so closely that I was immediately productive. The whole .NET thing is an excellent rubber-room runtime system with everything you need. You'd be very, very, very hard pressed to make a business case for not using it. And even harder pressed to make a case for some nothing language that has no users anyway.

      My pet peeve is that there are too many languages and runtime libraries now and it's hard to mentally switch among so many. With C# and .NET available on Linux, this might change as people consolidate.

    5. Re:Beware Rust, Go, and D. by MightyMartian · · Score: 5, Informative

      Have you ever considered the possibility that all those years of misconduct by Microsoft have sowed a considerable amount of distrust in the developer community, and that even where Microsoft has turned over a new leaf, so vile was its conduct "back in the day" (which ain't all that long ago, if you think about the OOXML open standard scam), that it might take years, or maybe never, to convince a lot of people that there isn't some evil plan in the works.

      Give me one good fucking reason why I should ever trust Microsoft again?

      --
      The world's burning. Moped Jesus spotted on I50. Details at 11.
    6. Re:Beware Rust, Go, and D. by jma05 · · Score: 3, Interesting

      > Both C# and C++ offer low level functionality

      Not really. Can you write a device driver in C#? How about a plain DLL? CLR is a VM. Its CPU performance is OK (2-8 times slower than C).

      http://benchmarksgame.alioth.d...

      But programs written on it have memory requirements that are higher than ones written in plain systems languages. The runtime footprint on the disk is also massive. I don't think you can really make a case that C# is a low-level language. It is not that much more CPU efficient than Java. Mono performance is worse than Java.

      http://benchmarksgame.alioth.d...

      Of course, CLR is better than dynamic language aka scripting language runtimes. But that's about it.

  2. Re:Anything unique? by Anonymous Coward · · Score: 4, Informative

    It absolutely does. You can develop completely cross platform applications with 1 codebase using XWT. The single codebase creates projects for GTK, Cocoa(OSX) and WPF(Windows) that use the native controls for the corresponding platform.

    The fact that they are porting most of the libraries over to the first-party Microsoft versions means less bugs, and way more active maintenance. This is very good news for cross-platform developers!

  3. Re:Anything unique? by kthreadd · · Score: 3, Interesting

    For RAD I've had some good experiences in the pas with RealBasic (renamed to Xojo some time ago). At the time the GNU/Linux support was quite ok but they haven't really kept up. 64 bit is still missing for example so running anything you build with it will require a couple of 32 bit system libraries to be installed.

  4. Re:Anything unique? by Foofoobar · · Score: 4, Interesting

    well considering their 'mit license' is invalidated because of the wording saying you can't use without their engine or code... it kind of is a trap. Just a bad one.

    --
    This is my sig. There are many like it but this one is mine.
  5. Mono practically useless by Eravnrekaree · · Score: 4, Interesting

    After looking at Mono I failed to see the point in the whole thing. Thats because it does not support the WPF. Since a large number of .NET applications are GUI, not having WPF pretty much destroys the value of Mono in allowing Windows .NET programs to run on Linux. Otherwise, there is no point in using Mono. If you have a .NET program written using WPF its not going to run on Mono. If you are writing a new program there is no reason to use Mono instead of another application language such as Ruby. Using a development environment designed by the Evil Empire does not hold special appeal over the FOSS plartforms such as Ruby. If one has to write a program that can run on both Windows and Linux i would probably be better to use Ruby or Python or such.

    Why didnt Microsoft Open source the WPF. Instead, they open sourced the parts of .NET that Mono already had implementations of.

    1. Re:Mono practically useless by gbjbaanb · · Score: 4, Interesting

      WPF is very over-rated. that has poor hardware rendering that doesn't work as well as old winforms

      Maybe Microsoft isn't open sourcing WPF because they know how bad it is. Only the .NET fanbois are still going on about how wonderful it is, even though the majority of UIs I've seen on Windows are using ASP.NET or Winforms.

  6. Re:Patents? by benjymouse · · Score: 4, Informative

    Quite simply, a patent "promise" is not the same thing as a license. You see, even if they're bared by Laches, they can still drag you through the courts and you've got to prove they're barred by making the promise. If you had a license...you could make a single motion at the first hearing or in the pretrial motions to dismiss because of being licensed if they sought to sue you.

    Having this crap in there means Mono's toast without a real license to any valid patents, combined with a covenant to license all tech as it becomes apparent, that ends up in this common core of stuff. Otherwise, you're INSANE for using it- because you can and most probably WILL be sued over it.

    No - it is actually stronger (look up promissory estoppel). But leave that aside, because the patents have also already been granted.

    The *promise* was issued because fanatics cried foul at the patent grant, arguing that Microsoft with it vast army of lawyers could just sue any OS project out of existence, patent grant or not. Hence, Microsoft issued the promise, all but ensuring that such a case would be outright dismissed since you've acted in good faith on a promise. The promise in that case is actually one of the strongest contract forms imaginable, as it is one-sided: you do not have to sign anything to be covered.

    --
    Reading slashdot one-liner: (irm http://rss.slashdot.org/Slashdot/slashdot).rdf.item | fl title,desc*
  7. Re:Patents? by MightyMartian · · Score: 4, Insightful

    It would take a delusional lunatic not to know the long history of attacks against commercial and open source competitors. Microsoft isn't trustworthy, and as there are alternatives to .NET, the easiest way to protect against future bad behavior by Microsoft is to use those alternatives. Why risk future woes when you have no need to?

    --
    The world's burning. Moped Jesus spotted on I50. Details at 11.
  8. Re:Anything unique? by ThePhilips · · Score: 3, Insightful

    BASIC is every bit as modern as any other language and structurally equivalent to any modern static language. It's more verbose than C and similar languages [...]

    Verbosity is the problem.

    If I were fine with the screens and screens of the boilerplate code, I would have simply used the Java.

    I don't understand why you couldn't get QtCreator working. Qt is easy to install and use on Ubuntu. And the Qt QUI designer is very easy to work with.

    As I heard it was a systemic problem back then: not all package dependencies were declared, meaning that after installation you have to also install bunch of other stuff to make it working. (Many years ago, first time I tried QtCreator, it actually refused to run, because some linked libraries were missing.)

    I'm not sure about now, but back then it wasn't even close to anything RAD. It was only a helper to create the GUI in a XML form, which was back then not even properly integrated with the rest: one had to write some code manually to actually tell Qt what resource corresponds to the window. And add resource manually to the resource file.

    I would say that Python + libglade + glade is also a pretty good combination. It's not quite the RAD experience you seem to want, but it is a fast and powerful way of developing GUI apps, thanks go a nice API and Python.

    Yes, it is not RAD. And for that I already use QT + C++, which provides very powerful, simple and no-fuss API to build GUIs dynamically (without external UI building tools like glade or Qt Designer).

    The problem is not me per se - I have no problems with most of the stuff. The problem are the other team-members who are not well versed as me in the scripting languages and building GUIs. On many past projects I have left behind lots of stuff which 95% of coworkers can't support or develop further. And I want to solve the problem by throwing in something that requires as least boilerplate as possible, stays as close to demos/examples as possible. I'm simply trying to find something to help the people start moving in the right direction.

    --
    All hope abandon ye who enter here.
  9. Re:Anything unique? by MightyMartian · · Score: 3, Insightful

    Indeed. I have written several cross-platform Java apps and utilities that run just fine on Windows, Linux or Mac boxes. One can certainly write Java programs that are locked to one platform, but I've ever seen the need.

    --
    The world's burning. Moped Jesus spotted on I50. Details at 11.
  10. Re:Anything unique? by Grishnakh · · Score: 4, Interesting

    Microsoft has not contributed any useful code to the Linux kernel. Their "contribution" was drivers so that Linux could work on their hypervisor. If you're not running a MS server with MS Hyper-V, then their contributions are useless to you.

    Yeah, it's nice they're playing a little more nicely with Linux now, but don't pretend their "contribution" had any altruistic component to it at all, because it didn't. It was only done because customers were demanding that they be able to run Linux virtualized on MS systems. MS did the bare minimum needed to enable this, and that's it.

  11. Re:Anything unique? by Grishnakh · · Score: 3, Insightful

    Intel also contributes a lot of money to the foundation which employs Torvalds. Microsoft does no such thing.