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.

63 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 Gravis+Zero · · Score: 3, Informative

      There are patent issues with every technology.

      there are no patents on C++ and even if there were they would have expired by now.

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

      It's like the programming language equivalent of trans-fats.

    5. Re: If there are patent issues by exomondo · · Score: 2

      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 more money than you can just say they have a patent on what you've created and bleed you dry in court.

    6. Re: If there are patent issues by jhoger · · Score: 2, Interesting

      Except it's not a shitty language. WTF are you talking about? It's basically a better Java. And it has some innovative stuff like LINQ.

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

    8. 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.
    9. Re:If there are patent issues by jd2112 · · Score: 2

      There are patent issues with every technology.

      there are no patents on C++ and even if there were they would have expired by now.

      None of which will prevent some unscrupulous parties from patenting decades-old technologies with our wonderful approve-happy patent office meaning you can spend a shitload of money licensing bogus patents or several shitloads of money fighting it in court.

      --
      Any insufficiently advanced magic is indistinguishable from technology.
    10. 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.
    11. Re: If there are patent issues by benjymouse · · Score: 2, Insightful

      LINQ is the PHP for those who can't design proper data architecture and access layers.

      I have a suspicion that you have no idea what LINQ is.

      --
      Reading slashdot one-liner: (irm http://rss.slashdot.org/Slashdot/slashdot).rdf.item | fl title,desc*
    12. Re: If there are patent issues by ardave8952 · · Score: 2

      I have a *certainty* the person has no idea what LINQ is.

    13. 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!

    14. Re:If there are patent issues by bondsbw · · Score: 2, Interesting

      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, with the iPhone as a catalyst, killed both Flash and Silverlight. It's interesting that you don't blame Adobe for killing Flash as you blame Microsoft for killing Silverlight.

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

      Most WP7 apps could run just fine on WP8. And the changes from WP7 to WP8 were relatively minor; same language, updated (but not completely backwards compatible) APIs.

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

      Because the architectures were different between original XBox and the 360, and between the 360 and Xbox One. By definition the only way to achieve binary compatibility is through virtualization, which is exactly what Microsoft has done in both cases.

      --
      All my liberal friends think I'm a conservative, all my conservative friends think I'm a liberal.
    15. Re:If there are patent issues by phantomfive · · Score: 3, Insightful

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

      --
      "First they came for the slanderers and i said nothing."
    16. Re:If there are patent issues by phantomfive · · Score: 2

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

      --
      "First they came for the slanderers and i said nothing."
    17. Re: If there are patent issues by kbg · · Score: 2

      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.

    18. Re: If there are patent issues by jeremyp · · Score: 2

      It's not a language at all. It includes a C# compiler but you can use any language that has a translator to CLR code.

      --
      All I want is a secure system where it's easy to do anything I want. Is that too much to ask ~~ Randall Munroe
    19. Re: If there are patent issues by serviscope_minor · · Score: 3, Insightful

      There are no "shitty languages and implementations" only shitty developers and those trying to implement the shitty applications creations by those developers.

      That's absolute bollocks.

      Let try some reductio ad absurdum.

      According to you, the only problem with Brainfuck is "shitty developers".

      That is patently absurd.

      --
      SJW n. One who posts facts.
    20. Re:If there are patent issues by its.the.doc · · Score: 2

      Now days it's the other way around, java has been stealing from .net

    21. Re: If there are patent issues by RavenLrD20k · · Score: 2

      Nobody would trust them again if they realize MS sues projects it actually collaborated with.

      Hi! You must be new to this earth; Welcome!

      Embrace, Extend, Extinguish, anyone? Microsoft has historically done more than enough to make it where "nobody would trust them again" on multiple PR fronts (the one that pissed me off and affected me more directly was what they did with MechWarrior, but there's a lot more than that). They seem to be doing fine... and there aren't many people or companies beyond Linux users who even know what the hell Mono is that matter in the eyes of Microsoft. For those companies that do happen to rely on Mono for Linux, you can bet that Microsoft would extend their own offering of a .NET platform for Linux using the remnants of Mono that they embraced. Companies that matter to Microsoft's world don't care about ethics, they only want solutions.

      Long story short: The PR hit on MSFT would be miniscule compared to other PR hits that the company has already taken throughout their history (even the Simpsons used the 3 E's as a gag for an episode, complete with Bill Gates as a guest star), and probably not even noticed by anyone who mattered.

  2. No, it's not enough by Anonymous Coward · · Score: 3, Insightful

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

    1. Re:No, it's not enough by Anonymous Coward · · Score: 2, Insightful

      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 does these days). But the world changed, the "EEE" idea of 2 decades ago failed every time and Microsoft has had to adapt (significantly changing its leadership personnel and strategy) to survive, litigating wasn't working so now they are releasing things as open source, they are reacting to customer feedback, the community promise is there (even if you dismiss it because you dont understand the legal principle), they have even had to make a serious effort at going multiplatform just like their competitors.

      They hurt your feelings and you will never forgive them, we get that and yes, I am sure the year of the linux desktop is right around the corner ... oh wait they have systemd so we can *never* forgive them for that, i guess its BSD all the way.

    2. Re:No, it's not enough by JoeCommodore · · Score: 2

      > 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 fluctuating costs). Many have learned we cant depend on long term/cross platform stability with Microsoft, they are going to have to tread the long walk before they can regain respect.

      --
      "Enjoy what you're doing! If it becomes drudgery, you're doing it wrong!" - Jim Butterfield
    3. 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#.

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

  3. No assertion of patents? Really? by Microlith · · Score: 2

    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.

  4. 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?
  5. 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.
    1. Re:We'll See by Megane · · Score: 3, Interesting

      (as a C++ guy, we don't get to do this)

      That's because you aren't using Clang. One of the reasons Apple ditched GCC was so that they could get live recompile for Xcode.

      --
      #naabhaprzrag, #sverubfr-000, #agi-fcbafberq, negvpyr[pynff*=' negvpyr-ary-'] { qvfcynl: abar !vzcbegnag; }
    2. Re:We'll See by Giant+Electronic+Bra · · Score: 3, Interesting

      Maybe, but you can do this in Eclipse these days too, in Java. Its not really all that unique.

      --
      "Malo periculosam, libertatem quam quietam servitutem." -- Jefferson
    3. Re:We'll See by shutdown+-p+now · · Score: 3, Interesting

      This is an IDE feature, not a language feature. VS can do it for C++ as well, by the way. But there's nothing stopping someone from implementing it for Java.

    4. Re:We'll See by Giant+Electronic+Bra · · Score: 2

      Could be. I use Eclipse because it does what I need it to do. There are definitely other toolsets out there that are really good. IntelliJ has a huge rep nowadays. NetBeans is really no slouch either. Still, for enterprise development Eclipse is a workhorse. There are plugins to do everything under the Sun. Many of them are kinda less than perfect, but they work, and there's tight integration with pretty much every OSS or 'community' sort of workflow tool you would ever want.

      --
      "Malo periculosam, libertatem quam quietam servitutem." -- Jefferson
  6. 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!
  7. 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.

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

    1. Re:Linux developers know C/C++, Python, Perl by Dynedain · · Score: 3, Insightful

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

      Huh????? Most public facing Java service or site I've worked with as a developer have been running on a Linux box, normally RHEL or CentOS. Sometimes I've run into NetBSD, and occasionally HP-UX or Solaris.

      I cannot fathom how you equate a (non-real) lack of Java development on Linux as a reason why .NET has no future there.

      --
      I'm out of my mind right now, but feel free to leave a message.....
  9. The real question by JustAnotherOldGuy · · Score: 2

    What people really want to know is when will Mono incorporate systemd?

    --
    Just cruising through this digital world at 33 1/3 rpm...
    1. Re:The real question by serviscope_minor · · Score: 2

      What people really want to know is when will Mono incorporate systemd?

      I think you mean "when will systemd incorporate mono".

      --
      SJW n. One who posts facts.
  10. Re:So the only goot reason by OrangeTide · · Score: 2

    While I'm very much a vi and command-line guy, I'd like to point out that Visual Studio Code already supports Linux. While it mainly markets to people using ASP.NET and Node.JS today, it appears to have some support for C++, C#, Java, Python, Rust, Lua, Objective-C, Go and others.

    Don't confuse VS Code with full VS (not sure how to distinguish the two by name). You don't get all the business for doing projects from various predefined templates and build system. VS Code is more like a fancy text editor with some tools for refactor and lint.

    --
    “Common sense is not so common.” — Voltaire
  11. Re:Why? by Anonymous Coward · · Score: 2, Funny

    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.

  12. Reasons to use mono by Gravis+Zero · · Score: 2

    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?

    --
    Anons need not reply. Questions end with a question mark.
  13. Re:Why? by MightyMartian · · Score: 2

    Care to quantify that risk for us? Go on, I'd like to see how you have done this assessment.

    --
    The world's burning. Moped Jesus spotted on I50. Details at 11.
  14. 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.

    1. Re:The five bullet points by Dwedit · · Score: 2

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

    2. Re:The five bullet points by shutdown+-p+now · · Score: 2

      No, it's not. In fact, they're still adding new features to the language (though largely in sync with C# now, and catching up in some cases).

  15. Re:Trollbait by MightyMartian · · Score: 3, Insightful

    Microsoft will do what it has always done; develop a technology, push it everywhere it can, then let it stagnate, and deprecate it in favor of the newest and bestest thing ever, before announcing that the next version of Windows will be the last to support it, so be sure to buy our new even more expensive suite of development and distribution tools while you can!!!!

    Java is a reasonably mediocre language with a mediocre set of standard libraries, but you know what, I'm fairly confident that the application I write in Java today will still be usable in a decade (heck, I've got Java utils running that I first wrote in 2002 to 2003). In other words, Java may be far from perfect, but it is an enormous ecosystem with enormous penetration, particularly in the enterprise world. Even if I bought into the notion that C# is lightyears better than Java (which I don't), it is almost never purely about objective or subjective technological superiority.

    Beyond that, if MS keeps to its word to port .NET over to other platforms, why on the hell would I want to use a crappy half-completed variant like Mono?

    --
    The world's burning. Moped Jesus spotted on I50. Details at 11.
  16. Yeah, that's always been my reaction by Giant+Electronic+Bra · · Score: 2

    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.

    --
    "Malo periculosam, libertatem quam quietam servitutem." -- Jefferson
    1. Re:Yeah, that's always been my reaction by MightyMartian · · Score: 2

      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 love with it and jumped to the VB version 4-6, before they jumped to .NET with C# and VB.NET. Remember when COM-based development was the wave of the future, and everybody in their dog was building applications that amounted to bits of VB or C glue linking ActiveX controls together? Let's talk about Silverlight, that was going to kill Flash.

      I guarantee you, whatever Microsoft dev platform you're using, unless your sticking to the C/C++ compilers on top of the Win core APIs, will be a distant memory, while Java and C++ with libraries like QT are still plugging along.

      --
      The world's burning. Moped Jesus spotted on I50. Details at 11.
  17. Re:Why? by Anonymous Coward · · Score: 2, Insightful

    it's a smaller ecosystem[citation needed] with fewer libraries[citation needed], fewer developers[citation needed], fewer choices[citation needed], fewer large scale deployments to learn from[citation needed].

    FTFY.

    I've been developing primarily in .NET for the last 8 years, after being a Java developer (primarily) for at least as long prior to that. At first, I was skeptical of .NET and especially of Microsoft. But over the last 8 years, I've realized that it's a tool that allows you to get work done. As such, I've found that it not only has as much of all of those things you mentioned, but it also has better quality in every area. Java still has that suck-it-and-see feel to it, while .NET seems to just get out of the way. And the tools available for .NET are about a million times better in every regard. I shudder when I think back about editing the ANT script to build and deploy a simple SOAP service. For .NET, that's a simple build/copy-the-DLL script, even without any formal deployment server setup.

    Back to the original topic, is all this true of .NET on Linux? Genuinely curious because honestly, most things on Linux have a suck-it-and-see feel.

  18. Re:Why? by petermgreen · · Score: 2

    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 C/C++ based synatax (like java) rather than a pascal based syntax (like delphi). It has "delegates" which are essentially equivilent to the "method pointers" in Delphi, Java also added something similar but only very recently.

    My big concern with mono is that they don't seem to have the resources to maintain it the same level that Java on linux is maintained to. In particular they implemented .nets main gui library windows.forms but then declared it unsupported. They were also very slow in adding properly working support for arm hard float systems.

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

    --
    note: i'm known as plugwash most places but i screwd up registering that here somehow in the past and now can't register
  19. .Net is for Windows and Windows only by Caesar+Tjalbo · · Score: 3, Insightful

    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.

    --
    "I'm not much interested in interoperability. I want substitutability. I want to be able to throw your software out."
    1. Re:.Net is for Windows and Windows only by shutdown+-p+now · · Score: 2

      I assume you're talking about the modern incarnation of VB here (i.e. the managed one, what used to be called VB.NET), since the other kind is now ancient history and has been for a long time.

      Visual basic is not that bad. No doubt it cannot scale

      It can scale just as well as any other statically typed .NET language. Like, say, C#

      I heard that VB developers don't use VB and that is the cause of the problems

      Not true. All the VS IDE bits that are specifically related to VB are written in VB. There are fewer of them now that it's all based on Roslyn, but it's still there. A lot of generic WinForms-related stuff is also in VB.

  20. Re: So the only goot reason by binarylarry · · Score: 2

    Visual Studio Code is a rip off and reskin of github's Atom editor with some Microsoft tech bolted on.

    --
    Mod me down, my New Earth Global Warmingist friends!
  21. Re:None by XaXXon · · Score: 3, Insightful

    Why should I care if you do any linux dev?

  22. Re:Why? by subanark · · Score: 2, Insightful

    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.

  23. Re:Why? by Rinikusu · · Score: 3, Interesting

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

    --
    If you were me, you'd be good lookin'. - six string samurai
  24. Re:How is ... by caseih · · Score: 3, Informative

    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#

  25. An IDE? by nyet · · Score: 2

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

    What a joke.

  26. Suitability of Mono aside, he says by AmazingRuss · · Score: 3, Informative

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

  27. Re:Why? by PRMan · · Score: 2

    Sorry, but if you're coming from Visual Studio, Eclipse is a piece of junk.

    --
    Peter predicted that you would "deliberately forget" creation 2000 years ago...
  28. Re:Why? by shutdown+-p+now · · Score: 3, Informative

    And you know what? We don't use any of that stuff, because we want our code to be COMPREHENSIBLE. Lambdas don't do anything for me that I can't do with a loop, and at least I can see instantly "Yep, that's a loop!" For the very few cases where it might be helpful, that's great, but its really VERY few cases. I have yet to write one.

    Yeah, yeah. We've heard this before. Back in the day, people were saying the same things about those new-fangled "for" and "while" loops. After all, we want our code to be comprehensible! A loop doesn't do anything for me that I can't do with a goto, and at least I can see instantly, "yep, that's a control flow transfer!".

    Meanwhile, people have embraced the new tools (which are the majority outside of the Java land - even the C++ guys have and use lambdas now), and they became idiomatic, and standard libraries were upgraded to rely on them - making them both more powerful and easier to read. As it happens, I use both C# and C++, and it's a rare day at work that I don't use a lambda anywhere. Looking at other people's [quality] code, it's mostly similar. And guess what? It's all still perfectly readable, so long as you take some time and learn how it works. In most cases, in fact, it's more readable than the code that it replaced, and more maintainable to boot (because DRY).

    Java's generics are fine. They do the most important part of being generics perfectly well. Again, the things that you seem to want of them are things that negatively impact maintainability in most cases.

    I was referring mostly to type erasure, obviously. How does getting read of that negatively impact maintainability?

    In the meantime, Java now has this beauty. Because they can't just say Func<T>, and have it work well for primitive types.

    As for DRY... I'm at a loss why anyone would think that you'd repeat yourself in Java.

    If you don't have first-class functions in a language, you'll be doing a lot of of DRY for that reason alone (yes, you can use anon classes instead, but no-one actually does because it's so verbose it defeats the point). If I have to explain how and why that works, then you should probably go read some FP tutorial.

    I think MS certainly looked carefully at Java and in some very minor ways improved on the syntax, but at worst the difference is small,

    You think wrong, and you didn't bother to investigate enough to make such a conclusion. This was kinda sorta true 14 years ago. It's not true now. Things that C# has that Java does not include e.g. dynamic and async/await, neither of which are "very minor ways".

    with Java's vast arrays of libraries, frameworks, and tools, its hard to beat.

    It's kinda like the iOS app store. Sure, it has 3 million apps, but in practice you need maybe 30 for any particular case, and 300 across everything. I won't dispute that Java has more libraries, but pretty much any mainstream language/platform these days, including .NET, has all the libraries that matter, for the simple reason that all of them have a fairly large community that will write or wrap one if they need it. I don't recall ever running into a situation where I couldn't find a library to do something that I needed to do, in any popular language.