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.

38 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 Anonymous Coward · · Score: 2, Informative

      It's funny how things have come full-circle.

      In the 1990s, Microsoft used to be the one accused of spreading Fear, Uncertainty and Doubt. Microsoft used to be the one pushing unwanted software on the masses. Microsoft used to be the one pushing lousy programming languages like VB.

      Now it's the 2010s, and open source supporters like yourself are spreading Fear, Uncertainty and Doubt. Open source supporters are pushing unwanted software like systemd on the masses. Open source supporters are pushing lousy programming languages like Go, Ruby and Rust.

      I hate to say it, but I trust Microsoft more these days than I trust Red Hat or the average open source developer.

    2. 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.
    3. 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?

    4. 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
    5. 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.

    6. Re:Beware Rust, Go, and D. by gbjbaanb · · Score: 2

      Neither are quite perfect though - C++ has plenty of ancient cruft that;s there for C compatibility, but then, C# has plenty of cruft from its old 1.1 days (all those nasty, nasty functions taking char[] parameters for example.

      But they're still better than the newcomers simply because the new ones are just as imperfect but without the benefit of a wide user base or tooling. Maybe one day Rust will become mainstream and we'll all start using it, and good luck for that day.

      But, there's no reason not to use C++ now for Linux development. Moving people to C# on Linux is just wrong, not because C# is rubbish, but because it's not mainstream on Linux. The reasons not to use Rust or C or Go are the same ones to use when applied to C# on Linux. On Windows its a different matter of course, but Linux - stick with C++ and enjoy the benefits of the same codebases everyone else uses.

    7. 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.
    8. Re:Beware Rust, Go, and D. by kthreadd · · Score: 2

      That was actually true for Java too. Unfortunately Java development also slowed down significantly once it became mature, around 5.0-6.0. Scala is where most of the interesting stuff in Java is going on these days.

    9. Re:Beware Rust, Go, and D. by jmac_the_man · · Score: 2

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

      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.

      Um... Mono is released under an MIT license, which is less restrictive than the Microsoft Public License. But here, take a look what Microsoft's Open Source license says in terms of them licensing you their patents on their code:

      2. Grant of Rights (A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution or any derivative works that you create.

      (B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or derivative works of the contribution in the software.

      I'm not going to reproduce Section 3, but the restrictions are: You don't get a trademark license or a warranty, you're not allowed to sue other licensees over your patents, you have to retain copyright notices that appear in source code, and you can't re-license MSPL code under viral licenses (e.g. the GPL).

      If you want to see the full license, check out the OSI's site on the MS-PL

    10. Re:Beware Rust, Go, and D. by Baki · · Score: 2

      Better than the Java VM? In what ways, and where are references?

      In most large corporations, JEE is 50-80% of new mission critical software nowadays. I work for one of the top-5 banks and we use windows only for desktops, and on the server side mostly for small- to midscale software pacakges. All the companies mission critical systems, either bought or built, are either on the Mainframe (diminshing, but that will take 10 years or more to finish) or various forms of Java (JEE, tomcat, hadoop, various other clusters and compute grids).

      I see no evidence at all that C# of .net is gaining traction for mission critical server side software.

    11. Re:Beware Rust, Go, and D. by guruevi · · Score: 2

      Yet for some reason, the supreme court had to establish this in the above quote in the early 20th century.

      --
      Custom electronics and digital signage for your business: www.evcircuits.com
    12. Re:Beware Rust, Go, and D. by shutdown+-p+now · · Score: 2

      Rust and C# target two different niches. Rust is basically a "better C++", and is suitable for kernel development and such. C# is more high-level and is best for userspace UI and web apps.

    13. 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 smittyoneeach · · Score: 2

    If you say that "To Serve Man" is a cookbook, they'll grill you.

    --
    Get thee glass eyes, and, like a scurvy politician, seem to see things thou dost not.--King Lear
  4. 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.

  5. Re:Anything unique? by ThePhilips · · Score: 2

    Xojo

    Xubuntu 14.04 says that the installation would take 195MB of space. Bit heavy. Worst part: it is BASIC.

    On the positive side, Lazarus + FP SDK, requires almost 1GB of space on my Xubuntu.

    My ultimate goal is to be able to put together a quick UI, check in the source, and tell in few words to others who going to check it out how to compile it and get it running.

    All in all, Xojo gets on the short list of things to try.

    --
    All hope abandon ye who enter here.
  6. 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.
  7. Re:Anything unique? by benjymouse · · Score: 2

    I may add:

    The PATENTS.TXT (https://github.com/dotnet/coreclr/blob/master/PATENTS.TXT) also does not claim anything like that. It merely says that if *you* bring a patent lawsuit against *anyone* for using the *covered code*, any patent grant is revoked and the promise is revoked.

    --
    Reading slashdot one-liner: (irm http://rss.slashdot.org/Slashdot/slashdot).rdf.item | fl title,desc*
  8. 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.

  9. 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*
  10. Re:Newbie Mono question by benjymouse · · Score: 2

    Can you run a .NET application that currently resides on a Windows-based web server on a Linux-based shared hosting server using Mono?

    In general: Yes. Need more context about the application to give a definitive answer, e.g. if it uses Windows specific infrastructure such as AD, Workflow Foundation.

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

    All kinds of patents, including DNS, DHCP, DNSSEC, ISCSI, RADIUS, SMTP, POP3, DSA. MS owns the patents on many RFCs, but are under their generic "Community Promise".

  12. Re:Patents? by benjymouse · · Score: 2, Interesting

    Microsoft has many times expressed its visceral hatred of open source. It is not to be trusted, not ten years ago, not five years not, not today, not ever.

    BS again. Microsoft has NEVER expressed visceral hatred of open source. Ballmer has compared one open source license - GPL - with cancer, because of it's viral nature. The intentionally viral nature.

    Ballmer is not at the helm any more. But even he never expressed hatred at open source, as you claim. You could construe his comments about GPL as hatred against that particular license type. And indeed, Microsoft has always opted for other OSI approved licenses when they had the choice.

    But if you have any other sources for your made-up claim - say other MS top executives, maybe even present ones - then please feel free to post them.

    --
    Reading slashdot one-liner: (irm http://rss.slashdot.org/Slashdot/slashdot).rdf.item | fl title,desc*
  13. 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.
  14. 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.
  15. 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.
  16. Re:Anything unique? by jmac_the_man · · Score: 2

    Now they seem to promise cross platform development again, but for how long? It wouldn't be the first time Microsoft changes strategy.

    Well, Mono has been around for almost a decade now, and they AREN'T Microsoft. Microsoft submitted .NET for ECMA standardization, and Mono is an alternate, non-Microsoft implementation. Microsoft engineers and Mono engineers have worked closely in the past, but this is the first time that Microsoft developers have contributed code to Mono.

    In the same way, Microsoft has contributed some code to the Linux kernel. It's not a majority of the code, so they can't argue that you should call it MS/Linux or something dumb like that, and they didn't change the license on the kernel, so they can't show up and shake you down or anything.

    Their contribution to Mono was of a similar size and licensing scope. Microsoft isn't going to show up demanding money for this if you use it.

  17. Re:Anything unique? by kthreadd · · Score: 2

    Do they still "look just like" or are they "the same thing?" It used to be very easy to distinguish Qt applications on OS X when I used to use it a couple of years ago. The widgets looked very similar but you could instantly recognize that they were not quite right. It would be nice to know if the situation has improved.

  18. Re:off topic by SuiteSisterMary · · Score: 2

    So freedom to use whatever software you want, as long as it's the software you approve of?

    --
    Vintage computer games and RPG books available. Email me if you're interested.
  19. Re:Anything unique? by caseih · · Score: 2

    You misunderstand. By verbosity I don't mean boiler plate, java-style. I mean simply that there are more keywords. If/Then/Else/End if, Do Loop, For/Next. Again no worse than Pascal which you don't have any problems with.

    QtCreator is much closer to the RAD concept than you state here. Callbacks can be filled out in the IDE. It's not like you state in your post. However, the RAD concept isn't always super flexible, and modern GUI systems like Qt and GTK all let you work on the GUI in a programmatic way that is often much more powerful, but still easy and flexible. If you insist on your definition of RAD you'll likely run into limitations (any RAD system) and be disappointed. It's a good concept but in practice I think you need more than that. Except for certain vertical markets, I don't really see the point of full RAD to be honest. Especially when a half dozen lines of explicit code can do the same thing, but exactly how I want it. The XML gui design is far far better in my opinion. Load the ui file, autoconnect the callbacks to your code, done.

  20. Re:Anything unique? by angel'o'sphere · · Score: 2

    That is nonsense.

    If you compiled a Java 6 App and run it on an Java 1.3 VM, it wont work, for plenty of reasons.

    I personally had in 17 years Java development no single cross platform issue.

    The people who told me cross platform problems are about a handful. Mostly doing weird stuff, or once an RMI problem between Sun Java 5 and IBM Java 1.4 (which boils down to differences in serialization)

    --
    Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
  21. Re: the Qt is vastly superior to .net by walshy007 · · Score: 2

    As you point out, Qt 4 broke source compatibility in a major way -- so obviously it is not the kind of showstopper you suggest it should be.

    The transitional period was quite painful for a great number of projects. It was only done because it was a necessary evil at the time.

    Compatibility is not something people should jump at the chance to break if it can be avoided unless there is sufficient benefit. It has been judged that there is insufficient benefit to doing so currently.

  22. 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.

  23. Re:Anything unique? by benjymouse · · Score: 2

    Microsoft has granted patents, to anyone who implements a .NET runtime. The grants were part of the standardization of .NET CLR and core libraries.

    It is a misunderstanding that it is bound to Microsofts own implementation. Those grants has always extended to Mono. The anti-Mono and anti-Microsoft fanatics started a FUD campaign based on speculation that MS could just sue anyway, and the mere cost of defending against MS would force Mono underground. It was a response to that FUD campaign that MS also issued the community promise.

    The patent grants also are not tied to a full-stack implementation like Java/Oracle. The fact is, the patent protection when using CLR is far more transparent and effective, compared to Oracle/JVM.

    --
    Reading slashdot one-liner: (irm http://rss.slashdot.org/Slashdot/slashdot).rdf.item | fl title,desc*
  24. 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.