Ars Technica Tours Mono 465
Kevin Francis writes "Over the coming weeks, Ars Technica will be taking a look at Mono, including a basic introduction to Mono, MonoDevelop, and C#, and then branching out to GTK#, database access, ASP.NET, advanced C# topics, and conclude with a discussion of the future of Mono, and the C# standard. All the examples will work on Windows and Linux, with OSX support coming shortly. Part 1 of the series is online now."
Will the coders use it though? (Score:3, Insightful)
The framework of Mono provides the ability to make a very tedious task in C/C++ almost trivial in C#. As the above example, RegEx, shows, it helps the programmer concentrate on the program itself, rather than the logic supporting the code.
Yes, it is very exciting to have developers be able to easily write code that will work both on Linux, Windows, and OS X (obviously with the correct libraries) but will the coders utilize Mono when doing their work? Will they be concerned enough that Linux and OS X users are worthwhile supporting to make sure it is cross-platform?
Re:Will the coders use it though? (Score:5, Interesting)
I'm sure someone will point out that MS will extend
Re:Will the coders use it though? (Score:4, Interesting)
You are operating under the assumption that the main use of Mono is going to be to allow people to write
But most Mono software will likely be developed using OSS libraries for OSS platforms. It makes no difference to that kind of development what Microsoft does with
The fact that Mono can also be used to easily port
I'm sure someone will point out that MS will extend
There is no "standard" for
Re:Will the coders use it though? (Score:4, Insightful)
Strangely that assumption is quite widespread. I think I've tracked down the source [mono-project.com] though.
Lucky that for you portability from Dotnet to Mono is an added bonus. Let's hope that other Mono users will have an equally chilled attitude!
Re:Will the coders use it though? (Score:5, Informative)
Yes, you have correctly tracked down the source of that misconception. It's an easy misconception to have, given what the Mono project writes about itself.
Now, dig down a little deeper and go to the downloads [ximian.com]. What do you see? A "Mono Stack" on the left, consisting of OSS libraries and APIs, and a
Now, turn to the FAQ:
What does that tell you?
Why is the Mono project seemingly saying one thing and delivering another? Well, in part, it's because the term ".NET" is really ambiguous. In part, it's because where their money comes from and where their commercial interests are (they aren't doing this out of religion, they are in it for commercial purposes).
So, your confusion is understandable. I wish the Mono project were clearer on their front page, too, but I suspect they have reasons for what they are doing. Either way, you should really dig a little deeper.
Re:Will the coders use it though? (Score:5, Insightful)
That being said,
The lesson? MS is going to win, because they have the advantage, at least on the desktop. Paradigm shifts (unix->dos->windows->linux) don't happen very often, and you need a lot of geurilla tactics to even have a fighting chance. The best thing I can see is to support
As an added bonus,
Re:Will the coders use it though? (Score:2)
One would never accuse Microsoft of that. Or Miguel.
Unless you're saying that there's something really "fresh" in Dotnet that's not in Python, Java etc.?
Most companies I know using Linux already have a top quality cross-platform environment, transferring their Win32 applications to Solaris and Linux faster than you can decide whether today you're in a WinForms, Avalon or GTk+ mood.
Still, respect due for the brave prediction regarding Microsoft's dominance of the deskt
Re:Will the coders use it though? (Score:4, Insightful)
Better hurry before Longhorn comes out, too... That may set OSS back 10 years or more, but at least MS has given us an extra three years to innovate in the meantime!
Meh. MS has the plans for Longhorn written already, and they are busy coding / taking peices out. All the while, OSS innovates. A typical modern Linux setup will run just as fast, if not faster than an equivalent Windows XP setup. And development continues onward and upward. Now, with X.org being the *new* standard, development of that environment will take off (crosses fingers). We won't have to deal with the sluggish , non-innovating ouncil of XFree86.
It's probable that equivalent alternative OSS workstations will be at the same level that Longhorn will be within a year and a half. When Longhorn comes out, it will be obsolete. Then again, the transition to from Win32 to Longhorn will be just as painful as a transition from Win32 to Linux/BSD w/ X.
The only thing that I see holding Linux back is the hardware adoption / drivers. Companies aren't going to be too interested in developing Linux drivers if we have things like ndiswrapper around. I'm still pissed at Realtek, who said they would release a 2.6.* compatible wireless driver in April, but still haven't. At least Nvidia and ATI aren't delaying Linux adoption... I suppose that a little company called ID is helping in that respect.
Re:Will the coders use it though? (Score:3, Insightful)
Exactly.
There are already several free/commercial JVMs on Linux. Sun, despite a lot of handwaving to the contrary, has been quite friendly to the free software community. C#/CLR is not much more than a slightly warmed over version of Java, without an unencumbered cross-platform GUI library. Java has two major contenders (Swing and SWT).
Mono was a bad idea a
Re:Will the coders use it though? (Score:2)
I will. And you?
Re:Will the coders use it though? (Score:2)
Re:Will the coders use it though? (Score:5, Informative)
The app clearly has to be written with crossplatform execution in mind. (I know this goes for c and java too, but some people seem to think they will run office on mono in the future.).
You need to steer clear of anything that depends on a platform.
- if you define a path, make sure you use path.combine or path.directoryseparatorchar instead of a / of \.
- don't depend on environment variables
- pay attention to casing, don't say "file.ext" when it's "File.ext"
I know it should be ovbious to any cross platform dev out there, but I just thought I'd bust some bubbles with some of the less informed.
Re:Will the coders use it though? (Score:2)
Why, because they don't work the same way in both Windows and Linux? Is there some fundamental difference I'm missing...?
Re:Will the coders use it though? (Score:4, Interesting)
Re:Will the coders use it though? (Score:4, Informative)
In fact, there's a new method in 1.5 to get all the env vars...
http://java.sun.com/j2se/1.5.0/docs/api/java/la
http://java
Re:Will the coders use it though? (Score:2)
Re:Will the coders use it though? (Score:5, Insightful)
Re:Will the coders use it though? (Score:2)
Re:Will the coders use it though? (Score:2)
I discovered Mono for my at-home-just-for-fun-stuff and I'm now able to leverage the experience by replacing non-Microsoft technologies at my day job with Dotnet.
For Bill Gates, this has probably been the greatest boon of having Mono. Hopefully other developers forced to work in Java or Python will now be able to bring more great software to Windows.
Re:Will the coders use it though? (Score:2, Interesting)
Right here... (Score:2)
So far, it is pretty damn cool and I am very happy with it. It is exciting starting fresh in a new language. I recommend it.
Re:Will the coders use it though? (Score:5, Informative)
Right. Of course that's all about to change - from the Java 1.5 ("5") new features site [sun.com]:
You still need to deal with exceptions - that's a bad thing?
Re:Will the coders use it though? (Score:5, Insightful)
Unlike Java, Mono doesn't try to shove cross-platform development down people's throats. If developers want to use Mono to develop Windows-specific applications, that's cool. If developers want to use Mono to develope Linux-specific applications, that's cool, too. If developers want to develop cross-platform applications with Mono, that's cool, too, and Mono supports that, too.
I suspect the biggest use of Mono will be the development of Linux desktop apps using Gnome/Gtk+. Many of those applications will be difficult to port over to Windows because they will rely on Linux-specific features. But that's no different from Gtk+ applications written in C or C++; Mono simply makes it easier to develop such applications by giving developers a choice of using C#.
The second biggest use of Mono will likely be the deployment of applications and libraries developed for Windows on Linux machines. Those applications were not originally written with cross-platform portability in mind, but by supporting Microsoft's APIs well enough, those applications will either work out of the box, or port over easily.
So, Mono gives the programmer the choice between writing cross-platform apps or taking advantage of platform-specific features. That's where the choice belongs, IMO.
Re:Will the coders use it though? (Score:3, Insightful)
Yeah, that whole JNI for plugging into java, definitely cross platform.
And as for porting over easy, don't forget, interpreters will inevitably have bugs which cause them to act differently.
-s
looks promissing but what is it really against? (Score:4, Informative)
What are the methods currently used by GIMP, OpenOffice, Mozilla among others that already support multiple OS's?
Maybe Ill start learning coding with this and kill more birds with the same shot
Re:looks promissing but what is it really against? (Score:5, Interesting)
Those projects are all written in C++. They all use libraries that are cross-platform but they're littered with #ifdef WINDOWS
The theory is that with
Maybe Ill start learning coding with this and kill more birds with the same shot
That's a really good idea. Mono and DotGNU make
What I *really* want to see is mod_mono with class wrappers for the identical IIS hooks. Imagine being able to develop web apps on your WinXP laptop on the road and push up to your Linux server farm without any worries. I'm crushing already.
Re:looks promissing but what is it really against? (Score:2)
Re:looks promissing but what is it really against? (Score:5, Informative)
First of all, Gimp is not C++, it's written in C. And Gimp contains very little to no platform-specific code. Gimp uses Gtk and Glib as portability layers. The Gimp maintainer strives to have as little platform-specific code as possible. He even wants to eventually get rid of all of the remaining little #ifdefs.
Gtk and Glib are also not littered with #ifdefs. Gtk uses Gdk as portability layer. Gdk has several implementations: X, Win32 GDI, DirectFB, etc. An implementation is automatically chosen by the configure script (or something like that, not really sure about this one), but there are very little #ifdefs.
I don't know about Glib.
"The theory is that with
My theory is that it will end up with something like Java or all the other portability frameworks for C/C++. The simple things are portable but when you want to do some more complex things, you suddenly face the limitations. And you also have limited ways to really integrate with the platform's desktop.
Re:looks promissing but what is it really against? (Score:2)
RAD tools (Score:5, Insightful)
The syntax for building Winforms is completely different to GTK# (as one might expect) but the documentation I've found doesn't really map types and methods for developers familiar with existing RAD tools such as MonoDevelop and the excellent SharpDevelop.
Tool designer support for GTK# is crucial.
Re:RAD tools (Score:2)
Side question, how far along in terms of usability, functionality is MonoDevelop compared to SharpDevelop? It's one of the Apps I used a fair amount on Windows and was fairly decent, not as good as VStudio but decent, and a code editor / ide is something I miss on Linux.
Re:RAD tools (Score:2, Informative)
Re:RAD tools (Score:5, Informative)
Re:RAD tools (Score:3, Interesting)
http://gladewin32.sourceforge.net/ [sourceforge.net]
GTK# ships with Glade# [hispalinux.es], so yes, there is a libglade for Mono.
Re:RAD tools (Score:2, Informative)
Bull (Score:3, Insightful)
As you can clearly see, Mono brings almost limitless possibilities in breaking down the barrier between desktops: a commercial software provider would target Mono and it would "just work" on all platforms that Mono supported. How is this different from Java? In my opinion Java makes things harder than it needs to be. For starters, enforced exception handling can't auto-box/unbox primitive types and doesn't support arbitrary length parameter lists String.Format() style.
I find this kind of claptrap irritating. Java is one of the easiest platforms to jump into. If you found it harder than it needed to be, you needed more coffee.
Re:Bull (Score:5, Informative)
So...
Personally, I think the C# folks make too much of a big deal about the mandatory exception handling in Java. Heard a fellow from Microsoft say "Frequently, Java folks just put an empty catch() block to catch the exception they know won't happen, so why make it mandatory?"
I've got bad news for you. I find situations like that about once a week when auditing my programmers' code, and it's almost always a situation that -can- happen, but the programmer couldn't see it.
Don't trust the programmer. I know, I am one.
Re:Bull (Score:2)
I've got bad news for you. I find situations like that about once a week when auditing my programmers' code, and it's almost always a situation that -can- happen, but the programmer couldn't see it.
I agree. And that's exactly what makes
Mono and geeks (Score:2, Funny)
...because most geeks no nothing about it
Fills a needed gap (Score:5, Insightful)
Re:Fills a needed gap (Score:3, Insightful)
So no, this WON'T replace X, it will make it a better decision to use C# in the future. A plus to both Windows application devs, and Linux users alike.
Re:Fills a needed gap (Score:5, Interesting)
blech! (Score:2, Insightful)
What was the reasoning behind making the first letter of the method names upper case?
...and .exe on my executables?
When is Miguel going to port the windows registry?
I'm sorry but the thought of microsoft's mangled conventions polluting the linux/unix world is making me ill. :-(
Re:blech! (Score:2)
It's Microsoft's coding conventions. They apparently go back to some people the hired from other well-known research labs in the distant past. I think it's mostly an indication of the kind of insulation Microsoft has grown up in.
I'm sorry but the thought of microsoft's mangled conventions polluting the linux/unix world is making me ill.
It's not pretty, but, frankly, from a traditional UNIX point of view, neither
Re:blech! (Score:4, Informative)
We have Open Standards and Open Source for that sort of thing already.
We also have Java for the write-once-run-anywhere thing. I fail to believe that .NET/Mono/.GNU will be better or solve any new problems that have not already been solved.
There's even an official Windows port ofn Java, so I'm told...
Re:blech! (Score:2)
Uninformed zealot. Whats the matter? DO you feel threatened beceuase youre 1337 status for having unreadable code using hungarian notation threatens youre job safety?
If only I were allowed to write code. The nearest I get is the odd bash script and a Makefile once in a while :-(
Re:Java (Score:3, Informative)
It did actually, despite what Microsoft, the Slashbots and the Linux (and Windows) press would have you believe. There are millions of Java developers across the world, there are billions of devices from phones to high-end servers running Java. The number is growing despite what the Redmond Marketting Machine tells you. Even IBM likes Java.
Re:blech! (Score:2)
Re:blech! (Score:2)
private:
int number_;
public:
int number() const {return number_;}
int number(int v) {return number_ = v;}
I do have problems with your reasoning. Renaming by changing the case will break searches, unless you assumme the language is not case-sensi
Why should "cross platform" always mean Java/.NET? (Score:5, Interesting)
I mean, take Python! (my favorite high level cross-platform programming languate)
Re:Why should "cross platform" always mean Java/.N (Score:5, Insightful)
It will be a sad say indeed when developers are tied to a specific language for a specific platform just because that is what someone has mandated from on high.
I look forward to the legal and security issues with .NET, Mono and .GNU. We live in interesting times.
Re:Why should "cross platform" always mean Java/.N (Score:4, Informative)
Not necessarily. People have targetted other languages for the Java runtime, including Python (Jython) and Scheme (Kawa). Basically, as long as you can spit out Java bytecode it doesn't matter language what you compiled to get it. Same basic idea with
Re:Why should "cross platform" always mean Java/.N (Score:4, Insightful)
So is parrot. But what is the point anyway? Are you going to have a project where each member of the team is going to program in a different language? Are you going to have an open source project which accepts patches in 10 different languages?
I never did understand why this was a desirable thing. It sounds like a nightmare to me.
Re:Why should "cross platform" always mean Java/.N (Score:3, Insightful)
Maybe you will, but not likely. What's more likely is VB programmers using a
Re:Why should "cross platform" always mean Java/.N (Score:3, Insightful)
You mean like using activeX controls in VB while not caring about what language they were written in. Or maybe you mean using DLLs from VB while not caring about which language they were written in.
Re:Why should "cross platform" always mean Java/.N (Score:3, Insightful)
There was never any need for
There is still no need for
What a collasal waste of money and time.
Re:The ONLY thing? (Score:3, Insightful)
So people keep saying, but I don't really see much evidence. You must have heard of gcj [gnu.org] and GNU Classpath [gnu.org]? What about IBM Eclipse [eclipse.org] and SWT [sourceforge.net]?
These all address various "issues" that people have with plain Sun Java and tools.
I think Miguel's decision to go for a .NET clone had a lot to do with his personal admiration of Microsoft. Couple that with the fact that Microsoft is p
Re:The ONLY thing? (Score:2)
Re:The ONLY thing? (Score:2)
Yep, here it is... (Score:3, Interesting)
You can also find a Powerpoint on this here [cit.co.cr]. Note that they even talk about supporting ASP calls via a servlet library they have built!
Re:The ONLY thing? (Score:3, Insightful)
I suspect that what he'll end up with is a bytecode interpreter and a C# compiler that conform more or less to the standard, and not much more. The rest will be pretty Mono
Re:Why should "cross platform" always mean Java/.N (Score:2)
Re:Quantity over Quality. (Score:2)
Either way, the platform is pretty powerful, and no matter the language, there will always be good developers and bad developers. You can't always blame that on the platform.
Re:Why should "cross platform" always mean Java/.N (Score:2)
Marketing.
Re:Why should "cross platform" always mean Java/.N (Score:2)
Simple (Score:2)
Because of the great power of mono! Behold:
I mean, in Python, it'd be like:
matches = re.match(regex, input)
That doesn't look like great power to me.
(all joking aside, I found the article interesting, and if it weren't for the (potential) legal issues, I would probably be playing with C#)
Wrong, wrong, wrong (Score:5, Interesting)
No, it's a programming language. It's just productive enough for scripting. "Scripting language" doesn't really mean anything.
I would also add that the Java SDK supplies developers with FAR more common libraries than Python does which tends to cut development time.
Python libraries generally have better (simpler) design and are easier to use. And there are lots of them, both in the standard library and available separately.
Semantically, Java is a pure-OO language. Python is not.
It's exactly the other way around. Python is pure OO language, java is not. Does 'int' ring a bell for you? Python provides functions, but they are objects, just like ints, strings and, say, sockets.
Not that being pure OO language is the end-all and be-all. It just makes the language semantically cleaner while trading off some performance.
Opening a file in Python is a one liner. In Java you need 2 or more objects and 3+ lines of code. But you have much greater control over how the descripter is read.
You can have all the control you need, all the way down to file descriptor level. People just don't seem to need the control. Nothing prevents you from writing wrapper objects with different buffering policies.
Maybe because nobody has a mainstream cross platform app that is written in a scripting language?
Bittorrent? And quit with the "scripting language" term, it's ignorant or intellectually dishonest, take your pick.
Re:Why should "cross platform" always mean Java/.N (Score:3, Informative)
Re:Why should "cross platform" always mean Java/.N (Score:3, Informative)
Java compiles to bytecode, Python compiles to bytecode. If being a "scripting language" means that you're not *forced* to compile to bytecode to run a program, then aren't scripting languages simply a superior form of "programming languages"?
Verbosity in Java doesn't translate to flexibility. It may occasionally translate to more control, but that's rare. Most of the time, it's just due to the inflexibility of the language. Conversely, just because Python provides an easy way of dealing with files d
Just a bit biased.... (Score:5, Insightful)
What a stupid simplification!! There are legitimate concerns over how MS exerts it monopoly power, and many of the resultant concerns with Mono and its support of MS'
Mono's main pull for developers is that it is cross-platform and makes writing applications very fast because of its extensive framework. Mono also has the concept of garbage collection. Gone are the days of using malloc() and free() and recording where you allocated memory and making sure you free() it. Java has GC as well, but Java never really caught on as an application language.
Another biased statement; has C# caught on as an application language? Why not point out that C# is pretty close to a clone of the Java language, and that
I don't mind a review of Mono. I was interested in reading it, and would like to know more about it. But, when the author so casually dismisses the concerns with MS and Mono, or dismisses the legitimacy of Java, I question his objectivity.
A harsh truth... (Score:2)
I should think the answer to that would be obvious: In any industry, if a company with 95% market share decides they're going to do something a certain way, whatever they've decided? That's the standard now.
A standards committee can go a different direction if they like, but it's akin to that guy in Hitchhiker's Guide to the
Re:Just a bit biased.... (Score:2)
It doesn't matter because that's not what Mono is about. Mono has two sets of APIs: OSS APIs and
Re:Just a bit biased.... (Score:2)
Please!! stop the insanity!!!! (Score:2, Insightful)
And how is this better than wxWidgets/wxPython? (Score:5, Insightful)
And not only can I use it today, I get better results than I would with GTK# or Java in terms of cross-platform interfaces. If you've ever seen the GIMP on Windows, you'd know that GTK apps don't quite look like professional Windows apps. Emulated interfaces will always look out of place, particularly as themes get more common.
I'd encourage anyone who is interested in cross-platform programming to download Python and wxPython, then run the wxPython demo on Windows, Linux or Mac OS X, and then explain to me exactly how it is that Mono is breaking new ground. (Note also that the wxPython 2.5.2 release on Mac will sport a number of nice improvements and is due out soon.)
The only new and unique thing that I see about Mono is that it uses and is compatible with APIs designed by Microsoft. As a compatibility layer, that has some value, but they will always be two steps behind Microsoft and MS will always ensure that the best
Anyways, time to go back to making my native, cross-platform apps.
Re:And how is this better than wxWidgets/wxPython? (Score:2, Informative)
it's not either/or (Score:3, Informative)
As languages, C# and Python are simply different. Both have their uses, and neither is better. C#, for example, lets you do pointer manipulation and its implementations are efficient enough even for writing low-level loops. Also, pe
Re:And how is this better than wxWidgets/wxPython? (Score:2, Insightful)
The advantage I see is allowing
Re:And how is this better than wxWidgets/wxPython? (Score:4, Informative)
I've been playing around with (wx)Python as well lately and it rocks!
Especiall combined with:
Boa Constructor:
'A cross platform Python IDE and wxPython GUI Builder. It offers visual frame creation and manipulation, an object inspector, many views on the source like object browsers, inheritance hierarchies, doc string generated html documentation, an advanced debugger and integrated help.'
http://boa-constructor.sourceforge.net/
And the Twisted framework for network programming. http://www.twistedmatrix.com/
"Twisted Matrix Laboratories is a distributed group of open-source developers working on Twisted, an event-driven networking framework written in Python and licensed under the LGPL. Twisted supports TCP, UDP, SSL/TLS, multicast, Unix sockets, a large number of protocols (including HTTP, NNTP, IMAP, SSH, IRC, FTP, and others), and much more."
I've now got a fully asynchronous and very fast custom server running.. in less then a day from a clean start with the Python language!
I really recommend checking this out!! ^_^
Re:And how is this better than wxWidgets/wxPython? (Score:2)
One of my wxPython apps does trivial little things like provides WYSIWYG HTML editing (via embedded Mozilla), lets you preview pages in IE/Mozilla at the click of a tab, exports files and in fact entire sites from HTML to PDF, lets you create online, self-grading quizzes, maintain your site structure using a treeview, including clipboard
A strange place to follow Microsoft (Score:5, Interesting)
What has always struck me about
bool matches = Regex.IsMatch( input, regex );
is telling. After all, you could do this--with a cleaner syntax, mind you--in Perl fifteen years ago. Don't like Perl? Well, Python then. Or even old clunky TCL. And so to me, the furor over
Perl and Python have always been better supported under Linux than Windows, and I'd even call them the Linux way of approaching software development. Leverage the best tools available so you can achieve more in less time. Microsoft has been playing catch-up here, and
Re:A strange place to follow Microsoft (Score:4, Insightful)
Yippie skippie. Show me the code for a RFC822 and MIME multipart parser or something actually beyond this hello world stuff. Regular expressions are library stuff, they have been trivial for more than 10 years. Show me some real work getting done.
(no this isn't aimed at you, I just want to hang my reply off something)
Some silly points (Score:4, Insightful)
Overall I thought the article was pretty devoid of any meaningful reason for why we should use mono. It doesn't sound better than Java (not worse either), and it isn't a replacement for C/C++.
The elephant in the room (Score:5, Interesting)
With Java you can do everything in the example, with ease. From the article:
The great power of Mono and
bool matches = Regex.IsMatch( input, regex );
Wow! Well, in Java it looks like this:
boolean b = Pattern.matches(regex, input);
Is the great power of Mono then that they have screwed up the name of the matching method to FunnySound?
Or what about GTK support in Java - you could use Java-Gnome [sourceforge.net]. Or you could use AWT. Or you could use Swing. Or you could use SWT if you prefer native performance.
And using all this, you don't have to wait for OS X support - it's here now! Chances are you don't have to wait for support on whatever OS you are using in fact, as the JVM is now pretty much everywhere.
So why ignore the elephant? Why does this article not go into the reasons why you would want to consider a platform years behind an exisitng one with similar capabilities, better cross-platform support, and way more tools. Instead it just pretends that corss-platform wasn't even possible before MONO.
Because of the improvements (Score:3, Interesting)
Now with C#, the situation is much more murky. C3 over C++? Sure. But C++ over Jvaa, there are just not enough distinguishing differences to make it worth shifting over the whole platform. Furthermote a lot of effort has been put forth just to move
Evaluation applies to any VM language (Score:5, Insightful)
I think the success of Java vs .NET will depend on how it is distributed and the "user experience" of installing and using .NET vs Java applications. Sun doesn't have the same level of control over the desktop experience that Microsoft has for desktop applications so that may be a deciding factor for most users.
On the server, Java is already very popular and installation/launching headaches are tolerated more because admins are willing to put in a little more effort than most users.
Other issues such as relative performance and the "look and feel" will also play a big role with users.
In the general theoretical sense, there isn't much difference between Java and .NET. The success of each will depend on the implementation.
Re:Evaluation applies to any VM language (Score:3, Informative)
Except those
A. Polymorphic instruction set
In JVM most instructions have the types of their arguments hardcoded (faster interpretation but harder to create a compiler to emit the correct one)
In CLR has polymorphic instruction set, only the result type is hardcoded (compilers have much easier job but JITer has more work to do)
B. Extensible convention for emitted members using attributes
C. Assembly packaging vs JAR
But, why? (Score:5, Interesting)
So instead of targetting the Windows platform, or the Linux platform, or the Java platform, I can now target the Mono platform, which has *GASP* a regular expression library.
Excuse me if I'm not a little underwhelmed by this. We're supposed to get excited about Mono because of the libraries? As if a good C or C++ coder couldn't write a regular expression parser in less than a week?
But no, I'm converting to Mono because (pick one or more):
I really don't see the big deal here, folks. The fact that the binaries are portable without recompile isn't going to make up for the fact that C++ is a mature, very powerful, fast, portable language.
Okay, if you've got counterexamples of the points above, I'd like to hear them. But save it if you're going to flame me for broiling your sacred cow. I'd rather see a few good reasons to switch from C++ than a flame war, and right now, Mono isn't making a compelling case. To me, it seems like its Yet Another Algebraic Language With Libraries.
Putting Mono, .Net and all that into perspective (Score:4, Interesting)
2) A group of OSS people saw some nice things to the whole 'plattform' and started programming it themselves. More power to them. I would've considered their time more worthwhile spend on a proper Font system for X or a layer that leverages Motif, QT and GTK into one big engine as to rid the Toolkit bloat of OSS, but it was their decision.
3) Mono is 'finished' into a solid 1.0. Great. People say it sports some cool stuff. That's nice. Thanks for the great work. I'm going to look at it sometime. NOT because it is a redoo of MS stuff. I for one don't give a doo-doo about Mickeysofts software products anymore since... well a very long time.
But I do like new tech-frontier OSS software so I'll probably support it. Looking at the way things are going just now it could very well be that
Re:Putting Mono, .Net and all that into perspectiv (Score:3, Informative)
You don't know the first thing about it, do you? Go read [everything2.com].
NET langages compile to plaform-independant bytecode. Shure it's ripping off Java, but it shows good taste in plagarism.
What a retarded website (Score:3, Informative)
The phrase we've got other stuff lined up inside would imply the link goes to the other stuff. The url for it seems like it'd show an index of all their linux content. But the word 'inside' actually shows the article.
Re:Libraries (Score:5, Informative)
ECMA-335 Common Language Infrastructure [ecma-international.org] (of which
Re:Libraries (Score:2)
Re:Libraries (Score:2)
Mono is an implementation of ECMA C#, bindings of C# to OSS libraries like Gnome, Gtk, etc., and a reimplementation of the
I suspect most Mono developers never touch Mono's
I'm not sure we can be confident that Microsoft can't legal
Re:Libraries (Score:2)
Re:Microsoft and Lawsuits (Score:2)
Re: (Score:3, Insightful)
Re:Linux is catching up (Score:2)
XFS, JFS, ReiserFS.
Don't just complain --- write something.
Re: (Score:2)
Re:Gtk#? Conservative GC? Hack? (Score:3, Informative)
Bullshit. Mono supports Windows.Forms via Wine. There is no way this can be "*the* standard". Windows.Forms is tied to the Win32 API, which even MS considers outdated. That is why they are replacing it in Longhorn. From this already discussed article [joelonsoftware.com]: