Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
Open Source Programming Linux

Reasons To Use Mono For Linux Development 355

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.
This discussion has been archived. No new comments can be posted.

Reasons To Use Mono For Linux Development

Comments Filter:
  • by fustakrakich ( 1673220 ) on Wednesday June 17, 2015 @07:31PM (#49933655) Journal

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

    • by Anonymous Coward on Wednesday June 17, 2015 @07:35PM (#49933681)

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

      • by Gravis Zero ( 934156 ) on Wednesday June 17, 2015 @08:21PM (#49933939)

        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.

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

          This is exactly the sort of thing that the EFF would be all over, moreover it wouldn't even be an issue of the validity of patents - which often results in drawn-out litigation - but of the legal principle of promissory estoppel.

          If you're worried about being sued by a company over patent claims of merit-less basis just because they have more money than you then why are you using any technology at all? If you were genuinely worried about this issue you wouldn't be in the industry at all because anybody with

      • by kbg ( 241421 )

        You fail to consider that MS is a company and that means whenever a new person that has the ability to change policies get into office it means that it could start to enforce patent claims. It doesn't matter what the policies where in the past they can change at any time.

    • Re: (Score:2, Insightful)

      by Anonymous Coward
      It's like the programming language equivalent of trans-fats.
    • by Dutch Gun ( 899105 ) on Wednesday June 17, 2015 @09:55PM (#49934373)

      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.

      • by mcrbids ( 148650 ) on Wednesday June 17, 2015 @11:05PM (#49934655) Journal

        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?

        • by Anonymous Coward on Thursday June 18, 2015 @01:14AM (#49935023)

          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. [microsoft.com]

          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 [hanselman.com] 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!

        • Re: (Score:2, Interesting)

          by bondsbw ( 888959 )

          Remember VB? . . . But then MS came out with VB.net . . . it was really an entirely new language.

          You mean, the better language capable of running on the .NET CLR and utilizing the same set of proven, well-tested libraries available for all .NET languages? Getting that with a very low learning curve for existing VB developers?

          Remember that VB 6 never actually died. It just stopped being improved. If you moved your app from VB 6 to VB.NET, that was your own choice for your own reasons... but let's be clear, it wasn't because suddenly your app stopped working or you couldn't maintain it.

          Remember Silverlight? The "Flash Killer"

          Actually HTML5,

          • by phantomfive ( 622387 ) on Thursday June 18, 2015 @02:42AM (#49935229) Journal

            You mean, the better language capable of running on the .NET CLR and utilizing the same set of proven, well-tested libraries available for all .NET languages? Getting that with a very low learning curve for existing VB developers?

            You utterly failed to respond to his point. The only question is whether you ignored it, or didn't understand it in the first place.

            Just in case you're not a troll, and you want to understand his point, here is the same thing restated [joelonsoftware.com]. For your convenience, here is a relevant quote:

            If you spend the money to upgrade to VB.NET, well, you just spent a lot of money to stand still. And companies don't like to spend a lot of money to stand still, so while you're spending the money, it probably makes sense to consider the alternatives that you can port to that won't put you at the mercy of a single vendor and won't be as likely to change arbitrarily in the future. So as soon as people with large code bases start hearing that they're going to have to work to port their apps from VB to VB.NET with WinForms, and then they start hearing that WinForms isn't really the future, the future is really this Avalon thing nobody has yet, they start wondering whether it isn't time to find another development platform.

            That's why people stay away from Microsoft platforms.

        • I'm not defending Microsoft, nor justifying all their mistakes or missteps. I said they've *courted* developers, not always treated them perfectly. Do you know you can be immune from issues like that? Don't always go chasing after the newest, greatest technology, no matter how sparkling fresh and cool the MS evangelists make it sound. Maybe it's best to stick with tried and true for a while if you're betting your whole business on something.

          .NET is not a new thing at this point. It's been around for ov

          • .NET is not a new thing at this point. It's been around for over a decade now,

            Visual Basic had been around for a decade when it was abandoned.

            • Anyone who thinks .NET is in danger of being abandoned is delusional. It's a core technology for MS at this point, and there's about as much chance of it being abandoned as the Windows API being abandoned. The fact that MS is actively promoting .NET as a cross-platform solution would also argue against the notion that it will be abandoned in the foreseeable future.

              I get your point, but Visual Basic and the .NET platform aren't even in the same league.

    • by jopsen ( 885607 )
      afaik MS has a patent licensing scheme to other .Net implemetations... Has been in place for decades... Look it up... I don't remember the details...
      Eitherway, I suspect you're more likely to be sued by Oracle and suddenly have MS helping you because they want a different precedence...
  • Why? (Score:2, Interesting)

    Why use a Java clone instead of just using Java?

    I suppose there's the Oracle factor which sucks. But Mono is by Microsoft, so it's just as bad.

    • In before some pedant, .NET is by microsoft and mono is a clone of .NET.

      So it's a clone of a clone. Didn't we all see that Futurama episode?

    • Re:Why? (Score:5, Insightful)

      by aardvarkjoe ( 156801 ) on Wednesday June 17, 2015 @07:48PM (#49933761)

      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 [wikipedia.org].

      • Re:Why? (Score:4, Insightful)

        by binarylarry ( 1338699 ) on Wednesday June 17, 2015 @07:52PM (#49933781)

        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.

        • by naasking ( 94116 )

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

          They aren't minor, and some of MS's libraries are unparalleled on Java because of the syntactic choices they made.

          • And if you want to use some java library in .NET environment, IKVM will convert java library binaries into .NET binaries.

            • I bet that "just works" in non trivial circumstances like a fine bottle of wine.

              • Re: (Score:3, Insightful)

                by subanark ( 937286 )

                Java is designed to be cross platform. In this case instead of targeting an operating system, you are targeting another virtual environment. While not perfect, it works much more often out of the box than WINE does.

        • Re:Why? (Score:4, Interesting)

          by Rinikusu ( 28164 ) on Wednesday June 17, 2015 @10:43PM (#49934571)

          I hate to say it, but given the choice between ORACLE and Microsoft.. Fuck Oracle.

        • by vux984 ( 928602 )

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

          Wait, Is that why I should stop using c# and use Java? Or the other way around? I mean, your statement seems to have this built in assumption that java is the default choice; and not-java needs to justify itself relative to java. I really see no reason that Java is the default choice.

          If anything Java's big corporate sponsor is worse than Microsoft.

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

          I dunno; the windows ecosystem is pretty darn big after all. c# bindings for pretty much everything exist. There are definitely lots of situations where Java mak

      • In practice the differences are fairly trivial. They are both static strongly-typed languages which support reflection, introspection, inversion of control, and some degree of templating. There's really very little choose one over the other that amounts to anything at the level that architects should be thinking about. If you are considering other languages you should be considering maybe Erlang, Go, Rust, or one of the various JVM targeted languages like Clojure. Making C# an important point of distinction

    • Re: (Score:2, Funny)

      by Anonymous Coward

      Because it is better. The risk of getting sued by Microsoft is smaller than the risk that your project will fail because you use Java. Microsoft has said they guarantee that they will not guarantee that they will sue you. They guarantee there is a chance that they won't while if you use Java you are pretty much guaranteed to fail. It's just less risk.

    • by Livius ( 318358 )

      It's actually a Delphi clone.

      • I'd say it's a mashup of the two. Like java it has garbage collection*, like Java it represents strings as immutable classes which require a reallocation for any modification.unlike delphi which classically* uses refcounted strings and will in-place modify strings that have a refcount of 1. It has operator overloading which is something that java does not have and something delphi only added relatively recently*. It has properties like delphi and unlike java. It has user defined value types like . It uses a

        • * AIUI there is now a version of delphi for .net which presumablly uses .net conventions on these things. **Disclaimer: I don't know exactly when delphi added it other than i'm pretty sure it was after the most recent version I used.

          That would be Oxygene, aka Delphi Prism. [wikipedia.org]

    • There's about a billion times more library support for Java, particularly if you want to do anything that isn't related to Windows. And you have at least as much cross platform portability, you can reuse a lot of code for Android apps. iOS is a black hole for ALL VMs, so you really might as well just stick with Java, or else go the QT/C++ route.

      • I'll second the QT/C++ route. C++ skills are useful for more than just mobile development too! While I get that a lot of people don't like the syntax, I have to ask, which language is without sin let it cast the first stone. C++ in my most humble opinion is a really cool language and Qt (yes even with MOC) makes it even cooler. Java is alright I guess. The JavaFX seems pretty neat at the very least. C# seems like it was really popular a few years back, but now a day, I barely hear anything about it or
        • Let's put it this way. People will be writing and maintaining C/C++ and Java applications in 20 years. C# and the .NET ecosystem will amount to some old books you see getting thrown in the dumpster outside your friendly neighborhood college library. Microsoft's record of dumping it's "latest and greatest" development tools is notorious. I remember back in the day coding in FoxPro after MS had bought it, because it was going to be the big prototyping/fast development platform, before Microsoft fell out of lo

          • Re: (Score:2, Redundant)

            by Dutch Gun ( 899105 )

            No, that's absurd. .NET will be around for decades to come. There's too much infrastructure built on top of it, and there's no reason for Microsoft to abandon it, since it's still the modern way to write Windows applications, for both app store & full desktop applications. As long as Windows is around in its current incarnation, .NET will be around as well. Whether it will be around on *other* platforms is up for debate, but I suspect that it will at least be maintained at it's current level.

            BTW, COM

  • by Anonymous Coward on Wednesday June 17, 2015 @07:38PM (#49933695)

    We have a LONG memory of Microsoft's past behavior.

    • Re: (Score:2, Insightful)

      by Anonymous Coward

      We have a LONG memory of Microsoft's past behavior.

      And this is why people like you shouldnt be allowed anywhere near technology, your choices arent based on technical merit or legal principles but on how a company hurt your feelings a long time ago.

      Yes in the desktop wars and browser wars 20-odd years ago Microsoft said some nasty things about Linux, created proprietary plugins because of the limitations of HTML, then were ahead of the curve when they bundled a web browser with their OS (like everybody does these days) and had private APIs (like everybody d

      • > but on how a company hurt your feelings a long time ago

        I think it was a lot more than feelings, you work months to years building technologies and then Microsoft just decides to drop platform X or technology Y and there you are with all this work that was good and successful, but with Microsoft's whim, now obsolete.

        After more than one such manuver, many have left for open source, where there is no single source of feature control or long-term licensing/activation/compatibility woes (not to mention fluc

    • by penguin7of9 ( 697383 ) on Wednesday June 17, 2015 @11:47PM (#49934797)

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

  • ... Mono support for Xlib?

    • Re:How is ... (Score:4, Informative)

      by caseih ( 160668 ) on Wednesday June 17, 2015 @11:53PM (#49934815)

      If you mean can you write graphical Linux programs the run on x11 out Wayland, the answer is yes absolutely. Gtk and Gnome bindings were some of the earliest tools for mono. In fact monodevelop is a gtk app, written in c#. Gtk turns out to be a pretty good fit for c#

  • by Microlith ( 54737 ) on Wednesday June 17, 2015 @07:46PM (#49933747)

    Given Microsoft’s public commitment to open source, a patent war likely isn’t going to happen; that would make the company look bad at a time when it needs all the developer support it can get.

    So why don't they just relicense the .NET CLR and the rest of the packages under the Apache 2 license? It lets people use things as freely as the MIT/BSD licenses as everything else and contains the patent guarantees.

    Until then, anything not under Apache 2 is suspect.

    • Until then, anything not under Apache 2 is suspect.

      You mean like Java?

      So why don't they just relicense the .NET CLR and the rest of the packages under the Apache 2 license?

      Better question: why do people keep using and defending Java despite Sun's historical legal shenanigans and Oracle's litigiousness?

      I mean, I can see rejecting both Java and C# (I use neither anymore), but to argue that Java is somehow OK and C# isn't strikes me as completely backwards. C# might be legally OK and Microsoft might be benign,

  • We'll See (Score:5, Interesting)

    by Prien715 ( 251944 ) <agnosticpope.gmail@com> on Wednesday June 17, 2015 @07:51PM (#49933775) Journal

    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 [unity3d.com] and an increasingly popular choice is C# for use with it.

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

  • Not efficient (Score:5, Informative)

    by jcdr ( 178250 ) on Wednesday June 17, 2015 @08:03PM (#49933831)

    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.

  • by postmortem ( 906676 ) on Wednesday June 17, 2015 @08:04PM (#49933841) Journal

    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.

  • What people really want to know is when will Mono incorporate systemd?
  • by Gravis Zero ( 934156 ) on Wednesday June 17, 2015 @08:17PM (#49933921)

    1) We haven't sued people for using it yet!
    2) it's cross-platform (as long as you only use certain parts)
    3) we have a single IDE!
    4) you can write games with it... as long as it's a Microsoft console.
    5) it's incomplete and buggy but were working on that!

    sounds just great but why not use C++ and Qt instead?

  • by hsa ( 598343 ) on Wednesday June 17, 2015 @08:23PM (#49933969)
    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.
    • by Dwedit ( 232252 )

      Fortunately, VB.NET can be decompiled as C# code.

    • Please just don't think, that you MUST use C# to get into game dev.

      In the Xbox 360 era, C# was the only language in which to write Xbox Live Indie Games. (Technically they had to be written in verifiably type-safe CIL compatible with the .NET Compact Framework, but C# was the only major language that could compile to that.)

      For example, you can have much faster prototyping with PyGame.

      I've done some prototyping in Pygame, but I thought Pygame was a 2D framework, not a 3D one.

  • are there any good ones?
  • Why would anyone expect Microsoft to engage in such combat? Especially since the person in charge of Microsft's Open Source strategy famously wrote:

    http://www.informationweek.com... [informationweek.com]

    ".. our PREFERRED plan is to LICENSE ... versus LITIGATE."

    Gotta love Microsoft. Always thinking about our welfare. Or not.

    • ".. our PREFERRED plan is to LICENSE ... versus LITIGATE."

      Hey, don't you remember when the Ruby guys filed a lawsuit in Federal Court against the Perl guys for stealing their innovations?

      No, wait ... that's not how adults behave. Y'all can go piss in your kiddie pool if you want.

  • by Caesar Tjalbo ( 1010523 ) on Wednesday June 17, 2015 @09:29PM (#49934255)
    Late '90s software development for Windows sucked. And Windows sucked because it crashed for the slightest of reasons. And there was Visual Basic. And there was the latest hype in town: Java. Roll in .Net with C# and Visual Studio. Pretty neat and fairly idiot-proof IDE, decent set of libraries, managed execution to lower the amount of BSOD's and introduce a new language to extinguish both VB and Java.

    None of these reasons was relevant outside the MS world. Plenty of languages, IDE's, editors available on Linux, some say even too many. No BSOD's, no VB. Oh wait, there's one reason: that wanker Miguel de Icaza.
  • by nyet ( 19118 ) on Wednesday June 17, 2015 @11:54PM (#49934819) Homepage

    An IDE is quite literally the least important feature of a language.

    What a joke.

  • by AmazingRuss ( 555076 ) on Thursday June 18, 2015 @02:26AM (#49935179)

    "Chief among them is MonoDevelop, which he claims is an excellent IDE; " ... which made my jaw drop.

    Monodevelop is a fucking awful, AWFUL piece of software. Bloated, slow, and broken hundreds of ways.

It's been a business doing pleasure with you.

Working...