More thoughts about Mono

With the release of the version 2.0 of Mono I want to share with you my recent thoughts.
Right after my previous post here I had some chats with friends who claimed the following points (hope I didn't miss/forget anything):
  • We already have Microsoft propriety technologies integrated deeply in the Linux distributions - like SAMBA for example. It seems that in the past MS people helped SAMBA and they even made some attempts to pull the patents trick again and they lost because you just can't give me something and the sue me for using it. (I didn't check the facts on that).
  • My rants on the subject is exactly what fuels the MS FUD. They don't really want to sue. They just want people to be too scared of not using MS products.
  • In Israel, where I live, there is no law restricting reverse engineering (actually, there's a law permitting it). So, re-implementing .Net in Linux is legal... In Israel.
  • Microsoft spreads FUD even when you don't use their technology directly (for example, last year's claim of having 235 violations of their patents in the Linux kernel). So why bother with the potential FUD that could be spread after .Net is integrated in Linux distros, they'll do it anyway.
Well, in this post I just wanted to present the other side. The arguments are "kind of" logical but I still can't help smelling something fishy in the whole thing.

Mono 2.0 implements C# v3.0 which has some neat features like the LINQ, for example.
Well, I don't have any issues with C#. The language is standardized and legal for reimplementation. There's an interesting interview with it's creator in here.

Mono 2.0 also includes a debugger for the first time.
It's getting more and more usable and I have a feeling that it might take over the whole RAD development in Linux (if you can call it by this name) currently dominated (IMO) by the dynamic languages like Python, Ruby, PHP ... FPC/Lazarus? (*ducks*).

The thing is that I think Linux could use more good RAD tools and it seems to me like Mono is going to do it where the others have failed. I'm just saying that it will be a darn shame if we realize later that it's legally unusable in half of the world (US and others?).

I think that other people in the FOSS community started to feel the need for RAD tools and today you can see cool projects like Vala and Lazarus come to life/resurrected.


Anonymous said...

The main reason IMHO not to use MS, is not FUD, or that it's Microsoft.

The main reason not to use it (and also silverlight) is that you always fall behind of Microsoft, and you can always have something that you do not implement that might change the whole picture. The race is lost in such cases IMHO.

The power of Python, ruby, perl, FPC and Lazarus is that they are open source ! Python ruby and perl does not have standard but yet you have the source code to follow it. That's a real power. You don't have to look for any new trick that was never documented by a big company just to show off in a conference a new ability etc...

artyom said...

First of all FPC/Lazarus is not Duck Typed/Dynamic typed language and can't be put in same line with Python/Perl. It is nice language but it has same programming paradigm as C/C++.

Second. There is no reason to have another Java. And that what C# is. They are so similar in their concepts so sometimes you just can Copy-Paste **same** code almost without changes and it works.

See this good article: http://www.25hoursaday.com/CsharpVsJava.html

So why just put an effort in Java? It has great code-base, it much more cross platform, that are many VM implementations?

You have Java Servlets/JSP technology that is very similar to Asp.Net.

So why all these discussions around Mono... We already have this Rapid development technology called Java.

At least its main provider seems to be little bit more friendly to FOSS.

shlomil said...

That's right but Mono has passed the stage where it's just presented as a cool thing to show off in conferences.
You have 2 Mono apps integrated in one of the biggest and most popular distributions around - Ubuntu.

Ok, My bad, I didn't mean to say FPC/Lazarus is a Duck, I just ducked in case idkn will have the urge throw at me something heavy had I not mention it :)
And I didn't mean to say it was dynamic, what I meant is that falls in the RAD tools category as far as I concern.

Second of all, C# is not Java.
You give too little credit to the Delphi creator, packed with 20 years of experience he managed to do something just a little more innovative (c# v3). And with Microsoft pushing it - it just might surpass Java's popularity in the future. Just have a look in the Job search pages in Israel and count C#/Java references.

The Sun JVM source code is not completely released AFAIK and you have the free implementations falling far from being usable as a true replacement.

BTW, Have you seen any Java desktop applications in main Ubuntu? or any other distro for that matter?

Seems to me like Java as a FOSS RAD tool failed miserably. Sun should do more if they don't want to see their only market go away.

The problem with sun is that they release stuff only when it's too late and the product is dying.
(anybody said Open Solaris?)

artyom said...

Seems to me like Java as a FOSS RAD tool failed miserably.

It is all question of marketing. There are too many Windows.Net programmers that want familiar platform.

However, there is still no real reason to push C# to mainstream. Java is still more mature for FOSS/Linux development.