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."
Re:Will the coders use it though? (Score:5, Interesting)
I'm sure someone will point out that MS will extend
Libraries (Score:1, Interesting)
Jeff
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:Will the coders use it though? (Score:2, Interesting)
Why should "cross platform" always mean Java/.NET? (Score:5, Interesting)
I mean, take Python! (my favorite high level cross-platform programming languate)
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: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.
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.
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, Interesting)
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!
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.
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
Gtk#? Conservative GC? Hack? (Score:2, Interesting)
Windows.Forms really needs to be *the* standard implementation. I can't imagine many people taking Gtk# applications that seriously on Windows...
And as for the runtime itself... Why write a VM for a garbage collected language and not do proper garbage collection??!
It appears that Novell may have helped Mono pretty up the signs on the outside, but I am much more interested in something that is engineered well from the inside....
Re:Fills a needed gap (Score:5, Interesting)
Re:Will the coders use it though? (Score:2, Interesting)
Let's see... off the top of my head:
* although windows allows icons in menus,
*
*
*
*
The reality is that Java has a very well developed, secure and fully featured API.
Re:Gtk#? Conservative GC? Hack? (Score:1, Interesting)
When Microsoft standardized the
The problem is that System.Forms was not in the standard - In theory, Microsoft could issue a cease and desist order to the Mono group ordering them to remove support for the System.Forms library from Mono.
Now, Microsoft has never done anything akin to that before (for instance, they've never attempted to prosecute their patents against the developers of Wine) but that doesn't mean if backed into a corner, they wouldn't. If Mono is to become an integral part of the Linux Desktop, we must use only libraries that the community has an unimpeachable legal right to use.
Besides, seeing as there aren't that many System.Forms apps in the Win32 world yet, if we get GTK# right, get good support for it in MonoDevelop and get strong Win32 support for it, we can talk even developers targeting Windows to use it. I think Microsoft's worry about that is one of the reasons they're moving to release free versions of Visual Studio
Mono? WTF? (Score:1, Interesting)
But why is no one talking about Python and Perl?
Python and Perl are capable of doing everything that these languages can do, and they essentially do it better. And with the introduction of Perl 6 and the Parrot VM, Perl 6 and Python will both run on the same framework, leveraging the two most successful free languages created.
See, Parrot, Python, and Perl are 100% free software innovation. They aren't a reimplementation of some crap Microsoft put on the table. Why are we always trying to play catch-up? Why do we ignore the good stuff we have going for us?
Why use
And this will be bad PR for Open Source. First, it looks like we're ripping off MS's ideas, because, well, we are. Then, it looks like we can't even get it to work. Then, people rightfully wonder why when we have two systems that are essentially very similar, ie, Java and C#, we decide to back MS technology instead of more mature, more widely available Sun technology.
I say fuck 'em both. If you want a statically typed language, write one to run on Parrot (it's already been done, from what I understand). Why go with some proprietary BS?
Oh, did I mention Parrot is FAST?
Re:Question 40: Will MS change the spec? (Score:1, Interesting)
No. The point of Mono is to have a modern programming platform for Linux that is (1) open source, (2) not controlled by a big company, and (3) doesn't suck technically.
Yet Another Framework with a small user base would stand by itself.
Yeah, I know. It's also naive to think that Yet Another Operating system with a small user base would stand on its own, like Linux. And it's naive to think that Yet Another Gui Library with a small user base would stand on its own, like Qt or Gtk+. In fact, we should just all roll over dead an pay a few thousand bucks to Microsoft and Sun each.
Alternately, MS could just claim the whole thing under its patents and then just sit on it to keep lock -in.
No, they couldn't because Microsoft doesn't have "patents". Microsoft has a patent on
And I'll take a hypothetical threat of a possible Microsoft lawsuit over a platform that comes shipped out of the box with lock-in, like Sun Java. With Sun Java, we don't have to guess whether Sun claims ownership, they already own it.
Re:Wrong, wrong, wrong (Score:2, Interesting)
Well, Python isn't exactly pure OO either, far less so than Java. There's no true data hiding, for example. There's some inconsistencies that look bad (why str(foo) and not foo.str()?). Not to even mention that deep down many types aren't really objects at all, even though they may be used as though they were.
Anyway, Java was designed as a OO language with as little non-OO stuff as possible. Python is a programming language that happens to feature object orientation, and does frequently use it as one possibility of building things - and one of Python's strengths is that you don't need to use OO in your own design, but you can if your design needs it.
Correct. Purely functional programming is the one true Holy Grail. =)
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 sideways - porting things that already exist in Java to
I would have WELCOMED a Microsoft language with real improvemnts over the status quo. Perhaps a functional language, or something with deep Aspect roots. But since C# is just a shallow clone of Java, instead ew all have to suffer through years of language wars instead of advancing the state of computer languges themselves.
My whole thing is I HATE duplciation of effort, and I see C# as the largest single waste of programming manpower in the history of computing. That is why I loathe C# and
I am not so much dead set against Microsoft, I use Microsoft products on my Mac and they are just fine. It's when Microsoft takes up the flag for utter domination at the expense of the industry that I get unhappy and point out what they are doing.