Mono 2.0 and .NET On Linux 405
Several readers noted the release of Mono 2.0, which is compatible with Microsoft's .NET Framework 2.0. According to Miguel de Icaza, "... users can move over server applications built for .NET and client applications built with Windows Forms." InternetNews points out that only about half of the .NET apps out there will work on Mono 2.0, for a variety of reasons including (but not limited to) legacy Windows-only libraries and Microsoft's progress on .NET 3.0 and 3.5 APIs.
So what... (Score:2, Insightful)
I don't think it should surprise anybody that Mono 2.0 cannot handle applications written for .Net 3.0 or 3.5...
I like Mono, but... (Score:5, Insightful)
I like Mono, I really do, however it's always playing catch-up, it's by it's very nature it's always going to be one step behind Microsoft. Without the support of features in .Net 3.5, very few people are going to choose it for new developments.
Re:Oh just go away (Score:4, Insightful)
If we wanted to run crappy Microsoft technologies, we'd just go buy Windows, wouldn't we?
That must be why the WINE project is such a silly idea... oh wait...
Re:I like Mono, but... (Score:4, Insightful)
For the record, the new stuff takes time to trickle into mainstream development anyway, so Mono gets to at least focus on implementing the stuff the industry considers important too rather than just Microsoft.
Re:Mono 2.0 Supports .Net 3.0 (Score:5, Insightful)
It is crucial in the moment when any programmer use them and application stop working on any non-Windows platform. It is also very difficult, if not improssible, to track VM incompatibilities when main developer (MS) is not interested in 100% compatibility at all. For me, as enterprise application developer, these are show stoppers. Luckily, there is Java and Sun Hotspot, which solves all this.
Portability depends on more than the platform (Score:5, Insightful)
Good luck porting over LoadDLL("C:\\windows\\system32\\mylib.dll");.
The existence of a working mono is a necessary condition, not a sufficient one, for porting an application. Whether that condition is fulfilled and to what degree, I'll leave up to you to discuss.
Portability comes from being largely independent of the differences between the platform you want to port from and the one you want to port to. Good portability engineering consists of gathering all the platform-specific bits into one unit with a uniform interface, such that it's easy to write platform-specific modules for all the platforms you want to support; then, make sure to test on all your target platforms.
For a good piece of engineering, see Simon Tatham's puzzle collection (http://www.chiark.greenend.org.uk/~sgtatham/puzzles/). To see the importance of testing on all your target platforms, see the state of synergy on the Mac (http://synergy2.sourceforge.net/ -- "The Mac OS X port is incomplete [...]"). To see the importance of isolating your platform dependence, see any code that makes liberal use of fork and ioctl everywhere [sorry, I can't name an example].
Also, good portability engineering done up front is much less work (i.e. cheaper for your employer) than when the project is already deployed on windows only.
-- Jonas K
Re:Oh just go away (Score:3, Insightful)
I agree. Why don't these people who want to use .NET (managed code) just use Java? At least that is platform agnostic (limited to whatever platforms Java is ported on).
By the way, what about dotGNU? http://www.gnu.org/software/dotgnu/ [gnu.org] At least that will be released under GPL and not some dual licence with GPL.
Re:Oh just go away (Score:4, Insightful)
Or we can create something on Linux that has to run on Windows (for whatever reason). This is a two way street - Mono can create software that runs on Linux, Solaris, Mac OS X AND Windows.
This isn't just getting Windows stuff to run on Linux.
Viewed from this perspective it is less important that Mono is behind .NET - if you're creating something new you target Mono and it should run on .NET
For many users Windows is where they are (stuck quite often) and they can't migrate 100% of their desktops to *nix, they have something that stops them on a number of systems. Mono means they can create applications that can run on a mix.
Re:Oh just go away (Score:5, Insightful)
So, these two technologies are actually on opposing sides of this particular ideological fence - one is an attempt at removing lock-in, the other is an attempt at locking-in.
The real .NET (Score:5, Insightful)
Re:Mono 2.0 Supports .Net 3.0 (Score:3, Insightful)
Re:Oh just go away (Score:5, Insightful)
Re:Oh just go away (Score:4, Insightful)
Mono is Java in disguise, if you want cross platforms without traps use Java
It is like the mortgage crash, a few saw it coming, they said so, but the majority didn't care
A few people says that Mono is a legal and technology trap (search the web for mono trap), in the future this will reveal true, do not forget that you where warned
And why not just use Java? (Score:5, Insightful)
The .NET platform and C# looks like decent enough technology, but I just don't think it's compelling enough to prompt a switch from Java.
With these back-room Novell/MS deals, the patent situation around Mono continues to be as clear as mud, and with Java I get it all under the GPL (with a clear and written patent grant) right from the source. Not to mention Sun's process for advancing the platform (JCP), while not perfect, is far more open and community driven, catering to much wider variety of vendors and platforms than Microsoft.
With Eclipse and Netbeans, the Java tool support on Linux is fantastic as well. With RedHat and JBoss, the server platform is also well supported on Linux.
So, yeah, nice work, but no thanks.
Re:Oh just go away (Score:2, Insightful)
WINE removes lock-in,
Unless, of course, the argument is made that there are legacy applications in
Re:And why not just use Java? (Score:4, Insightful)
I use Java as well, and I think that Eclipse is a better IDE than Visual Studio, but there are a couple reasons for using .NET:
Re:Oh just go away (Score:1, Insightful)
Re:Oh just go away (Score:5, Insightful)
Before I tear apart what you think passes for an argument, let me say that the Mono folks are doing an amazing job and they get way too little credit. The tinfoil hat brigade around here seems to have taken on Mono as its personal whipping boy, and it's totally unfair and uncalled for.
Sure, but weren't you supposed to be talking about Mono there somewhere? Java used to provide lock-in, too. Hence, the GNU Classpath project, which is pretty much identical in its goals to Mono. Funny that I never saw you people screaming about that one being a trap.
Wow, get some perspective there. How many killer apps are there on Linux that the Windows people are craving? KDE? Gnome? Firefox? OpenOffice? None of those are on .NET and most of them run on Windows, anyway. Do you think that Firefox, OOo and KDE are all helping people move away from Linux by providing Windows ports? Isn't it more likely that without those Windows ports, most of these projects would go nowhere?
It's really quite obvious to anyone with any actual knowledge of how the industry works that people are going to write applications without Linux in mind. The Mono project, just like the Wine project, lets people who run Linux run applications that other people wrote for Windows.
As it turns out, there's also a bunch of useful libraries that Mono includes that you can use when coding for platforms other than Windows. It boggles my mind that anyone would think that this is somehow a trap. It's just a useful way to access Unixy things on Mono. But it clearly can't be breaking Linux lock-in or whatever pea-brained scheme you've come up with.
.NET has been around for 7-8 years now. Do you honestly think code can't become legacy in that amount of time? Here's a tip: if you think Linux has any lock-in potential for applications written on it, then perhaps you shouldn't talk too much about intellectual integrity.
Re:Oh just go away (Score:5, Insightful)
really? I thought MS has dropped support for OpenGL, apart from its very legacy v1.1 base. And you know they will never write a managed wrapper for it.
So, who will write a .NET game using opengl? If you're a Windows dev (and most game devs are) then you'll be using DirectX.NET, which oh so conveniently is not available for Linux.
So close. Yet so immensely far. Do you see the problem now? Its business a usual for MS, but with the added bonus of saying "But we are working on Linux interoperability, Mr DoJ, look - Mono".
Re:Oh just go away (Score:5, Insightful)
What you can't do is copy the windows runtime. I wonder how mono would do if Microsoft invoked patents against it. I suspect not well, but with Mono in its current state it is to MS's advantage - they can say they are multi-platform but know that most people will give up because of the 50% of programs that won't run and turn to Windows.
Re:Oh just go away (Score:4, Insightful)
FLAMEBAIT -- get a life! Anyone who has experience of both J2EE and .NET will tell you that .NET is better thought out, has a more consistant design,
has cleaner easier to use APIs, scales better, performs better
and is altogether a much nicer environment to work in.
I am sorry if this upsets the Slashdot worldview but its the truth. Microsfot are better at software than Sun.
Anyone who has experience of both Apache and IIS will tell you that IIS is better thought out, has a more consistant design, has cleaner easier to use APIs, scales better, performs better and is altogether a much nicer environment to work in.
I am sorry if this upsets the Slashdot worldview but its the truth. Microsfot are better at software than FLOSS Devs.
Because, we all know that those are the only things that matter when gambling your future - your legal liability is irrelevant.
Re:I like Mono, but... (Score:5, Insightful)
Seriously though, what applications are using Net 3.5 instead of all the stuff that can only run with Net 1.0 or Net 2.0?
A lot of my applications use LINQ (.Net 3.5). I wouldn't really like to go back to SQL.
Sure you can manipulate databases with SQL. You can also cross the atlantic in a steam boat. However, I'd prefer to go by plane.
Re:Oh just go away (Score:5, Insightful)
Re:I like Mono, but... (Score:2, Insightful)
Re:Oh just go away (Score:3, Insightful)
Re:Oh just go away (Score:3, Insightful)
Before I tear apart what you think passes for an argument,
"Ad hominem"
Erm... do you know what 'ad hominem' means? This is insulting your argument, not you personally. It's insulting to you personally by proxy, on the basis that you believe your argument etc etc. Okay, yes, there is an ad hominem element to it still as you are insulted along with what you said, but that doesn't invalidate it. "Ad hominem" is hardly a defence.
"Then you have a short memory"
Or more likely: hasn't come across posts where you express the bug up your ass about java.
"Wine does, certainly"
Erm... mono "certainly" does too... not *all*, and often without some porting (such as changing paths to reflect unixy filesystems), which is stated. You may remember what WINE was like as 'early' into the project as Mono currently.
Among other things, Mono allows transference of skills of Windows programmers to Linux systems, should they desire to work under Linux. If you think people are going to develop under Mono on Linux, and then move their projects over to the Windows platform instead, I think that demonstrates how little confidence you have in Linux.
"Irrelevant, Ad hominem and a strawman. Well Done!!!"
Untrue, irrelevant, untrue, and unduely patronising.
.NET developers: ECMA .NET?#??!!#! WTF is that? (Score:5, Insightful)
All the budding developers who hear about .NET's cross-platform nature will want to learn it. All, except the wisest, of them will be forced to learn MS .NET from MSDN. They'll code a few .NET applications in C#, test them on M$ Windows and let their brains embrace .NET beyond all question. One day they find that most of their applications don't work on Linux/Mono. They'll scream on all public forums - "Linux is crap!!!". Someone tries to explain to them that the problem is because of their heavy usage of M$-specific extensions which are not part of ECMA .NET. Then they'll scream again - "ECMA .NET?#??!!#! WTF is that?". Such is the depth of lock-in involved with .NET.
Re:Oh just go away (Score:3, Insightful)
My claim is that of the two techs mentioned (Wine and .NET), one enables migration from Windows, the other prevents it.
And Mono now negates that last part you said since it allows you to move .NET code over to *nix, so, relating to the actual discussion of Mono, what exactly is your point again?
Re:Mono 2.0 Supports .Net 3.0 (Score:2, Insightful)
I disagree. I actually find the applications I've made using 2.0, spending hours and hours on hand coding SQL statements, are actually SLOWER than the 3.5 applications that I spent minutes and minutes writing LINQ statements. Granted, it probably has nothing to do with the use of LINQ, but I do find the SQL statements it generates are typically sound.
Oh, and I'm the guy who codes in assembly to avoid the performance hit of C because C is for lazy programmers. There, it actually makes a difference - with Windows apps, there's already so much abstraction, added laziness isn't going to effect anything.
ISO (Score:5, Insightful)
C# is an iso standard language, which puts it in the same league as C/C++.....
...and OOXML.
Re:Oh just go away (Score:3, Insightful)
Yes, they will both be in a struggle to maintain 100% compatibility as well, to a point. As soon as Mono comes out with a new version Microsoft will create a new incompatible version like they have been doing. This is the position MS want to be in. They've somewhat lost the ability to change Win32 because it would break everything. They can create a new version of .NET and just claim you need the new run time. Seriously. Why do we need 6 run time environments (1.0, 1.1, 2, 3, 3.5 ... and soon 4)? While I am on the subject... if 3.0 is built on 2 with WPF, why isn't it called 2.5 and why isn't 3.5 (3 with LINQ?) called 2.55? I mean, let's give Java it's due. Version 1.6.4 will run all old Java code and .NET 2 won't run 1.1 byte code without the 1.1 libraries.
Re:Oh just go away (Score:5, Insightful)
Thats the exact position Java has been in for years. Language Spec and JVM spec were open, but Sun's runtime was not. Anyone could make their own runtime. Yet people complained that Java was not open. So why would MS get special treatment for an open spec without an open platform?
Re:.NET developers: ECMA .NET?#??!!#! WTF is that? (Score:3, Insightful)
and what is MS .Net version 3.5 I see mentioned in my search for MS .Net? Mono is only supporting v2.0 and because that is so old that about half of the MS .Net applications out there won't run on Mono v2.0.
hey, what a surprise and isn't that great to know this whole thing is not to enable Windows developers and apps to work on Linux but so Linux developers and apps can run on Windows.
Mono is a one way street, it's a gateway to train developers who can only go to Microsoft's platform for updated versions of the software stack. And, once you go MS, you can't go back. So where is the ECMA version of all this and has it even reached MS .Net v2.0 compatibility?
Every Microsoft technology I've ever seen/heard of has been a one-way street and that is because they need to protect their businesses. Develop with Microsoft's tools and be their tool. It is now pretty much only in the open source market where tech is growing to solve problems instead of tech being used to protect a financial position as it is in Windows. Does anyone remember the early/mid 90s when there was competition in dev tools and there was a dev tools market?
LoB
Re:Oh just go away (Score:3, Insightful)
Given that Mono runs on Windows, what happens if you try running a Win32 version of Mono under WINE?
Re:Mod parent down, here's why (Score:3, Insightful)
This is simply not true. There is no public specification for any of these. Java is mainly defined by a set of conformance tests, which is not a spec. Win32 has been partly reverse engineered so WINE can be implemented. Also, I don't know of any deal between MS and Novel about sharing information, but even if there is one, what difference does it make? Go look at how video drivers get written for X. Lots of open source devs sign NDAs so they can see the specs. This is an unfortunate practice, but it doesn't invalidate any of the work they've done. The code they write is still open source.
I'll also point out that you can write an alternative to Mono simply by reading the source code. The Mono source code has all the information you need to implement Mono. Furthermore, you can do what WINE does and reverse engineer things as you need to, which, to my knowledge, has been exactly what the Mono folks have been doing.
Finally, I'll point out that the comparison was with WINE and Win32 is not an open standard, either. You've conflated two terms in an effort to mislead people here. Nobody here is saying .NET is a proper standard. It's completely irrelevant to the current discussion.