“As Microsoft and Sun Microsystems prep new Web services development platforms for debut this spring, Linux developers can expect the Mono Project to be completed not long after–by early fall. At Web Services Edge East here, Ximian CTO and Mono Project leader Miguel de Icaza told attendees that the version 1.0 server-side components of the software will be delivered in September.” Read the report at InternetWeek.
This won’t matter. A majority of the Linux camp will not support it because its still MS based. The large majority of the Windows camp will never support it because it will always lack the key features (Web Services, Web Forms, Win Forms, etc). I honestly don’t believe people are going to use another UI toolkit.. They are going to use whatever Visual Studio uses by default.
If it ever wants a remote chance of taking off, it will have to support 100% of what MS supports with their side, and that will never happen (and MS will never let that happen).
a lot of developers will indeed not support it because it is MS based,
but the .NET framework and the language specification are free.
i like the .NET architecture because it will enable me to write code that runs on both linuxm unix and windows.
i also like C# very much because
-it is C like syntax
-it is reasonably easy to learn if you know C
-the framework is easy to use.
but this is just my opinion of course.
I am also positive about the potential and future of Mono. Having the C#, the language, available on a non-MS platform is a good thing for any platform, as developers accustomed to that language in the near future will have a common ground for migration. Overall, it is a good thing, and I believe that with time people will get used to the idea of Mono and dotGNU. The specs are free and open, the fact that they were created by MS doesn’t make the technology “evil”. It is just code we are talking about here not politics, and it should stay that way.
What the f*ck is it that makes people believe web services == .net??? (I guess MS marketing is to blame..and poor technical competence among tech report writers)
Of the 3 companies we studied for our masters thesis on the subject “Distributed applications – a studie of XML web services”, all 3 had been using Java to develop/use XML web services, and some since early 1998! .net is just a virtual machine + a set of libraries with *native*/*from vendor* support for xml services since v1.0, whereas Java has had this as 3rd party addons (with native support coming in v1.5)
Just my 0.02 E:s.
…by Microsoft. MS will embrace and extend its own “standard” and Mono will be useless except to the Free sheep. Ximian could have put more effort into GNOME in the time they’ve used to develop this clone of MS software. Maybe GNOME wouldn’t be such a second rate also-run in the desktop wars. I think Ximian’s run its course as a company – their desktop sucks, their groupware is about to be supplanted by the guys behind the desktop that doesn’t suck, and they’ve developed a framework that nobody wants. But most importantly, they’re too stubborn to admit to this which will ultimately lead to their downfall.
> …and they’ve developed a framework that nobody wants.
I wouldn’t be so sure about this. Yes, I maybe know something more than you do. 😉
1) Only parts of the language and specification are free. The majority of it that will be critical for cross platform ability will never be free.
2) .NET architecture will not allow you to write code that will run on both linux, unix and windows like you say.
It will be quite a bit like C++ or any other current language (except Java). Basically, simple applications will work on both, but most will not. Writing an application that uses widgets from the Windows UI will not work and will never work on Linux/Unix unless MS releases the specs for that (and they never will), thus making 99.5% of all programs that have real relevance be only on Windows.
I’ve used C# for the last 3 months, and I have found it to be a poor imitation of Java (C#’s lack of maturity shows). Yes, it is like C, but so is Java. Yes, it is reasonably easy to learn if you know C, but so is Java.
The framework is easy to use, but poorly documented (in comparison to Java, and Borland CBuilder documentation for C++). MS gives you tons of documentation, but it is horribly organized, not easily seachable, and routinely crashes (my 2000 system). In addition, they only tell you how to do things, not why you should do them this way. I want to know WHY.
” De Icaza said that only about one-third of the Mono runtime will be included in an upcoming upgrade of Ximian’s popular Evolution e-mail client that runs on leading Linux distributions. A future version will have more of the Mono code, he said. ”
Does this imply that the GNOME platform may soon be including some parts of Mono?
I hope so. GNOME developers need to be able to depend on Linux systems having more than just GCC and the base GNOME libraries installed and configured. We need a scripting language and rich set of supporting libraries to be a standard part of the GNOME distribution (without requiring users to download, configure, install/compile anything else besides the developer’s application.
>Does this imply that the GNOME platform may soon be including some parts of Mono?
I personally heard something of a sort from a Gnome dev recently, yes. I think it is discussed among some core devs, but I am not sure Red Hat wants that (Havoc said recently that Gnome won’t be using GTK+/C#). So it seems to be a situation of flux…
It’s not just Havoc that says so. I recall when Miguel de Icaza the first time announced that GNOME 3 or 4 will use MONO and C# as their bottom components that this heavily annoyed developers in the #gnome channel and well I agree to them.
Look GNOME already depends on many languages and other things to get installed cleanly,
(SGML DocBook, Jade, JadeTex, Nathan Walsh Stylesheets, XML Docbook) not necessarily required if you don’t want to build API ref manuals, C, Python, C++, Perl and so on. Adding C# and Mono as another dependency will make it a really hard to maintain and hard to install system. A normal Distro may be able to offer all these things correctly so the user don’t care but you need to understand that GNOME also needs a lot of Testers for their pre-releases and so on (those that install stuff on their own and report bug during development, and the developers itself) these people need to be able to install a scratchy GNOME on their own and all these requirements will be uncontrollable one day.
Let’s go one step further, you also need to realize that bugtracking will become harder specially when crashes happen for users then they need to report either a C backtrace made with gdb, bugbuddy and whatever and if C# and MONO get’s added to the normal GNOME as well then…. wow… I better don’t get any further in explaination here. All this can’t be tracked down correctly anymore.
I didn’t state that MS makes the technology “evil.” Although, .Net seems to be following the same plan as all MS products (bad in the initial version, but much better in the next version).
I do believe that MS will not allow the UI and non-published parts of .Net to be implemented in Mono. For instance, if Word.Net (if it happens someday) could be ported directly because of Mono advancements it would be a great accomplishment for the Mono dev team. But, it would be a great risk to MS’s business, so MS would sue them before Mono comes out capable to do this. Simply put, MS wants and needs to protect their business interests, and this includes .Net.
I do agree that an easily cross-platform language is good for migration. Of course, this means Java to me. I don’t have the link but I read a Web Services survey that said over the next year, 45% were going to be Java based, 35% C#/.Net based, and 20% other. Interesting stats.
>but I am not sure Red Hat wants that
If this is Redhat’s position, I don’t believe they are looking out for the interests of their customers and partners. Many corporate developers, hobbyists, and business software vendors don’t want to write software in C, but they also don’t want the users of their software to fiddle with CPAN modules or check VM versions, install language runtimes, etc.
Redhat and GNOME maintainers don’t have to re-write anything in a scripting language anyway, just guarantee that a scripting language and as many as reasonable libraries are installed, configured, and working.
This is really a non-Redhat thing, so that an application written (in a non-C language) for a certain level of GNOME will be portable to any system that has that level of GNOME installed. As it stands, I think that Guile is the only scripting language mandatory for GNOME. Thus most applications continue to be written in C.
I don’t personally believe that Gnome will be based on Mono entirely… beyond GTK# and Gnome bindings anyways. But just imagine for a second if it *was* based on Mono…
You could have the Mono Runtime as the base for Gnome, with all the needed libraries and functions wrapped up in a nice class library. Then, you create Python, C++, Perl, etc bindings to the Mono Runtime, similar to what Microsoft and others have already done with J#, C++, VB, Perl, and more. That would be damned sweet if you ask me… but it’ll never happen.
Kyle wrote: ” .NET architecture will not allow you to write code that will run on both linux, unix and windows like you say. ”
Mono does. People seem to not understand that Mono is not just a Linux port of .NET… it is a complete re-implementation that runs on many platforms (like Java). You *can* write a program on linux using Mono, and have the same program run on Windows using Mono or .NET. As stated in the article, PPC support is coming as well.
I’m curious as I just read this article http://www.theserverside.com/home/thread.jsp?thread_id=18411&articl… and I heard that not many people pay for any .NET courses here.
So are there any companies really interested in .NET?
I think, M. de Icaza and the rest of the programmers who are into the mono project, will soonner or later (being mono stable) start coding parts of gnome itself y C# using GTK#, first they will rewrite only apps like evolution and gnumeric to get the feeling, but they will finally start on gnome itself. No mather what people say or think about it. They are programmers, they want their daily work become faster, easier and noone will stop that, I understand them, being a profesional programmer myself. I think people will complain, and maybe a fork of gnome, written in C# and from the begining will be the result. They will say: we don’t want to impose anything on you, just try ours, we want to do it, if you don’t like it, go on with the C-written gnome. And as with everything else, there will be people willing to try. I for one would give it a try, I am not a fanatic and have nothing to loose. The product will say by itself its value or nonsense.
>So are there any companies really interested in .NET?
Yes there are. Many.
But you’re not seeing very many conversion projects because release of .NET was unfortunately timed with a massive downturn in corporate IT spending.
> first they will rewrite only apps like evolution and
> gnumeric to get the feeling, but they will finally start
> on gnome itself.
Yeah ? Do you seriously belive this ? Miguel de Icaza has basically NO connections to GNOME 2.x anymore. Everything 2.x related is written by different people and I doubt that Miguel easily comes into the room and says. Thanks for GNOME 2.x but now let’s rewrite it with Mono ? I bet 99,9999% of the Developers start revolting. I think that Mono will more or less stay a companies intern toy to write Ximian specific applications. Maybe the one or other individual may become interested writing Mono apps as well but that’s probably all.
If you have paid attention in the past then you know that many people are not really open for MONO and .NET and you also know that GNOME already has hard times because of major suckage adding Mono to it will finally get rid of the last handful remaining Developers.
… hum maybe I should suggest Ximian GO for it
Oh don’t forget that there is also SUN working on GNOME and I bet they would be afraid to see MONO on a plattform that they support and investigate money at. Specially because they want to push JAVA which is basically the enemy to MONO.
I will have to agree that on a possible scenario of Gnome adopting C#, Sun would be negative on it. NOT because this is an MS technology and because this is C# and Sun created Java and other such useless zealotries, but *because* of the legal uncertainty. There is nothing stopping MS the next day filling a suit against Sun for selling Gnome with Mono tech in it. Exactly the same way as SCO did to IBM…
I believe that the road for acceptance of Mono by commercial vendors goes through legal clear-out. Because today, it is very vague what would happen tomorrow if MS decides to pursue this. The Mono project should clear this out ASAP IMO.
Say MS takes .NET and makes a hard left turn and punches the turbo button leaving Mono far behind as a platform to duplicate .NET.
So what.
One the Grand Designs behing Mono was that it was to make writing applications easier, according to Miguel. Not to make porting Windows apps easier, but to make writing new apps easier.
So, if Mono is simply a C# compiler on a CLI runtime, that alone doesn’t make it a useless platform. What you end up with, essentially, is a platform comparable to Java, only Completely Free(tm). It can easily become a popular platform for those who want something better than C++, that’s not Java, and that’s not Python or Ruby (for whatever assorted reasons).
Maybe performance? Where’s the JIT for Python?
Perhaps when this is all done we’ll have a nice, cross platform path that can supplant Java in the world of free software, minimally for server apps, perhaps for desktop apps.
For example, there’s no reason why Mono can’t simply grab the Java specs for how Webapps work et al and write a Servlet container in C#, and then steal other aspects from MS .NET and make a bastard fusion franken server.
These guys have made a lot of progress, and they don’t seem to be slowing down, so it will be interesting to watch how it develops.
Finally someone who makes some sense 🙂
I think it won’t take long at all for .Net and Mono to diverge, but that doesn’t really matter. I for one (as a java-weenie) am looking forward to having a more java-like (or should that be java-esque 🙂 programming language to program in. And it’s free (speech/beer) too, how could it possibly get any better?
As for legality, as Mono is a clean-room implementation of the net class-library isn’t there precedent with the whole bios-thing way back when ?
The easy side of the implementation will be the server application modules, however, things will start to get a little ugly once the client side starts to get more TLC.
As for Mono vs. .NET, mono has already been embraced and extended the original .net with the inclusion of POSIX security capabilities, access to BSD sockets and other “UNIX only” stuff. Ultimately, after talking to miguel, he wants to make a superior developing environment to what we have today and if that means adopting some of the ideas from .net, I personally see nothing wrong with it. As for winforms, why would someone be silly enough to limit themselves to that? SWT has already been ported to C# so only could link to SWT for C# and their application will fit in.
“Miguel de Icaza has basically NO connections to GNOME 2.x anymore.”
Maybe you should look harder. Hint: take a look how the GNOME project is structured – the top people who decide. Look in the list for Ximian… See it?
Maybe performance? Where’s the JIT for Python?
Coming along… Psycho! Pretty decent performance as you can see here:
http://biopython.org/pipermail/biopython/2003-January/001160.html
I don’t know… Java, #C, to me Python is the way – flexibility, speed of development, transparence. Ruby would be nice too, but is still too messy and non-standardized plus not nearly as far along as Python.
“Miguel de Icaza has basically NO connections to GNOME 2.x anymore.”
Maybe you should look harder. Hint: take a look how the GNOME project is structured – the top people who decide. Look in the list for Ximian… See it?
You should read the sentence AGAIN and then the next sentence too because it’s explained there why he has NO connections to GNOME 2.x. This doesn’t mean that he is not the founder of GNOME it only means that he has NOT contributed one line to 2.x. Oh, and he has NOTHING to decide about GNOME 2.x it’s the job of the release coordinator and the people helping him. The GEP decides what’s inside GNOME and what not.
>>Specially because they want to push JAVA which is basically the enemy to MONO.<<
Indeed, though I don’t have MONO , JAVA defintly fights against lack of Sleep.
>>So are there any companies really interested in .NET?
Actually, yes. A lot of MS shops are moving from VB6 to C#/VB.Net and a lot of MS web shops are running away from ASP and ActiveX to .Net. The link you gave is to a site that tends to be very java-centric.
If you are asking if lots of people are migrating to .NET from J2EE, then I doubt it. J2EE has a significant complexity you have to deal with up-front, but once that is mastered it tends to run pretty well and have lots of benefits. It would be silly to throw away that initial investment to move to something that will probably lead to vendor lock-in.
>The link you gave is to a site that tends to be very java-centric.
Yes, I know, but they usually don’t post FUD and I wanted people to be able to read the comments there (the comments contains more FUD though). If you look in that article you see that it’s actually a Cnet article they are discussing so it’s not just some opinions of a J2EE-site.
I’m not asking if people migrate from .NET to J2EE. Why should they? I’m asking if there is a big interest in .NET. As someone mentioned earlier it may be that the downturn in the computer industry make it look like there is a low interest in .NET.
I never understood the hype about Java and more recently .NET. Apart from a huge class library the languages and runtimes by themselfes offer no real advantage over C++ but instead introduce new misconceptions (eg. lack of generics contradicts type safety in both languages, the marshalling mechanisms in .NET are too complex (compare http://www.ondotnet.com/pub/a/dotnet/2002/11/25/copying.html)).
Well choosen C++ libraries make cross platform programming quite easy and in addition you get reasonable speed and modest memory usage which is something that Java couldn’t provide for years now and .NET doesn’t seem to be any faster in real life.
If I had to choose a VM language I’d go with Python. For industrial strength applications I favor C++ (although it is a pity that Ada never reaches critical mass).
I agree with oGALAXYo on this one. Whether GNOME ends up using Mono or not is basically down to whether people write code for it using Mono. I expect Ximians products (evolution, desktop, red carpet etc) will end up using it, and why not? .NET is certainly not an open platform, the decision making process alone ensures that. I don’t have any problem with Ximian embracing and extending it though.
Anyway, we need it for Windows compatability regardless. I was watching the System.Windows.Forms effort connect up with Wine lately, there’s a screenshot if you go read wine weekly news. There’s still a lot of work, but Mono is essential in the same way that Wine is essential today.
“Apart from a huge class library the languages and runtimes by themselfes offer no real advantage over C++”
So you don’t count garbage collection a big advantage of Java or C# compared to C++? It seems that “language advantages” seems to be a highly subjective term nowadays.
MS are in a trap here. If Mono fails then it shows all their marketing about cross compatability and open standards on .NET is the BS it always has and will just reduce consumer confidence to nill.
On the other hand, because ‘enterprise’ software such as Exchange and SQL will, in future, run on the .NET framework MS are going to have to work hard to stop .NET/MONO written Outlook clones running on Exchange and connecting to Linux.
The biggest problem for MS is they hoped .NET would lever them up in the web market but now MONO can run ASP.NET with out any problems its just going to make emigration to Linux easier rather than locking them into Windows.
MS allowed and ‘encouraged’ (in a PR sence) the MONO project (they even had an article about it on MSDN) because it suited the cross platform marketing at the time and hoped that the effort would be in vain and would just die out.
Unfortunately its taken up the challange and looks like it will meet it.
I am on your side 100%. This is a wonderfull tool, also for the fact that the community gets to do some of the basic programming needed to get this thing working, unlike Java where the JVM is 100% Sun controlled. Correct me if I am wrong, but why no one states that ? Regardless of how “open” Java is, I think that C# could be way ahead in this sector. For me this only is a very good reason to use C# over Java. Also take a look at the various GUI bindings… nuff said!
“So you don’t count garbage collection a big advantage of Java or C# compared to C++?”
Yes indeed. First please note that there are garbage collectors for C++ available. However I favour the constructor/destructor concept. GC might free you from memory management but other ressources (sockets, file descriptors tec.) have to be managed as well and the support from Java/.NET is very limited in relation to this. You have to rely on explicit close() or dispose() methods which is a step backwards since it is more on the C level of abstraction. I know of course that constructors and destructors exist in Java/.NET however destructors are not called in a deterministic way. Also the memory usage of garbage collectors is mostly disappointing.
“I know of course that constructors and destructors exist in Java/.NET however destructors are not called in a deterministic way. Also the memory usage of garbage collectors is mostly disappointing.”
Of course we all know .Net allows for deterministic garbage collection with the using keyword and concrete implementation of IDisposable, right?
http://www.fawcette.com/vsm/2003_04/magazine/columns/desktopdevelop…
>I never understood the hype about Java and more recently .NET.
If you’re developing applications for US corporations, you are often are forced to use MS development tools. Thus, while some developers have had the luxury of using modern versions of Java, Python, and Perl, many programmers have been stuck with using Visual Basic and VBScript.
So technical merits aside, the hype over .NET is the cheering from MS developers, who finally have a chance to use tools on par with the competition.
“Of course we all know .Net allows for deterministic garbage collection with the using keyword and concrete implementation of IDisposable, right?”
Implementing the IDisposable interface does not give you deterministic ressource management. Only the ‘using’ statement you mentioned accomplishes this. Of course ‘using’ requires the implementation of IDisposable. Anyway you have another construct to remember while coding due to the required ‘using’ clause. In fact it’s just a shortcut for multiple dispose() calls. To sum it up–in C++ you can simply rely on constructors/destructors and get the job done. In Java/.NET you have GC and therfore huge memory consumption and certain extra constructs to do the anyway needed explicit ressource management. Mostly indeterminstic and with extra effort deterministic in a clumsy C-ish way.
let me repeat… Microsoft’s plan for .NET is portability. which to them means windows, pocketpc, and microsoft phones. .NET for Linux would be a good alternative. and, hoping that SharpDevelop works perfectly with it, people will start coding for it. if the .NET framework works with apache, sharpdevelop, and GNOME, people will work with it.
now… it is stupid to think that microsoft will build an office .net fully with the .net framework. they will still use hidden windows api’s, etc. for this. so running something like this would probably need mono and wine.
web services. i’ve been to too many web services seminars. it’s marketing bullshit. don’t believe it. c# is basically java, for windows by windows. microsoft built it just to beat the hell out of java, and just incase they were required to split up because of monopoly charges. don’t believe the web services marketing because it’s bullshit. look at the technology of running everything on top of a runtime and it might just look nice.
I’ve done C++ programming (5 years – my current job is embedded C++) and Java programming (1 year). I haven’t done any .Net/C# programming, but from what I’ve heard it has most of the advantages and disadvantages of Java.
Development of Java applications is MUCH easier than development of C++ applications. C++ has a lot more gotchas. The skill level and effort/time required to make a maintainable C++ program is a LOT higher than that required to make a maintainable Java program.
That said, there is a performance cost to runtime system based languages like Java and C#. A well written Java or C# program will never perform as well as a well written C++ application. For some applications, it is simply not feasible to use Java and C#.
There is no one perfect language! It all depends on the requirements of what you are developing (development time and performance mainly).
On a more personal note, I prefer C++ programming. It is more of a challenge, but an elegant C++ solution feels like more of an accomplishment to me. On Python, I think it is a great scripting language, but some aspects of it limit its scalability to large projects IMHO (though it is MUCH better than Perl in this respect).
Mono is not a project like Wine to run Windows applications under Linux.
In fact the whole .net framework specification consists of two parts. One is the Class library. What MS implemented in there .net runtime is a superset of the standard. The mono implementation will never be equal to the ms implementation. Even such basic things as sockets differ in mono and ms. Here is the part where ms can and will play its embrace and extend game.
The second part is the interesting one. It defines the basis types and how objects are composed/saved and how to invoke methods. It’s basicly all about language interoperability. This is the same goal, gnome had from the begining. The chose CORBA as a solution, but from what i know the solution is far from perfect.
This is IMHO the real interest of Ximian in mono, to have some sort of “language interoperability” toolkit as a base for a future version of Gnome.