Mono Poises to Take Over the Linux Desktop
Edd Dumbill writes "Miguel de Icaza and the Mono team recently hosted a two day open meeting in Boston. O'Reilly have just published
my report of the meeting. Highlights include
Miguel's view that 'C is dead!' and the Mono approach
to dealing with Microsoft patents on .NET."
Doesn't the Monodevelop IDE look suspiciously like Eclipse?
One of the problems I have with Mono is that it reimplements Microsoft's .NET framework instead of relying on its own. I understand that it is a lot of work to create such an integrated development platform from scratch, but I feel that the benefits of having a truly open/free/whatever solution will far outweigh the extra time that it would take. I am not a programmer, so I don't know much about the intricacies of .NET, but I can't possibly imagine that it is perfect in every way and that nobody can think of things that could be added/changed in it.
.NET is good because it takes the best from languages that are already in existence. It's not like there is anything revolutionary in C# that isn't in any other language out there. I used to be stuck in this PC-centric view of the world. Imagine my surprise when I bought a Mac and realized that NeXT had fantastic things like Internet-enabled Distributed Objects available long before much of the world even knew what a web browser was. Yes, C# is good. But the only people that I know that have been blown away by it are those that didn't stray far from Microsoft solutions and were never exposed to tools available from other vendors. Welcome to what much of the rest of the world had available to them in the form of Java since the late 1990s. And before the fanboys come out - yes I know that C# actually improves on some of Java's deficiencies. But I do take issue with the assertion that C# was made possible thanks only in part to a concerted MS R&D effort. It wasn't.
IMO, I think Parrot will become the .NET equivalent in the open source world: a language independent VM and a huge standard library. I can't wait to have access to CPAN from my Python programs.
Sure, C# is a lot nicer than C, but Python & Ruby are a lot nicer than C#. If you're going to give up the predictability of C/C++ for a VM, garbage collection, et cetera, why not go all the way up to dynamic execution?
Bryan
don't bother mentioning .NET community sites that host on .NET or Match.com. Those aren't transaction heavy or trading systems. Glorified webpages that serve up database tables are simple. A decent developer can build it. Building a transaction application that can handle 500-1000 moderately complex transactions (update/insert) per second is hard. .NET can't handle it, or atleast I all the cases I've heard of in the financial industry failed miserably. If you're in this industry you already know. If you're not, you're probably saying "what bs, .net can scale just as well."
Yeah, try to build one in .NET and tell me how many servers you're going to need. then tell me how you would run real-time analytics on all the rows in a given table when you've partitioned the table across 8 machines and each has 8 million rows. When the CTO says, the query has to take less than 30 seconds, what will your answer be?
Indeed. Since most damned operating systems are written in C I don't think we'll exactly see it go away anytime soon.
Operating systems is where C comes from, and vice versa.
(Yeah, whatever, I'm a C geek. To me, and array of pointers to functions returning pointers to arrays of characters seems like a damned fine idea! =)
Back in my day, we jusy wrote straight to the registers on the device and we were glad! Damned punk kids.
Lost at C:>. Found at C.
But as it is I see the tremendous duplication of effort across the world to do the same things in Java and C#, and it just makes me sad.
.Net or Java runtime and is a far more advanced language than C# or Java.
I think this problem would be solved by writing things in Scala. Scala compiles to
Hmm.
The initiative it takes to back-engineer the
The whole idea of chasing after a proprietary standard like
If Microsoft doesn't want the
Unfortunately, Miguel seems to have a fairly long track record with this sort of Microsoft-chasing. You can run along and play catch-up all you like with other technologies, but, it'll be just like it is with Gnome ---- With Gnome, you're guaranteed nothing better than a perpetual second place finish. Gnome amounts to a Windows wanna-be, instead of a Windows-killer, when it didn't have to be that way. Miguel made it that way.
Look...If you HAVE the talent to do something better, for God's sake, do it. Don't waste your time (and other peoples time) churning out flea market knock-offs of worthwhile products. I'm certainly no fan of Microsoft..I just call it like I see it.
Bowie J. Poag
You might want to look at Nemerle (www.nemerle.org)
.Net for all other languages. Take a look at one of the first paragraphs describing Nemerle from a PDF I found on the site:
.NET did not fit in as well as, for example, C# [5] does. Addressing this issue was the main idea behind the design of Nemerle. In comparison to Haskell [3] or SML [2], Nemerle is not a pure language in the functional sense, allowing the programmer to create completely object-oriented and imperative programs. This makes Nemerle a good transition language for people with C-like imperative and object-oriented languages background. They can take advantage of the language imperative features until they gradually learn how to program in a functional fashion.
.Net as a "Stepping stone" to learn the other languages offered by the .Net platform?
You have brought forth the perfect example of the danger of
Of course, the framework is strongly object-oriented and primarily focused on traditional object-oriented and imperative languages. Therefore ports of the existing functional languages to the
No, not quite a pure language and you have to use the C# libraries. Again, a pale reflection of a real functional language with libraries that do not encourage functional use.
But the real problem is the last sentance - "until they gradually learn to program in a functional fashion".
You and I know how programmers are. We are built for laziness. I am that way myself. So what would happen if we put twenty programmers in a room, ten of which came knowing C# and ten knowing a functional langauge, and had them program in Numerle for a year? I'll bet 18 of those twenty would just be using C# by the end (even knowing how obsitinate supporters of functional languages such people are!), and the C# people would not have picked up a lot of functional knowledge along the way. Because knowing how C# works gets the bulk of work done in the system (as like Java, the bulk of work is done by a rich set of libraries), you will evolve to working in a C# style even in the confines of a functional language!
How many Eiffel# programmers are there out there already? How many people have used
"There is more worth loving than we have strength to love." - Brian Jay Stanley
We have Gnome because Trolltech refused to release QT under a free license in the early years.
The prevalence of KDE at that time showed us that a large proportion of the F/OSS community would cave to non-free software if it was convenient.
Until recently a mutually beneficial relationship existed between Gnome in the community and Ximian as a commercial provider, analogous to the relationship that exists between OpenOffice.org and Sun's Star Office.
Now that Novell owns Ximian (OK Novell are currently our friend, but that may not always be the case) and Miguel is exposing the community to litigation from Micro-Soft down the track through the introduction of non-free technologies (and procedures, methods, etc. which are likely to be covered by upcoming patent laws) the GNOME project needs to distance itself from the disruption that the Ximian guys represent in order to avoid contamination.
Miguel has a solid reputation and has done a lot for the community, but in this case he is either (best case) a fool for thinking that Micro-Soft can be trusted or (worst case) a quisling. Either way, it's barge pole time.
"There is no support for some Python features that some programs will require. Most of these are
fairly obscure, but are a limitation. Examples include:
- String formatting
- Core language features, such as long integers, complex numbers, built-in object methods
and so forth.
- The standard Python library."
Are they joking?
I still give Java the upper hand overall because it's licence. Unless Microsoft blesses Mono with a licence to use the full API, I can't see using it. Mono keeping the APIs they may not have a licence for in a seperate code-base is not enough for me.
The only modern language that is wide-spread and licenced sanely is Java.
The more I try to hire good C++ programmers, the more I become a c++hating bigot.
When over 95% of "C++ programmers" that I interview can't even answer this: straightforward question about virtual methods, I see no hope for the language. It seems most people who claim to be C++ programmers just say that because they use a C++ compiler and stick their functions in objects.
The future I expect is a mix of a higher-level language (Java, C#, perhaps even Python) and C. I can think of cases where C is the right tool for the job (small memory embedded systems), and I can think of cases where Java/C# is (large scale enterprise software); but I don't see C++ as the right tool for either job.
There is almost no difference between C#/Mono/.NET and Java, but almost no Linux developers write in Java.
.Net will evolve too quickly for Mono to keep up. Only in that case it is guaranteed MS will deliberatly include things that will break Mono.
.Net clone, when they are done with that they can concentrate on the single remaining target.
Not quite true. Current Sourceforge statistics by language:
1. C++ (12967 projects)
2. C (12955 projects)
3. Java (11446 projects)
4. PHP (8607 projects)
5. Perl (5388 projects)
There is a vocal group of Java haters on Slashdot.
There is a bigger group who is a bit wary because even though the Java Community Project exist and IBM and others are allowed to develop their own implementations, the licence is not GPL and Sun could screw things up if they turn evil or desperate.
Check out your distribution's packages and you'll almost see more JVMs than Java apps.
Yes, because lincence restrictions prevent them from including Suns java. The open source packages are not mature enough to run all apps, so it's pointless to include those apps. The open source implementations of the VM are impressive, but the java standard is developing too quickly for them to keep up porting all libraries. Just like
there's every reason to use Java, especially for applications.
Yes, and I believe a huge reason for the upswing of Linux in businesses is the great combination of Linux and Java.
Do NOT help Microsoft kill off Java with their
Being bitter is drinking poison and hoping someone else will die
but, really, there aren't that many of those. here's a statement you can argue about:
"usage of c and it's derivatives (c++, objective-c) is more likely create buggy and insecure software. the performance gains from these languages does not make up for this loss of stability"
seriously. direct memory management is a dangerous thing and isn't necessary for 90% of the software written in c-like languages. if you're writing device drivers or an os or whatever, it's important... but does sendmail really need to be written in c?
would it be more secure if it wasn't?
2 1337 4 u!
I think so. They go on to mention that other missing features are things like multiple inheritance, and the ability to reference self in the constructor, and to avoid calling super-classes constructors.
.NET is.... They seem to be Windows pukes, though - they refer to .DLLs all the time, rather than the more general "shared libraries".
.NET, given these limitations.
In the end, though, they come out with something about how "language neutral"
There's certainly no way pretty much any Python code I've written (and I've written a lot) would run on
Seriously though, .Net is a nice language with some advancements over Java, but not different enough from Java to make its existence worthwhile.
.NET and Mono respectively for the fun of it? Sun forced this duplication: through their proprietary license requirements for Java and through their poor handling of Java's technical evolution. In the end, Java's evolution is primarily driven by what makes money for Sun, and that's why Sun has neglected client-side Java and Java numerics, for example. And the reason why they could get away with that is because they have retained legal control of Java.
Maybe not if your idea of programming is limited to hacking J2EE server-side components and a few flaky GUI apps.
For the rest of us, C#'s better native interface, value classes, operator overloading, fixed generics, and fixed exception handling alone are worth it as a language alone.
Add to that that there is a high-quality open source implementation (Mono) and a complete stack of non-proprietary open-source libraries (Gtk#, etc.), and people have really strong reasons for preferring Mono to Java.
But as it is I see the tremendous duplication of effort across the world to do the same things in Java and C#, and it just makes me sad.
Well, do you think that Microsoft and the OSS community are spending time on
So, if this "duplication of effort" makes you "sad", complain to McNealy and Gosling and Schwartz and all of the other Sun managers: it's their responsibility, it's their greed, and it's their fault that it has come to this.
So that's where all those idiot^H^H^H^H^K inexperienced OO java programmers come from! I was wondering.
FYI, a bad OO programmer in C++ is most likely going to be a bad OO programmer in Java as well, except the language will most likely prevent them from taking down the entire machine.
Good OO programming is good OO programming, regardless of the language.
The cesspool just got a check and balance.