Skip navigation.
KDE Developer's Journals

Basing the future of free software on cloning the competition

tjansen's picture

OSNews has a poll and discussion about integrating Mono into Gnome. As KDE may face a similar decision at some point in the future - what to do when KDE's technology is not competitive anymore - I thought i write my thoughts down in my blog instead of the OSNews forum.



In the last weeks I have spent a lot of time on taking a close look on .Net and Longhorn, and I think it is quite nice. Certainly not perfect, and there are many things that I would have done differently, but it seems to contain less brain damage than Java. They certainly took a good look at Java and fixed its problems and shortcoming while designing C# and the .Net APIs.
Assuming that the Mono guys can complete the .Net clone and its GTK integration and get it stable, Mono+Gnome would be a development platform that's much more powerful than the current Gnome, and for applications that can make use of the .Net platform's advanced features (like their XML, SQL and Remoting support) also better than today's KDE. Mono will be also able to make use of libraries, both free and propritary, that have been written for Microsoft's platform. Developers who are used to .Net will feel home on Gnome. And books written for .Net will also help Gnome developers.

I still think that it is a bad idea. Why? A cloned framework puts innovation in Microsoft's hand. You still have the chance to write better applications, but the innovation of the platform will always trail behind. What advantage does free software have when its innovation is limited to that of its competition?



Sure, cloning gives developers a common goal, similar to Linux's original goal of cloning a Unix-kernel. And Linux has been very successful in replacing Unix. But the .Net situation is different. Unlike Unix, Windows and .Net are under active development. Microsoft recently announced massive improvements to .Net, and it is likely that this will continue. Linux has two advantages over Unix: it is free and it is better. Mono will just be a free clone that trails at least a year behind. And that will also be the public perception, Mono will look like a cheap imitation and not the real thing. Even if the original may be so good that an imitation is still nice, it's like saying "Hey, we aren't capable to produce something better than Microsoft, so just clone their work". For some people this may be fine, but it is certainly not a plan for world domination.

Mono could, of course, try to add additional APIs to .Net. GTK# is an example for this, since it is a replacement for Winforms and certainly better than the original in many ways. But as these new components are also free software (assuming they are under LGPL or BSD, like Mono) all improvements to Mono will also be available for the proprietary .Net. So by adding new components you can't make Mono better than .Net, you will always improve both.



Maybe it comes down to the question: why are you working on free software? If you only do it because hacking some code is fun, the Mono solution is ok for you. If you do it because you want to create a free alternative to proprietary software, Mono is a fine solution as well. But I do it because I want to create better software. Hopefully so much better that in the future the world's information flow is not solely controlled by companies whose main interest is increasing shareholder value. Being free is an important aspect for software, but being technically better is not less important for archieving this goal. And Mono is no solution for that.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
sequitur's picture

Well said

Tim, I agree in concept with what you're said. I haven't made an in depth review of all the programs you have and I would not say not to support Mono from the standpoint of it being "just another available tool". I personally experience frustration with people wanting Quanta to clone DreamWeaver. I think the thing is that a lot of people just lack the vision to imagine a better scenario. It is even more distressing to see developers willing to be copycats. If you can't do it better why do it. As I pointed out recently on a Dot talkback, I've never been a copycat and I have no interest in producing something second best. Programs like Linux and Apache didn't succeed on price but on various other factors. Likewise if free was it then MS Office would hardly be beating up OO.org.

One of the things I'm happiest about in life is the good fortune I have to be associated with KDE developers who expresse such great opinions like yours.

Cheers,
Eric Laffoon
Quanta Plus

luke chatburn's picture

Wow...

First off, I'd like to mention how much drivel and KDE-hating goes on at OSNews. It seems populated by Gnome proponents with bad attitudes (and I know lots of them with good attitudes, but the bad ones congregate there), Mac users who seem to think that because Apple rebadged an OSS OS, sold it as their own and then gave nothing back to the community, they have the right to hang around and tell OSS coders and users how things should be done, and Microsoft apologists and trolls. Wow... I didn't know I had that much pent-up annoyance.

I've been thinking for a while that KDE development is going nicely, but VB truly is a nice development environment for RAD applications. The thing with VB, is that the language itself is incredibly limited. Doing easy things is easy, and after that, everything is very hard, unless you can find the right component to buy/download.

HBasic is a good start, though Smiling

Honestly, .NET is not a bad idea. As mentioned, it does Java right, especially where Java is a dog (speed, nomenclature, structure). That said, it won't be the next big language and platform. Firstly, because a language should never be a platform. Secondly, because it is a mono-cultured environment at precisely the time when people are exploring multiple platforms, such as Linux. Thirdly, it aims at networked applications from a company where security, stability and network quality are terrible and whose web server counts for around 20% of a market, where Apache takes 70%.

