GNOME's Miguel de Icaza on .NET
Pages: 1, 2
Better Integration Improves Development
When pressed for additional details on what makes .NET better, de Icaza replied: "The tools are better integrated. You have a debugger, a project manager. It's an IDE with documentation integrated into the system. It's very easy to deploy web services. You write a web service and it's getting packaged into a single directory. One of the things you can do is just dump the directory into your system and it happens to work. They have a signature system for their libraries, so if you develop an application that links into a set of libraries, even if somebody replaces the API for the library, the application is going to continue to run because it links to the original library."
He added: "Microsoft basically solved the DLL problem, and that's something that the open source community is not solving. Even though we have the tools to do so, no one is taking the next step to do things right. There's still breakage that's happening in libraries that are shipping with traditional Linux libraries. If you get the latest version of Linux, many applications are going to break because they broke binary compatibility, because you didn't upgrade your application, because there's not a lot of effort going into supporting third-party application developers. So that's why I think .NET is a better application development platform, right now." Visual Studio.NET is "pretty sweet," he added.
According to de Icaza, what Microsoft got right is that they put all the technologies together: the language, the common runtime library, and the integrated development environment (IDE). "Look at how easy they make it to expose web services through SOAP," said de Icaza. "I don't think Microsoft is a visionary in this respect. SOAP is an idea shared by other people, the idea of an XML-RPC system." However, he credits Microsoft for putting all the pieces together, making it easier for developers.
De Icaza, who makes no claim to being a Java expert, believes that Java will also offer a lot of what you find in .NET. "I don't think they have everything together today for me to deploy web services," he commented. "If you have Visual Studio, you can deploy Web services right away; they are SOAP-enabled. You can automatically generate WSDL descriptions."
|
In the February Linux Magazine, Jon Udell writes about what open source developers can learn from .NET. Udell opens his article, Embrace and Extend: What can Linux learn from Microsoft's .NET? by quoting de Icaza's "Let's Make Unix Not Suck" |
|
|
|
Related Article: |
![]() |
|
Miguel de Icaza will announce technical details of Mono at the the O'Reilly Open Source Convention in San Diego, CA, July 23-27, 2001. Rub elbows with Open Source leaders while relaxing on the beautiful Sheraton San Diego Hotel and Marina waterfront. For more information, visit our conference home page or see our pre-conference coverage. |
The Open Source Response to .NET
Miguel de Icaza has no intentions of becoming a Microsoft developer. However, he believes the open source and free software communities should be prepared to have a response to .NET, or have an equivalent offering. He is particularly interested in strategies that "embrace and extend" .NET and leverage it to the benefit of open source developers. "I'm playing with the idea of writing a C# compiler in C#. There are a few bits written, but I only think of it as an interesting hack. There are people writing free replacements for the key components of .NET." He hopes that eventually there will be a full open source replacement for .NET.
He'd like to see .NET development tools running under Linux, along with a .NET runtime. "People are going to chose .NET because it's a very good development environment. So what you want to do is have a .NET runtime for Linux. There's already a beautiful IDE called SharpDevelop." SharpDevelop is a C# development environment written in C# by Mike Krueger and released under the GPL. According to de Icaza, the interesting thing about SharpDevelop is that the environment is really complete in only a few lines of code. It's really amazing when you compare the code size to other projects. That says something about the language and the runtime environment. It's pretty fast too. The whole actually compiles itself. C# showed a lot of potential by having this one guy write a really good IDE in about two months. The language is powerful, the runtime is powerful, and they are creating some really great applications."
De Icaza worries that some people will be put off by .NET because it comes from Microsoft and because it seems so large and all-encompassing. "Microsoft is calling everything .NET and so people are really confused about what .NET is. Is it Hailstorm? Is it Visual Studio? Is it ASP? The only part I really focus on is the .NET development environment. I don't know about all the rest." He believes open source developers need to break down .NET into its parts and set about writing replacements. "I think it's really easy," said de Icaza. "Here's why. When the GNU project was started, it was really clear, was given, that they were replacing UNIX. There were hundreds of tools and there was documentation for the tool and its interface. Developers could pick a tool and concentrate on it and work independently of each other. Same thing can happen in .NET. You have the class libraries and you can write the library in pretty much any language. Different contributors can work on different pieces of the runtime."
Brian Jepson, an O'Reilly editor and writer with experience in Perl, Java, and C#, agrees with de Icaza. "Almost anybody could develop a compatible implementation of .NET," he said, because what you need to know is out in the open. (Microsoft is in the process of submitting .NET to ECMA for standardization.) "I tend to think of .NET as a better J2EE and more open."
There are currently 51 projects listed on Sourceforge that are classified in the C# programming language category. (Some of these associations seem misleading.) In addition to SharpDevelop, there is a .NET Opensource project that aims to write the portable .NET runtime. "It's still in its infancy but it already has a lot of code," said de Icaza. "You want to write the just-in-time compilers and write a front-end to GCC that takes a Microsoft .xit, which contains IL bytecode, and just feed it to GCC, which can optimize for the native system. That is something that .NET gets right. They are not pretending to generate bytecode and wait for some magic to make it fast. They actually ship with a working optimizing JIT with the current version of .NET. When you are debugging your .NET applications, you are actually getting optimized Intel code running, instead of the IDL intermediate representation that they generate."
This explains why C# in this environment is generally faster than Java. "I don't think MS is coming out with something novel here," said de Icaza. "They just said, 'if we need to get more speed, we need to do the full optimization,' and they just did it instead of pretending that it was something they were going to do over the next five years."
Reflecting on what might be called the Open Source response to .NET, de Icaza said: "I don't think we as a community can design something that is going to be as completely thought out as .NET. It's taken them several years already to design this, and I believe that Microsoft hired a lot of smart people to build it. It would definitely take us a lot of time and debate to get there." He doesn't believe that the open source community needs to leapfrog .NET, but rather they should make it their own, much as Unix led to GNU/Linux.
Certainly, with the upcoming announcement of Mono, Miguel de Icaza feels the open source community can replicate a free implementation of .NET just as the GNU team set out to methodically create a free version of the UNIX operating system. Mono is quite an ambitious project and Miguel de Icaza deserves a lot of credit for daring to undertake it. He will have to gain the support of Open Source developers, who are naturally suspicious of anything that Microsoft is involved in. This loosely-coupled effort will be competing with the world's largest software company. O'Reilly Network will continue to follow Mono. Once its announcement is made official, we will provide a deeper look at the details of the project and its implications for an open source .NET platform.
Dale Dougherty is the editor and publisher of MAKE, and general manager of the Maker Media division of O'Reilly Media, Inc.
Return to the .NET DevCenter.
You must be logged in to the O'Reilly Network to post a talkback.
Showing messages 1 through 17 of 17.
-
Lots of reasons I want .NET to fail and fail badly
2003-01-24 18:43:48 anonymous2 [Reply | View]
Lots of reasons I want .NET to fail and fail badly
It's benefits a criminal organization. Not one that's been found guilty of crimes once or maybe twice, but lots and lots of times. Those crimes are many and varied, but here's just a few of them: Stac Electronics v. Microsoft, DOJ v. Microsoft, Sun v. Microsoft.
P.S. If you want to split hairs, Stac v. Microsoft isn't a criminal action, it's doesn't stem from a criminal abuse of their monopoly like the other two cases. Instead it was just a case of a small company being driven out of business by willful patent infringement, theft of trade secrets, etc.
Microsoft isn't just one thing anymore. It's too damn big for that. I'm sure even Bill himself knows better than to think that he truly controls the whole ship because it's become big enough that he can't possibly know all the projects, people, etc. anymore. But even a really large company still has a kind of collective personality that it exudes and a large part of the personality both internal and external to Microsoft for many years now is that of a total control freak.
If they don't own it, if they don't control it, if they didn't create it, if it doesn't have a broad stamp from Microsoft on it, then they don't want it. Sometimes it's sufficient for the thing to merely exist and they'll refuse to acknowledge it, other times they need to actively stamp it out because they can't control it.
When was the last time you can remember Microsoft saying they supported a standard? That is, not something they invented and submitted a RFC for, an actual, take it off the shelf and re-implement it without renaming it or "improving" it so it doesn't work with anybody else standard. C++? Basic? HTML? A video or audio codec? Java? Anything?
I'm sure there's something, somebody will point out their excellent support for TCP/IP or something and I'm sure that's true. But if you were to look at Microsoft as a person in your life, you'd wonder what was wrong with him or her such that so much had to be controlled by that person.
When your business is selling the operating systems that 90+% of everybody uses, software development tools should not be a profit center.
Why should I have to plunk down a couple of thousand dollars for a "universal subscription" in order to have access to compilers and basic development information? Sun doesn't have to do that? On this point I'll quote from the .NET "rebuttal" that I linked to above, "For non-profit use VS.NET can be had pretty cheaply, especially if you know anyone that is in college somewhere." Pretty cheaply? For a non-profit (that means charities, churches, universities, the hobbiest who is going to give away his work for FREE)... pretty cheaply? Wow. That is well and truly pathetic. To try and justify it, and say, oh well, you can try to scam an educational discount so it won't be so dear, is even more pathetic.
Marketing. Have you been "lucky" enough to catch one of the .NET commercials with William H. Gacy telling you how great it is without really ever telling you anything about it? Microsoft doesn't trust .NET to stand on its own technical merits and it knows it may go like cod-liver oil down the gullets of a lot of people who have seen how the company works behind closed doors even if it were the tech shiznit.
So they are going to pull a page out of Intel's bum-bum-buh-bum "Intel Inside" playbook and try to sell the brand like it's sneakers and cola. Trust us, you'll look cool if you use it, and we'll keep hammering the brand on TV so somebody who doesn't have much tech savvy in your organization will ask you if you are using it, or have plans to port to it, or whatever, even if he hasn't got a clue what "it" is in this case.
They don't trust you. They don't like what they can't control and they can't control you. They can try and they always will keep trying but ultimately you are going to see them keep trying to do things and always keep a step towards the door just so they can bolt if they have to. Want to see what I mean? Go visit GotDotNet sometime if you haven't already been there. It's the grassroots community website that Microsoft put up to support .NET just in case there wasn't any grassroots community who actually wanted to do it. Or maybe just in case there was and they couldn't control it.
Ever been to SourceForge? Of course you have, everybody has because that's one of the hubs of all open source projects. You can go there and get the source of thousands of cool open source projects and it really serves the community well. There's even hundreds of projects now that list C# among their programming languages. So why did Microsoft feel compelled to create their own GotDotNet Workspaces that is clearly just a ripoff of SourceForge?
A few reasons are fairly clear: First, at many of their workspaces you don't get in unless they know who you are. Ever been stopped at SourceForge and asked for a name and password to look at a project? What about download binaries or source? No? At GotDotNet you will, lots of projects are marked with a lock. Second, forget about all those messy licenses that Microsoft might not approve of, you don't need to worry your little head about BSD vs. GPL vs. LGPL. You've got the one true workspace license that you have to agree to, or else you won't be putting your project there. Lastly, well it's kind of obvious, but it's really all about control isn't it. After all, if you aren't under their thumb, that has to be a bad thing. So a SourceForge that they control is pretty much a requirement, isn't it?
It's a really sad way for a lot of people to waste a whole lot of time rebuilding that which already exists. Wouldn't the whole computing world be a lot better if there wasn't a team of people, maybe a couple of teams of people building complete copies of .NET for other platforms? If those same people were working on giving us new libraries and new tools for an already existing language instead of pouring in the thousands of man hours it's going to take to build a copy of the C# compiler or a .NET version of Ant and JUnit?
In the end, we'll all just be left with another way to do the exact same thing only in a different language. Lord knows the world benefits now from being unable to share media between France, Germany, Italy, Spain, the US, and Japan because we can't all speak the same language. I benefit every day from the fact that I can't read a Japanese manga I might enjoy or understand a TV show from Europe. Once you are done building this tower, go build a few more right beside it using Perl, Python, and Ruby too. They're all trailing behind in certain areas, we need to make sure the same set of stuff is reinvented and rewritten for all of them too.
I'm tired now and I'm sure I can probably come up with some more stuff to add to rant but it's not really going to change anything anyway.
-
Missing the point
2001-09-17 17:52:59 bmukund [Reply | View]
Man! This is a lot of flaming for a nice opinion.
Yes agreed, running down Java - the king of the pack is ridiculous, but a lot of valid points were made. Microsoft DOES win because of better integration and a more complete whole product. Java, while technologically similar and years ahead does not have a champion in Sun to make the whole product.
The one advantage of .Net apart from a better IDE - cross language support could easily be implemented using Java Bytecodes. I think the point made in the article was that nobody did it. When I first programmed Java in 1996 I assumed it would only be a matter of time before somebody came up with a C++-> bytecode compiler, even a restricted version. But until today we still dont have one. The closest you can get as proof of concept is Javascript->bytecode in Rhino. And the JVM is an invisible component architecture similar to the COM bus - how else can you do reflection, dynamic invocation et al.
I only hope we take the constructive criticism and work towards filling in these holes in the technologically superior but badly integrated Java-J2EE-Open Source world. I REALLY DID START USING LINUX ONLY AFTER I HAD A FORTE DISTRO. Maybe I am not savvy enough or is it just that I dont have enough time to learn the emacs key codes?
-
Why give up a head start?
2001-07-11 19:52:10 aishafenton [Reply | View]
I wear two hats. I am Linux/Unix user and I am a java programmer.
When I'm at home on my Linux desktop, java is far from my mind. I want to make Gnome (or KDE) the best desktop environment there is. For this I think about seamless multi-language development and powerful common runtime libraries to support *nix applications. I dream of the availability of games for Linux and of standardized multimedia support.
I can see why the CRI appeals.
At work I see another side of *nix. Enterprise development for a while now has been dominated by Java. Even better Java deployed to *nix boxes. Around this has grown astonishingly successful open source projects, such as, Tomcat and JBoss.
To my bosses (and most enterprise) open source has been validated by these projects. Open source has been taken out of the domain of hobbyists and become a deciding factor for which platform and which technology to use.
It is my daytime job that MS is after. I have heard it suggested that MS is using the desktop war as a diversion from their real goal of the cash cow, enterprise development and the technologies that defines Internet development. I don't know if I believe that they are that smart :-) But two different goals are getting confused.
One is having the tools to develop killer apps for the Linux and realize Linux as a consumer product. The other is the technologies we use to move to a more distributed way of computing (web services) and what we usually call server-side development.
It is the later that MS is after. The later is also dominated by *nix servers and Java solutions presently.
Although I imagine Mono is thinking along the lines of integrating the two, eg Visual Studio. Is this that important? IMHO there are other much more important issues for the development of internet applications than having it integrated with Gnome.
Java/*nix is already ahead in the enterprise arena. Why give up the heard start? Wouldn't leveraging the technology that already exists in Java be a wiser option? I think that going for enterprise development through an open source .net is going to be a long hard road. The CLI does offer some great possibilities in terms of having a multi-language and a platform independent layer for *nix development. But it is worth keeping in mind that server side development is already being won. Taking the good ideas of .net and extending Java would be the surest solution.
I would like to see over the next few months, Sun opening up Java more, and the open source community considering what projects need to be launched to not just match .net but to offer something unique and special to the open source model.
-
Dot Tunnel Vision
2001-07-11 05:51:53 rparkin [Reply | View]
One of the comments Miguel makes is, "The only part I really focus on is the .NET development environment. I don't know about all the rest."
What those of us who actually use Internet services are concerned about is "all the rest". Let's not forget that MS's goal for .NET is to tie all the open pieces together with the proprietary stuff like Hailstorm... and Hailstorm scares me silly.
If developers adopt, say, C#, then that language will gain wide acceptance. Doesn't sound like a large problem on the surface. After all, I could write open source programs in C# as well as in C, right? The problem is, nobody will do C# better and provide more compelling tools than MS. When MS controls one standard -- C# --they gain leverage in the market to push developers toward the rest of the .NET package, including Hailstorm.
I hope Miguel and O'Reilly will take the time to think about the part about "all the rest" and not give MS more rope to tie us up with.
-
Language interoperability!
2001-07-11 02:40:58 skagedal [Reply | View]
Many of you are forgetting something. A major goal of the GNOME project from the very beginning has been to support many languages. This is a cool goal, but hard in reality.
This is (partially) why the base libraries in GNOME are written in C: because it is easy to bind to other languages.
We have tons of language bindings in GNOME (look at http://erik.bagfors.nu/gnome/languages.html), which is great. There are really mature C++, Python and Perl bindings, for example. But this is a lot of work: n languages and m libraries require n*m bindings.
CORBA is one solution. If components are CORBA-enabled, then all you need is an ORB from your language to access that component. Bindings for ORBit, the ORB used by GNOME, are readily available, look at the same language binding matrix linked above. Using CORBA components in late binding languages like Python is extra cool since all you need is the IDL and you have instant access to the interfaces.
But this solution is far from optimal in many situations. CORBA is mostly made for big networked situations, it doesn't scale down well to tiny, inprocess bindings. It is inconvenient to have to deal with IDL, skeletons and stubs.
Here is where the Common Language Infrastructure comes into play. This is the .NET runtime system (CLR) and the Intermediate Language it supports. If this all works out well, we can run code compiled from all kinds of different languages in the same runtime! With the same garbage collector! Objects from language A can seemlessly access objects from language B! (no, not the historical language B. :) ) It will be JITted, so it has great chances of performing really well, too.
This is all what Mono is about, and it is the GNOME dream come true. Whatever your impressions of .NET is, Hailstorm etc., this has nothing at all to do with Mono.
I would like to thank Miguel de Icaza for this initiative.
-
Language interoperability!
2004-01-17 01:17:24 anonymous2 [Reply | View]
...
architecture implemented in CORBA. "That's what we set out to do last year with Bonobo. I said, 'let's use a component architecture that will allow us to write the API once and then bring it to any programming language.' We wanted C, Perl, Python or any language to have access to the APIs."
...
We have these in VMS from day zero.
-
Java vs C#, J2EE vs .NET
2001-07-11 01:10:09 chewitt [Reply | View]
I know Java, I know C#. I would say that C# is a better language to code in, maybe only marginally. Anyway it is REALLY REALLY similar.
The 'conversion' course(s) from VB to VB.NET take 2 weeks, the 'conversion' course from Java to C# is 3 days....
The code that comes out of VS.NET though is a lot faster than Java code (on Wintel of course), and the development environment is ...SWEET...
When I'm coding on Windows, I'm coding C#....
I DON'T know J2EE at all, but for a comparison by someone who does see Roger Session's J2EE vs .NET comparison paper on http://www.objectwatch.com.
-
Getting out from under Gnome?
2001-07-10 15:41:17 monkius [Reply | View]
Wow. This is a lot to absorb.
This seems a lot like the "Microsoft is the future" pitch that I used to hear back in 1996. The points adduced to prove the superiority of Microsoft's technology curiously echo Microsoft marketing statements of yesterday and today--clearest example: Microsoft's .NET (but could we substitute, say, W2k?) is superior to any technology on Unix because of.... Developer Studio Integration??
Wierd.
Matt
-
It was very much in demand !
2001-07-10 13:41:16 pathak [Reply | View]
http://www.linux-mag.com/cgi-bin/printer.pl?issue=2001-02&article=dotnet
Thanks Miguel de Icaza.
-
clarity...
2001-07-10 09:24:26 zephc [Reply | View]
I think one thing a lot of people are tripping up on is what is being worked on, and how .NET fits in.
Ximian's Mono project is really only the VM, runtime and compiler technology, plus a few other things.
the dotGNU project (www.dotgnu.org) is more a replacement for all the parts of the .NET infrastructure, including passport and other web services. It is a larger attempt than just the Mono project alone, and I'm PRETTY sure there is little or no overlap in their efforts, or so i hope.
Subscribe to either or both mailing lists if you interested!
-
I can't believe it's happening
2001-07-10 03:18:38 sergeiv [Reply | View]
I can't believe it's happening. Miguel is singing praises to .NET development environment with as much vigor as an MS sales guy would. I guess if the project goes the way Miguel wants it to, MS won't even have to outsource the porting of .NET to Linux, Open Source guys will do it for free... Doesn't it sound like the largest betrayal of Open Source movement from its inception? To top it all off de Icaza is making a defying logic statement that .NET is the next big thing admitting at the same time that he doesn't know Java(or should say J2EE and ONE). Wouldn't it hurt to check the competition first before making such far-fetched statements? Sorry, but logic in form of "I don't know Java => .NET is the next big thing" doesn't translate well in my frame of thinking.
This situation creates a rather fertile ground for speculations about Miguel being injected with a rather substantial offer in one form or another from all mighty and powerful MS... Sorry, but it just doesn't sound like it would come from a pure open-source heart, considering the fact that even in the best case scenario the project would produce a second grade complimentary platform for Windows, where you would still need to go to MS Windows to get the most out of it.
Correct me if I'm wrong...
-
The BIG lie
2001-07-09 17:01:08 juantay [Reply | View]
"However, he credits Microsoft for putting all the pieces together, making it easier for developers."
Why would they need crediting when the Web Services era hasn't even begun yet? EASIer? Why is it "easier" for developers? Is this how Visual Basic was "easier" for programmers?
This is what I'm supposing, .NET is just like Visual Basic is to programming except it's in terms of Web Services. It can't scale up in itself and in terms of people who will use it. These are the same people that thought there should be a computer in Every Home to make life Easier for the inhabitants.
Now everything for Microsoft is geared toward the mother OS but now the vision of the mother OS wants to encompass the world. How they will cash in on this scheme I don't know ..but I know one thing.. they're objective is to cash in on this scheme.
This is just Miguel's way of joining the Hailstorm express...
Juantay
"However, he credits Microsoft for putting all the pieces together, making it easier for developers."
Yeah, maybe to build instant-messaging applications.
Article title: 'The New Development Environment for the Next 20 Years'
Miguel quote: "It's a new development environment for the next twenty years."
-
What about Java?
2001-07-09 09:22:49 joey1234 [Reply | View]
Miguel de Icaza says that he has no experience with Java. So why is he claiming .NET is the next big thing when he hasn't even looked at .NET's competition(Java)?
Seems kinda foolish to me. -
What about Java?
2003-08-13 04:29:12 anonymous2 [Reply | View]
I would have asked, if he's been paid by Microsoft, but he himself told not to have experience with Java.
In my opinion C# is one big mess. Since several days I have to develop with C# coming from the Java-area. Where are the revolutionary edges of the big gloryfied superlanguage? Where is anything that Java did not have - but five years earlier? There are only slight differences between Java and C#. In my eyes its a big cheekiness what has been declared the last years around .Net - take a good language (Java), change some methodnames and throw it on the market using your fantastillion dollars for your marketing.
For me C# is nothing more than a cheek copy of Java.
@Miguel de Icaza: Before telling the whole world a big opinion that many people are able to listen to, someone should eventually inform himself on the topic he wants to talk about. -
What about Java?
2001-11-11 15:34:56 prmccormack [Reply | View]
Sit down and have a good look at how the metadata and assemblies work esp object lifetime mangement. Check how interop works. Calculate C#/.NET development costs.
It is a good idea for distributed apps whoever it's from. Miguel happens to be an excellent programmer who can recognise a good idea when he sees it.
Pat (Implementing commercial Linux solutions since 1995)







In my opinion C# is one big mess. Since several days I have to develop with C# coming from the Java-area. Where are the revolutionary edges of the big gloryfied superlanguage? Where is anything that Java did not have - but five years earlier? There are only slight differences between Java and C#. In my eyes its a big cheekiness what has been declared the last years around .Net - take a good language (Java), change some methodnames and throw it on the market using your fantastillion dollars for your marketing.
For me C# is nothing more than a cheek copy of Java.
@Miguel de Icaza: Before telling the whole world a big opinion that many people are able to listen to, someone should eventually inform himself on the topic he wants to talk about.