Slashdot Mirror


Reasons To Use Mono For Linux Development

Nerval's Lobster writes: In the eleven years since Mono first appeared, the Linux community has regarded it with suspicion. Because Mono is basically a free, open-source implementation of Microsoft's .NET framework, some developers feared that Microsoft would eventually launch a patent war that could harm many in the open-source community. But there are some good reasons for using Mono, developer David Bolton argues in a new blog posting. Chief among them is MonoDevelop, which he claims is an excellent IDE; it's cross-platform abilities; and its utility as a game-development platform. That might not ease everybody's concerns (and some people really don't like how Xamarin has basically commercialized Mono as an iOS/Android development platform), but it's maybe enough for some people to take another look at the platform.

15 of 355 comments (clear)

  1. If there are patent issues by fustakrakich · · Score: 5, Interesting

    You just shouldn't bother. It's not worth the risk.

    --
    “He’s not deformed, he’s just drunk!”
    1. Re: If there are patent issues by Anonymous Coward · · Score: 4, Insightful

      By this time (w/ MS deliberately contributing to Mono no less) estoppel should quash any patent claims.

    2. Re: If there are patent issues by Gravis+Zero · · Score: 5, Insightful

      By this time (w/ MS deliberately contributing to Mono no less) estoppel should quash any patent claims.

      it's a good thing proving that in court is inexpensive and that they have a moral integrity to not use their vast army of lawyers to just bleed you until you cannot afford to defend yourself.

      oh wait.

      --
      Anons need not reply. Questions end with a question mark.
    3. Re: If there are patent issues by Anonymous Coward · · Score: 5, Funny

      "Better Java" is like a chocolate teapot being marginally preferable to one made of butter.

    4. Re:If there are patent issues by Dutch+Gun · · Score: 4, Insightful

      Patent issues? What would Microsoft have to gain by suing someone for using their own technology? That makes about as much sense as Oracle suing a developer for using Java. It's an utterly nonsensical argument, as Microsoft is officially and releasing .NET as open source, and has indicated their support of Mono and Xamarin as well.

      Personally, I feel a lot better when I understand a company's motivation. As far as I can figure, Microsoft is interested in keeping Windows relevant, and they can help do this by ensuring developers can use Windows as a development springboard for targeting other platforms. This keeps those developers in the Microsoft ecosystem, even if they have to acknowledge that fewer people are living in a Windows-only world - *especially* in mobile. The alternative would be that developers would have to turn to other development tools on other platforms, and they might find another cross platform solution that leaves Windows as an "also-ran", marginalizing it as a development platform, which in turn might lead to the erosion of Windows as a *user* platform.

      Microsoft has always been fairly smart about courting developers with excellent tools and development platforms, and making it quite easy to build applications for Windows. As far as I can tell, this is no different - it's just that Microsoft has finally acknowledged that open source and multi-platform development is critical in today's world, and they're going their best now to play catch-up in this field. This doesn't suddenly make them nice guys, but it's not in their business interest to start attacking developers - the people that they're actively trying to court with these latest strategies.

      --
      Irony: Agile development has too much intertia to be abandoned now.
    5. Re:If there are patent issues by mcrbids · · Score: 5, Informative

      Microsoft has always been fairly smart about courting developers with excellent tools and development platforms, and making it quite easy to build applications for Windows

      Maybe you don't remember history the way I do.

      Remember VB? An excellent toolkit that gained widespread acceptance in the Enterprise world for it's tight IDE, integration environment and easy forms. But then MS came out with VB.net which was about as related to VB 6 as javascript is to java. It was a horrible mess, everything had to be re-written to be compatible because it was really an entirely new language. Developers were left in the lurch, oh well, perhaps you shouldn'ta Microsoft, you know?

      Remember Silverlight? The "Flash Killer", it was an excellent toolkit for writing distributed applications quickly. Performance was excellent. Many big names "bet the farm" on it. Until Microsoft walked away from it, too. Netflix will *never again* bank on a MS technology, I'm sure.

      But that's not where it ends. Remember Windows Phone 7? The next big thing (tm) and they ditched it, for WP8, and all the devs were screwed. Again.

      But that's not where it ends. Why is the XBox 360 not compatible with the original XBox? Why is the XBox "One" not compatible with the XBox 360? With every console generation, MS has been screwing the developers.

      And so it goes. Over and over, the devs get the shaft any time they bet on Microsoft's newest, highly promoted technology.

      What's next?

      --
      I have no problem with your religion until you decide it's reason to deprive others of the truth.
    6. Re:If there are patent issues by Anonymous Coward · · Score: 4, Informative

      Remember Silverlight? The "Flash Killer", it was an excellent toolkit for writing distributed applications quickly. Performance was excellent. Many big names "bet the farm" on it. Until Microsoft walked away from it, too.

      In favor of HTML5. Its funny how the tables turn as soon as Microsoft does something, now pushing open standards in favor of proprietary blobs is a bad thing. They pushed Silverlight until HTML5 was capable then stopped supporting it and released it as open source.

      Remember Windows Phone 7? The next big thing (tm) and they ditched it, for WP8, and all the devs were screwed. Again.

      Please explain why you believe "devs were screwed", here is the experience documented by an actual dev.

      Why is the XBox 360 not compatible with the original XBox?

      Because the 360 has a completely different architecture to the original. This is not something new in the console world, developers want to write games specifically tailored to the hardware using architecture-specific strategies. The hardware improvement between the consoles was not enough to fully emulate the original XBox hardware in software on the new console.

      Why is the XBox "One" not compatible with the XBox 360?

      For the same reasons as above, however they have manage to get enough performance out of an emulation layer of sorts to be able to do backwards compatibility, it just requires the permission of the developer for distribution reasons. This is made easier since much of the games of today rely on GPU programming and while the GPU architecture is improved in the more recent console it has an AMD chip that shares many of the underlying subtleties with the AMD GPU used in its predecessor.

      With every console generation, MS has been screwing the developers.

      If you write software that depends on specific hardware obviously you can't expect that software to work when the hardware is different...duh!

  2. Re:Why? by aardvarkjoe · · Score: 4, Insightful

    Why use a Java clone instead of just using Java?

    Maybe because some people prefer C# to Java? They aren't exactly the same, after all: https://en.wikipedia.org/wiki/Comparison_of_C_Sharp_and_Java.

    --

    How can we continue to believe in a just universe and freedom to eat crackers if we have no ale?
  3. We'll See by Prien715 · · Score: 4, Interesting

    While I have never work in C# myself, the ability stop code in a debugger, write some code, and then continue executing (compiling your code in real-time) seemed like a really awesome feature (as a C++ guy, we don't get to do this).

    The Unity engine is also quite popular and an increasingly popular choice is C# for use with it.

    Maybe Microsoft can make one useful invention every decade?;)

    --
    -- Political fascism requires a Fuhrer.
  4. Re:Why? by binarylarry · · Score: 4, Insightful

    True but it seems kind of ridiculous to choose an entire platform based on some minor differences in syntax.

    I suppose if you're already really familiar with the Microsoft software stack, like you used to build VB apps and have already invested a great deal in Microsoft's tools it might make sense.

    But otherwise, it's a smaller ecosystem with fewer libraries, fewer developers, fewer choices, fewer large scale deployments to learn from.

    --
    Mod me down, my New Earth Global Warmingist friends!
  5. Not efficient by jcdr · · Score: 4, Informative

    I work on a embedded Linux system running Debian Jessie armhf on a Cortex-A5 processor. At some point someone programmed a Web user interface for the system using Mono for Linux. The installation of Mono was difficult, requiring several hundred Mo of space on the filesystem and some trick to get the last package revision. Then the application was started and take all the processing load for almost 4 minutes. At his point it was eating near half the memory available on that embedded system. This was socking, especially for me that like to use qooxdoo for WebUI because it's basically a static file that need no compilation and have a very minimal memory footprint. Finally the guy switched to node.js for the WebUI on that system. The installation was easy, the startup compilation last now less than a single minute and the memory footprint is below 20%, all of that with a more complete demo that with Mono.

  6. Linux developers know C/C++, Python, Perl by postmortem · · Score: 4, Insightful

    The only reason to use Mono is really to get Windows developers onboard.

    But that's a long shot. Linux works because there are plenty of developers in mentioned programming languages that support it.

    Since Java isn't terribly popular in Linux, .NET has no chance.

  7. The five bullet points by hsa · · Score: 4, Insightful

    1. C# Is a Great Language

    me: Yes it is.

    2. There's a Great Free IDE: MonoDevelop

    me: Finding a decent IDE is not a problem anymore. You can find something for every language.

    3. Mono Supports Mobile Development

    me: So does Java and Swift. Why does EVERY article out there think you have to pick just ONE language and be stuck with that choice forever???

    4. Mono Is Cross-Platform

    me: Python, Java, C, C++, Ruby, and many, many more are all cross-platform, too!

    5. Mono Powers Games Development

    me: The guy is totally right. He has some great examples, too.
    Please just don't think, that you MUST use C# to get into game dev. For example, you can have much faster prototyping with PyGame. You can really learn to code in Swift over a weekend, if you have mastered one similar language well.

    My advice to you is: pick any language, become good at it. Just don't do VB.NET or I will have to kill you.

  8. Re:No, it's not enough by penguin7of9 · · Score: 5, Interesting

    Apparently "we" don't have a long memory of Sun/Oracle's past behavior: Sun's repeated lies about making Java an open standard, their legal threats and lawsuits, the way they killed off independent implementations, and most recently, Oracle suing the pants of Google again. Microsoft played hardball on the business side, but Sun and Oracle have been dishonest, deceptive, and litigious. In the end, Java is both technically inferior and legally more risky than C#.

  9. Re:No, it's not enough by Anonymous Coward · · Score: 4, Informative

    How about "C# has pointers" or "C# has unsigned types" or "C# has direct native code interoperability through function imports and exports" or "C# has proper reified generics" or "C# has allocated-on-the-stack value types" or "C# has a properly unified type system which means that you don't have to go out of your way to make an int behave like an Object or an array behave like a collection" or "C# has generator coroutines" or "C# has asynchronous coroutines" or "C# has deferred query comprehension" or "C# has transparent expression tree generation allowing for custom interpretation/execution of C# code on heterogeneous data sources" or "C# has dynamic dispatch".