Most of all, .Net is not a desirable platform, because it really doesn't have an installed base. The 2000 and XP users who really are eligable to install it, haven't, and will only just start by around 2006, when Longhorn appears. Moreover, Longhorn alters .Net with new features and changes; so developers will want to wait for that. Again, it will take at least 3 years after that for the installed base to be any good.

So the real question, is whether businesses are still going to be using Microsoft solutions in six years' time when .Net is viable. Not to mention whether it even suits their needs.

Cloning .Net is a road to nowhere, because:
a) They'll just change it anyway, making Mono not work anymore and alienating their own customers, devaluing .Net in the process.
b) We can do better and in six years, we will, or OSS will be dead as a movement.

Let me leave with a few thoughts:

I believe that Microsoft and the lack of competition have stifled development over the past 15 years. Using Windows is more or less the same as Win 3.1, MS Office applications are almost identical to Office 4.3 for 3.1. In 15 years of paying Microsoft to the point where they are sitting on $50b in cash, users have seen no workflow, efficiency or user wellbeing benefits. Longhorn cannot and must not be the future, because nothing has changed there. Pretty window animations and a meta-data look-up table for documents won't change the way we work or live. The thing that terrifies me about Gnome most of all, is that they are so willing to clone other people's work. Now they are cloning the little changes, assuming that the big changes of paradigm and metaphor are done! There is so much left to be done! Will the KDE of 5 or 10 years from now even use applications as we know them now? I don't know, but I want to find out, and not blithely assume that existing functionality is the end of the evolutionary computing development. For all of their bluster, Microsoft do not innovate; they sit on what they have got and milk it for more money. Gnome aren't innovating either, which I guess is their own business. I use KDE because of KParts, because KWord is an interesting frame-based word processor, where Word and OOWriter are not, because Konqy lets me do strange and fun things, because I can edit my file directly on my FTP server and all my machines at work use my calendar from home by loading it via FTP on startup. I put my vote behind innovation, because if we don't innovate now, we'll still be using the same systems, just with different visual themes, 30 years from now.

It's fair enough that the last five years have seen Linux really maturing and trying to reach the level of MacOS and Windows in order to be useful and gain market chare to make a difference, but the fact is, Linux and the KDE are developing at about 4 or 5 times the pace of closed systems. We've got parity now, so what do we do next?

cmiramon's picture

Cloning successful ideas

.Net and Mono are maybe "cool" engineer project. But, for the time
being, I've not seen a "killing" application in IT world that could not be done without the .Net framework. I think when in the future there is a compelling reason to stop developping in traditional ways, there will be a quick effort from the community to clone this new technology in KDE.

The Java example has been a big failure (at least on the client side) not only because Java applications are so slow but also because application X works only with JVM 1.4 but application Z that
you also want needs JVM 1.4.2 that breaks application X. You end up
in a dependency nightmare.

Linus Torvalds said in a recent interview and I agree with him that one of the main success of Windows is that the couple Access / Visual Basic enabled people with very basic programming skills to create quickly one of these vertical applications which involves a client and a database and where the actual solution of easyphp and
MySQL sucks.

If we can clone that with Kexi / PyKDE / QtDesigner / KDevelop, we will have filled a much more important hole than adapting Mono for
KDE. Last year, when staffing the KDE stand at LinuxSolutions in Paris, I've met a guy who is in this business (writing vertical applications in Visual Basic). He was evaluating shifting his activity to Linux but to do that he must find something as easy and similar to his previous knowledge.

I think KDE needs a good macro / high level framework but the main technical problem that needs to be answered is not only offering these people the right programming tools but making it possible to
upgrade their KDE without breaking the applications. If we can provide what Java was never able to do, solid stability, the Visual Basic crowd will flock to KDE.

Cheers,
Charles

tjansen's picture

Rating a platform

.Net and Mono are maybe “cool

tom chance's picture

I agree!

As a user, I'm glad to see some talk of this in the KDE community. It really concerns me that an organisation and project like GNOME, which takes the principles and philosophy of Free Software so seriously, is courting .Net without outlining its problems.

What is the value of a GNU/Linux + KDE environment? It's technology, it's usability, it's coolness? Well, yes, but also that the principles upon which its development has proceeded provide the kinds of opportunities that proprietary solutions simply won't ever offer.

It would be a mistake for the FS community to simply ignore .Net, but at the same time it would also be a mistake for the FS community to not engage would-be converts in conversations about the problems with .Net.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.