I have been seeing more and more articles and blog posts about Mono lately but I fail to realize the importance of it. I wish I was rude enough to just email to Miguel and ask him why has he dedicated so much time of his life working on it, but I better ask people who's not related to Mono - you.
Seriously, what is their motivation? I mean Mono people's. What they are doing, how I see it, is porting someone else's platform (Microsoft) which by itself is in essense just a copy of another platform (Java)... which already runs fine on Linux! Basicaly it lookts to me that Mono guys are just building a poor performing copy of copy of something original (Java platform) which already is built and works just fine. And have been, for a long time alreay. So long, that people are already getting bored with it.
Why??? Any ideas?
--
tx
P.S. I've been working with .NET for a while. Yes, it's rich and seem to have every imaginable feature, so do Python/Perl/Ruby/Java with their libs (all are 1st class Linux citizens). Why would one want to port .NET to Linux is beyond me...
'provide developers with open source tools for building cross-platform applications that can run on Linux, UNIX, and other platforms.'
To understand the motivation why just look at the the gnome project which de Icaza started with Friedman. Before gnome there was no acceptable linux opensource gui's hence the drive to build re-build another gui (remember microsoft & apple has/had a better solution) but it is/wasn't free. So mono was started to ...
- to create an opensource version of C#
- there is/was at the time a sun java & opensource java (free) but not a lot of traction with os version
- to look at a better way of building apps on open source systems
- as a means to gain language Independence using universal byte code (not bindings) with clean environment
- allow an easier way to create applications in linux community
- allow developers on linux who want to get the job done using managed environments (not suited to system applications)
- can run different languages using vm (limited) but mature (compared to parrot)
- the core is VM (virtual machine) is called mono, implementation of ECMA standard. Has no language but CIL (low level byte code). So C# is just one compiler that generates to CIL. Mono has VB, Lisp etc. Also has a Java VM. It also has many third party compilers (any language supported by gcc). Then you can mix different languages together. So it's really language independent and whatever works for you.
- fun to do more challenging things, learning about webapps to windows forms, to opengl ... "open ended university" and not get stuck in one style of programming - pcs & one single operating system
- gives Windows developers just another set of platform(s) to run (not develop) their applications
Oh yes, I know ;) but I wouldn't say it is much less verbose than the first example in terms of the number of words used, and besides, it's Microsoft's tutorial, i.e. it's how they teach novice programmers to program in C#.
I don't understand it either. Perhaps they hate Microsoft and want to provide a way for people to migrate away from the MS Platform, once they see the light.
I have wondered the same thing about studio musicians. I was thinking that if you are such a skilled musician, why wouldn't you write your own music. But I was told that some people just don't have that creative streak, whereas others lack the skill to perform on their instruments. Could be the same with Mono - they are probably excellent programmers and enjoy programming, but don't have own ideas about what to program.
In my opinion, that is bullshit, though - it is not so hard to get good ideas.
I can see this filling the same niche as software to run ASP on Linix (well, at least the way I use the software): some consulting company that does mostly OSS wants to attract MS-based clients. The cheapest thing to do is to just run the .Net software on a nix box and say "hey, we host .Net apps!" rather than finding or becoming an experienced Windows sysadmin...many hosting companies offer ASP on the nix boxes for that exact reason: to appeal to a larger market.
When Mono started, I warned people that MS would use their patent portfolio to cripple the stated goal of Mono (allowing Linux to run .Net apps). While my prediction hasn't come true yet, I'm feeling pretty smug right now, given all the MS patent threats of late.
According to Miguel Microsoft people have been quite helpful. For instance they are providing some help with improving Mono compiler performance and quality of code generation:
http://tirania.org/blog/archive/2007/May-17.html
I think it's because they're a bunch of Microsofties. They saw C# and .NET and thought, OHMIGODC001, and wanted it on Linux. They probably migrated to Linux in just the same way, OHMIGODC001 C0MM4ND-L1N3!
I think it's just a project so they can feel like they're working hard on something. It's a time-killer. A wasted effort unfortunately :(
(I hope I didn't come off as too harsh...I've only gotten 2 hours of sleep in the last 24 hours and have a bit of a sun burn)
In my opinion, Mono can make for linux what VB made for Windows: offer a simple-to-learn, simpler-to-use development environment, specially for the corporate world. Many managers prefer to use a "manager-safe choice" like windows/.net to risk on opensource platforms. I think VB was key to the windows commercial success and wide adoption on the mid-90's. Linux didn't had something like that in that time. Many desktop and web apps are being developed on .NET, and the possibility of running them on linux may give it a place it didn't had before. .NET might not be a good choice for a internet startup but it's certainly for corporate and desktop apps. And they can ride over MS marketing pushing the adoption of .NET.
Besides, .NET is a pretty good platform and Miguel and the community are doing an amazing job =)
Seriously, what is their motivation? I mean Mono people's. What they are doing, how I see it, is porting someone else's platform (Microsoft) which by itself is in essense just a copy of another platform (Java)... which already runs fine on Linux! Basicaly it lookts to me that Mono guys are just building a poor performing copy of copy of something original (Java platform) which already is built and works just fine. And have been, for a long time alreay. So long, that people are already getting bored with it.
Why??? Any ideas? -- tx
P.S. I've been working with .NET for a while. Yes, it's rich and seem to have every imaginable feature, so do Python/Perl/Ruby/Java with their libs (all are 1st class Linux citizens). Why would one want to port .NET to Linux is beyond me...