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.
You just shouldn't bother. It's not worth the risk.
“He’s not deformed, he’s just drunk!”
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.
Mod me down, my New Earth Global Warmingist friends!
We have a LONG memory of Microsoft's past behavior.
Have gnu, will travel.
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.
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.
Using Mono makes sense if you have no memory for the past and no awareness of the problems caused by using other ecosystems primarily controlled by a single vendor.
Seriously. There are WAY more cross platform options available, and without all the risks that come from using something like Mono.
"Just say no" - Nancy Reagan
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.
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?
Just cruising through this digital world at 33 1/3 rpm...
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
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.
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.
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.
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
are there any good ones?
You'll be aged out of the developer pool, so who cares? ;)
"Malo periculosam, libertatem quam quietam servitutem." -- Jefferson
Oh my. Without you, how will we ever survive?
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...
".. our PREFERRED plan is to LICENSE ... versus LITIGATE."
Gotta love Microsoft. Always thinking about our welfare. Or not.
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."
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!
Why should I care if you do any linux dev?
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.
An IDE is quite literally the least important feature of a language.
What a joke.
Well there's no Linux download for Atom. So I'm going to mark your comment off as hyperbole and move on with my life.
“Common sense is not so common.” — Voltaire
Yeah. Nothing says "You're computer is going to be rendered unusable for a couple of hours" like .NET updates. I swear to god I think the HD LED is just going to burn out during .NET updates. In the time it takes a .NET update to go through, I can usually update a Debian kernel and core libraries for a system and have it rebooted and already running again.
The world's burning. Moped Jesus spotted on I50. Details at 11.
Have you checked back this year, already? https://atom.io/ .deb, Download .rpm, Build from source ...
Download
"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.
They've "abandoned" it even though they're about to release C# 6 and a complete rewrite of ASP.NET called vNext which is being released as open source. Or do you have secret insider knowledge that they're planning to rewrite ASP.NET again in Javascript?
"There are a lot of decaffeinated brands on the market today that are just as tasty as the real thing."
I use Haxe http://haxe.org/.
MonoDevelop/Xamarin Studio FOSS Edition is the key point here.
I have to admit, I resent MS just as much as the next guy and I consider C# a half-assed cross between readability of C, speed of Java and portability of Visial Basic and unlike some MS fans do not consider the PL the second coming of Christ. ... But (you did see a big "but" coming up there, right?) I have to say that MonoDevelop is an impressive FOSS product. It works out of the box on Linux, OS X and Windows, it's actually a pretty good IDE and it makes getting up and running with C# GUI/client development a breeze.
You can get from zero C# experience to an own feasible GUI app in a matter of hours.
Something I can't say of other great toolkits, such as Qt.
In a nutshell, MonoDevelop is the only reason I would actually even consider C# as a PL for a project. .Net ecosystem available as FOSS, I wouldn't completely dismiss C# for non-trivial infrastructure and middleware either.
And now with major components of the
My 2 cents.
We suffer more in our imagination than in reality. - Seneca
Microsoft is the Anti-Christ. This tool does not benefit the community. Using gcc/c++ benefits the community. Using Mono only benefits Microsoft because that encourages everyone to try Mono and then the developers end of feeling limited on the Linux MONO IDE because it is deliberately crippled with less bells and whistles than the MICROSOFT WINDOWS-BASED .NET IDE.
The bottom-line long-term strategy for Microsoft is to suck money out of developers pockets on an ongoing basis. Their agenda about Linux was revealed years ago with the "halloween papers" their real strategy was "Fear, Uncertainty, Doubt" towards Linux;"Embrace, Extend, Extinguish" Linux. For as long as Linux afficionados remain vigilant, that's not going to happen if Linux developers continue to use gcc/g++. I clearly recommend ignoring all Microsoft offerings on an eternal basis. I look forward to the day that Microsoft is irrelevant in the software domain. Move on. Nothing to see here.
I thought that was gone five years ago.
He has done more to harm Linux than anyone, other than Lennard "systemD" Poetering.
Copyright (c) 1990 - 2014 Dice. All rights reserved. Use of this comment is subject to certain Terms and Conditions.
I don't think MS is going to 'stop supporting' .NET. Hell, Visual FoxPro 9 SP2 was released as late as 2007 and there were hotfixes released as late as 2010. Granted, MS hasn't really supported it in a big way in about 10 years, but it was a LOOOOONNNNNGGGGG time 'dying', and there are still quite a few users.
Even if .NET were to follow VFP its going to have active support for AT LEAST the next 10 years. Given that MS has no other similar product or reason to ditch this one in favor of another, as well as various active ongoing technology programs that build on the .NET CLR it hardly seems likely to fade very fast.
I think what MS has determined is that their boundless enthusiasm for managed code was a bit over-the-top. It makes sense as an approach for 'apps' and less-demanding or 'internal use' type applications. I think they've also realized that the real value of such an environment is in Java's niche, as a high performance platform-agnostic host for business logic. Unfortunately for them they'll never displace Java in that niche. That boat has sailed.
Still, MS itself will in all probability continue to write .NET applications. C++ is a great language, but it takes a huge amount of effort to deal with memory management issues and such crap. C++ is also a language filled with lots of pitfalls. It is incredibly easy to write bad C++ code, and you really need to study the language itself for a few years just to be a truly competent coder. Frankly I just stick to Java, but if I was a .NET guy I'd just stick with that. Why not?
I wonder about HTML5/Javascript. Personally I think Javascript is another terrible language. We're kind of stuck with it, but between the terribleness of HTML, the terribleness of the DOM, and the terribleness of JS writing UIs in that environment really is a pretty awful and expensive process. We've found that with JavaFX (and no doubt other equally good toolsets) we can write a UI in 1/2 or 1/3 of the time it takes to do the same quality of work in HTML/JS. While it is certainly not going anywhere in the near future I have to see this whole paradigm as ripe to fall. MS may think they've hitched their wagon to the final answer, but IMHO something much better will come along before too much longer.
"Malo periculosam, libertatem quam quietam servitutem." -- Jefferson
Suse used Mono in SLED 9-11 from several things, but specifically Novell's ifolder implementation. With SLED 12, mono is no longer available. Considering that Suse/Novell used to employ the most of the mono team. but no longer, it may be obvious that this is a dead end
~corporate tool, but employed~
Nowadays, every language implementation and compiler has been released under a very permissive license. If the guys from Xamarin would try stopping making money out of Mono I'm sure it would become a lot more popular. For example:
-LLVM (BSD)
-Lua,Python, Ruby, etc. (BSD Style)
-CoreCLR (MIT style)
-Dalvik (for Java)
Even GCC runtime license is more permissive. Mono is a dual licensed commercial product, so I'm surprised Slashdot is making publicity out of it.
Ok, MS doesn't do patent abuse when it concerns .NET (yet).
But all Android vendors have to pay up to Microsoft for all the Linux/Android based phones they sell, because of patents. This is extortion pure and simple, and it's Microsoft abusing patent system for monetary gain.
--Coder
Mono has and always will have a subset of the functionality and ecosystem available to .Net windows developers. If a developer builds their skills around .Net using mono it's only a matter of time before the benefits of using .Net on that platform outweigh the benefits of using Linux for that developer, that project, that company. Sooner or later more jobs being available for those with .net skillsets on windows or higher paying jobs will mean mono developers taking those jobs which leads to more professional experience on that platform and rinse and repeat.
Mono is a sinkhole designed to drain developers away from Linux. Stay away from traps, use tools that provide superior capabilities on your already superior platform and build your skills and experience on those.
Welcome to the vast variety of languages on Linux with the attributes you have. Unfortunately you're still an underperformer in:
- Speed: Plenty of faster-running and faster-compiling (or not compiling) languages to chose from
- Convenience: Python, Perl, Bash, PHP are all lighter-weight, easier setup, & ready-to-go
- License: It matters to the free-software community.
- Self-Competition: Killed D-Lang, Harmed Rust (Co-routines). You've got it (Microsoft CLR runtime) and we all know that's trouble.
- Packaging: Installing Mono-based apps into a non-Mono box are huge.
- Tooling: Experienced devs live here & expect standards. Leave the standards & you've left the community.
So for every purpose there's a better tool (except running code from devs who won't leave Windows). Since devs are leaving faster than ever and universities have all-but-abandoned Windows in CS education, this category is too small to matter. As for legacy software, it'll stay on Windows for fears that it's not as platform-independent as people think (see Java @ 2005), so it's not even an exception.
Science & open-source build trust from peer review. Learn systems you can trust.
convicted monopolist
Nope. They settled with the DoJ and consented to an agreement overseen by a FISA judge.
So, lots of NSA backdoors. But no conviction.
Have gnu, will travel.
Sure they're still running, but just because java takes forever to execute.
Knock knock. Who's there? (long pause) Java
reason defies logic
With various GNU/Linux distributions, Mono support is spotty and therefore I'd steer clear of it entirely. Why do we need it? We don't. We're much better off with native frameworks that are better suited to the GNU/Linux OS itself. Such as Python for example.
I wouldn't say Java is utterly consistent. Its pretty generic though, and I like that. If you know C you can pretty well understand the flow of code in a Java method, and if you have a general understanding of OOP then you will pretty much understand Java. I think the same can be said for C#.
Frankly I was considering using a scripting language to write some test driver code. I figured it would be a little less tedious and easier, but what I found was that with a modern IDE it just wasn't worth the bother. Yeah, I could make my test harness a little simpler, and in theory I could even edit it without recompiling, but it was just plain easier to write the stuff in Java, its just not that hard to code in.
I mean there are very definite use cases for scripting, but its not like the old days where it was much easier than coding in a compiled language.
"Malo periculosam, libertatem quam quietam servitutem." -- Jefferson