From: Miguel de Icaza <miguel@ximian.com> To: Tomasz =?iso-8859-2?Q?K=B3oczko?= <kloczek@rudy.mif.pg.gda.pl> Subject: Re: GNOME, .Net and Mono Date: 04 Feb 2002 15:04:58 -0500 Cc: Sander Vesik <Sander.Vesik@Sun.COM>, Sean Middleditch <elanthis@awesomeplay.com>, gnome-devel-list@gnome.org > Miguel .. forgive me my ignorancy and not so good english. GNOME was > developed mainly without this kind "bloat" languages like C++, Haskel, > Lisp (God why sawmill is so huge ? .. God blease AS programmers ;) and > this is *very good* fundament. Well, I have always encouraged people to use higher level languages (indeed, the very first GNOME apps were written using the Gtk+ bindings for Guile, but Guile had a horrible startup time). And I do encourage people to write code in higher level languages, because most of the time, for small applications that is all you need. Long live the Perl and Python bindings! That being said, my personal choice between C and C++ is C, only because I have personal problems against C++, but that is merely personal. I have always wanted to use an OO language to write code, but C++ was too much for me to take on. Again, I have my personal reasons to dislike C++ which are not worth getting into. So we decided that our core libraries would be written in C, because that allowed things like the language bindings to happen with relatively ease. And applications were left to each author to decide what language to use. I chose C for Gnumeric. Other people might use other things for other projects. > Now You want say we me must change this now and try to kill this work in > way which is performed by KDE team ? My gripe with KDE on the early days was not C++ (indeed, I contributed on the early days to KDE some code, before I became aware of the license problems). I did not mind using C++, but it was not my language of choice (and still isnt). > Simple .. why ? I don't see around any valuable products ("Open Products") > which uses this programing enviroment. Why now we must change this and for > perform "another way" for grow compecity ? Is it realy *neccessary* ? I am not asking anyone to rewrite any code. Indeed, I encourage people not to do so. But when it comes to extend a product, Mono might be a valuable tool. Valuable, because I believe that the major feature of .NET is reduction of development time and the reduction of the money we spend on developing those products. I have written a large amount of code over the years, and there is a point in everyone's life, when you figure `dealing with memory management is just not worth it'. I want to have a garbage collected language, and I want to have a modern platform, and I want language independence. Let me give you a few data points: * Evolution: roughly 2 years of development, and at its peak had 17 developers working on it. * Gnumeric: the gnumeric/HACKING file was inspired by the fact that many programming errors that Insure/Purify reported could be fixed by having good warnings reported, but this was not enough. Despite the fact that I was extremely careful coding Gnumeric, there were many memory leaks found by Purify (Morten did track this). The bottom line is that developing these applications is costing a lot of time, and a lot of money. I want to see Linux succeed on the desktop, and for this to happen, many more apps will need to exist. I want to go from having 17 people working for two years on a product to have those same 17 people work on four products in the same time. Running Purify is a routinely operation on Evolution and Gnumeric even to this date. There *must* be a better way. And there is. Some people like Java (and we have GNOME/Java bindings), and some of us like .NET, and that is what Mono will bring. I am sorry, but I could not understand the rest of your email. Miguel.