NewsForge is running a Platonic dialog considering the eternal question: "Should KDE be ported to Windows?". The voices of Socrates, Glaucon and Thrasymachus present the various arguments for and against the issue, making for an easy to understand presentation of the various aspects of this classic debate that will likely pop up again with KDE 4.

Comments

Arguing about whether or not KDE should be ported to Windows is rather pointless. If it's going to happen it will happen, and if it doesn't then it doesn't. Unlike proprietary desktops, KDE does not have the authority to tell KDE developers what to do. Even if every member of the core team thought it was a bad idea, they still couldn't stop someone from doing it. Or vice versa.

Personally I don't think it should be ported (though I would like to see a KHTML based browser available for Windows), but my opinion doesn't matter. KDE isn't a dictatorship. Heck, it ain't even a democracy, because the minority can freely ignore the majority.

of course it isn't a dictatorship, and certainly if someone is willing to spend their time doing this it will happen.

it does not make this, or any other, discussion pointless, however. openly discussing things is how people come to:

o Understand each other
o Coordinate with each other
o Create common goals and sets of focus

these are all very important dynamics when it comes to the health and continued progress of a project such as KDE.

the irony is that you say there's no point in discussing if you can't control people, and that the project doesn't have control over the developers. and yet the project stays on its feet without having to control everyone due to discussion.

but when you say "even if every member of the core team thought it was a bad idea, they still couldn't stop someone from doing it" you are both wrong and right. the project certainly _does_ have the ability, right and even responsibility to offer some guidance over what goes into KDE's CVS and ships with it. so a person can do anything they wish with KDE within the rights of the licenses used (GPL, LGPL, BSD, etc), but the project as a collective whole says whether or not it becomes part of KDE proper.

as a side note, separating "the KDE project" and "the KDE developers" is a false dichotomy. they are one and the same.

i'll be the first to admit that a lot of the discussion that's happened in the broader (read: user) community has not been overly useful to determining direction. when i first broached this topic in my blog last year i was speaking to my fellow developers, but the topic was quickly picked up and moved into the realm of the user community and taken as if i were addressing everyone. (note to self: start labeling blog entries with who the intended audience is.) while i'm sure it's been entertaining for people "on the outside" to toss around the conversation in armchair quarterback fashion, that part of the discussion likely hasn't had much impact on the direction of efforts of those actually involved with the project.

the conversation/argument/whatever _within_ the developer community is important and not useless. it may be a bit odd that these discussions happen in public, but that's because the logistical structure of open source is "inside-out" compared to more traditional models.

the benefit i see to pieces like the one Tom has written is that it serves as something of a summary of the arguments put forward by various people thus far. these are useful as touchstones when it comes to these discussions since they can extend over a good amount of time and be spread out widely on the internet. summaries bring all the value, whatever it may be, into one place.

unrelated to the above posts, here's another piece of irony that this whole experience brought with it for me:

a lot of people have said to me that i can't dictate agendas to other people[1], and therefore shouldn't have written that blog entry and that we this thread should be dropped. i suppose it's ok to dictate as long as you're the dictator? ;-)

[1] btw, "dictating" was never my goal or intention. i was attempting to open discussion on the matter. seems to have been successful. ;)

I've seen this debate over and over again, in many forums. This article presented it from all sides in a novel and entertaining way. I thought it was a fun read, and that's why I submitted it to the dot.

First, let me say that I enjoyed the form of the article. It is refreshing to see cool philosophers discussing instead of heated arguments. But I find the debate quite restricted. It is just a reharsal of what Aaron has already said in his blog and on kde-promo.

However, I find that there is a lot more that what has been presented in this article:

- as a linux geek working in enterprise desktop, I am forced to use windows and I would enjoy using KDE, independantely of convincing anybody of the value of linux and fre software. So, my pleasure is sacrificed for a greater cause. That's ok but I want to remind it. Having KDE running on windows would allow me to contribute from my work place...

- as a developer, I like my applications to be used by the maximum number of people. So I would like those users on windows to use it too (which is why I use PyQt).

I also found false assumptions:
- I do not develop software to spread the message of freedom, I develop it for fun and because I like sharing. Developing KDE on windows fits in both these goals. Unfortunately, this is the core of the reasoning of the article.

Finally, one argument is bullshit:
- what you develop for windows XP, 98 or 95 will always run on future versions of windows. Even windows 3.1 applications still run on windows. So if KDE runs on windows XP, it will run forever, just like any other windows program developed out there. Microsoft has been better at ensuring backward compability than any other software company in the world. And no software patent or licensing policy will ever change that because that would be liking shooting in one's foot.

What KDE will not have is interoperability with .NET and stuff like that. But you know what: plenty of other windows applications won't either. And despite what microsoftee says, it does not bother the users. If you look at popular applications on windows like winamp or quick time, they have a completely different interface than typical applications, they do not use any microsoft technologies and still many users use them happily.

So my conclusion is that the philosophers have missed at least two arguments, used false assumption and made false claims. It does not make them rank very high as philosophers and with such poor material, their conclusion is void.

And you know what ? It does not matter because everybody already has its own opinion priori to reading the article and I doubt that it will change.

too many people are reading this into it because they are used to "Freedom" being the frame of reference for these conversations, but it isn't the frame of reference here. i wish people would stop reading politics into this discussion that are not really there. it does, after all, help to understand the discussion if one understands what the topic of discussion is.

my original article was 100% about calculating the costs associated with these developments when it comes to mid-to-long term user base, developer base and utility. nothing about "Freedom" politics.

so, to repeat one more time so this is painfully clear: this is not about Free Software politics.

> what you develop for windows XP, 98 or 95 will always run on
> future versions of windows.

how many people run a win95 app on XP because they want a win 95 app? how many would take the XP version over the 95 version given feature parity? i know the only reason we keep certain win98 apps around here is because we have no choice (e.g. they were never upgraded post-win98)

i also suggest you look at the history of Novell producs on windows, Lotus1-2-3 or DR-DOS. you don't have to make an app un-runnable by sacrificing backwards compatibility to effectively break the application or make it irrelevant within it's given niche.

> It does not matter because everybody already has its own
> opinion priori to reading the article and I doubt that it will change.

glad to see you're a mentally flexible individual ;-)

but seriously: how do you think opinions get formed? how does a project run by community (versus by dictatorship or by committee) coordinate itself?

it isn't through silence. it isn't through people acting as lone wolves. and it certainly isn't through defeatist attitudes that boil down to "why bother because you can't change anything."

> so, to repeat one more time so this is painfully clear: this is not about Free Software politics.

It was developed that way in the philosopher talk.

> how many people run a win95 app on XP because they want a win 95 app?
Many do. People do not like to change their habbits. If they started with a windows 95 app, they will continue to use it until a very compelling reason prevents it. Available upgrades are not one of those very compelling reasons.

> how many would take the XP version over the 95 version given feature parity?

We were talking about the burden of maintaining KDE on windows XP vs on the future version of windows. So, if KDE is available in a more advanced fashion that windows XP, they will use it, else, they will use the windows XP version. But not that is even granted. As I sais, many simple users prefer to keep their habbits than upgrading.

> i know the only reason we keep certain win98 apps around here is because we have no choice

So ? What's wrong with that ? The question was whether we should make these windows 98 applications available or not. I am still not convinced we should not.

Besides, if I remember correctly, windows XP is only 30% of the running windows version at the moment and windows 98 is still about 30% of the existing windows. So KDE on windows would probably last a lot longer than any version of Qt.

> you don't have to make an app un-runnable by sacrificing backwards
> compatibility to effectively break the application or make it irrelevant within it's given niche.

Could you be a bit more specific ? If I remember correctly Dr Dos was made uncompatible. I am not familiar with the others.

If you are trying to say that Microsoft might kill our product by cloning it, like they did for netscape or real player, I don't think it is a good argument: windows provides most of what KDE does, so people are not going to use KDE just for some convenience around the corner. There ought to be for them a better reason, like "I like kmail better", or "it is just fun to use" than "I use it because Microsoft does not provide equivalent features app but if they did, I would switch immediately back to microsoft".

> and it certainly isn't through defeatist attitudes that boil down to "why bother because you can't change anything."

Well, I am glad to see that you are more optmistic than me. I have witnessed than free software people hold on to their opinions beyound reason. We do not act much out of reason and it has a lot of good consequences and a few bad.

I also think that opinion do form quickly, so the lengthy the debate, the less convincing it is [sorty for my poor english]. If you want your message to get through, shorter sentences with clear points should help.

So correct me if I am wrong, your point is: KDE on windows is bad because:
- it will kill most of the interest of switching to linux
- it will run with inferior quality than on linux
- it will be a burden to maintain
- microsoft might kill it anytime

"so, to repeat one more time so this is painfully clear: this is not about Free Software politics."

Well, it isn't for _you_. When writing that article, as has been pointed out, I did want to approach it from that point of view. Of course that's not to say that many of the arguments rely on that assumption... as you've gone to some length to say, you advocate some of my arguments _without_ buying into the free software issues.

Porting KDE to Windows would require porting of Qt as well, wouldn't it? If it would, I am definitely against it -- for the very practical reason that if Windows gets a Free version of Qt, and Trolltech goes out of business because of it, we won't have anyone to develop the toolkit for us. That would suck.

I don't think it would be such a big deal if the windows libs were released under gpl, qt doesn't make money with free project buying licences to port their apps to windows ( i don't even know if it is possible considering the gpl )

I am assuming there is no GPL version of Win32 Qt because of a lesson learned by Trolltech when they released QtNC. Note that there was only really one public release of QtNC, and that was in version 2.x. I am assuming that the bean counters saw something they didn't like, and that is why there continues the current situation on Win32.

Now we can argue that windows developers don't "get" OSS, and we can argue that "Trolltech's business model is all wrong" but at the end of the day the fact remains that it is probably not financially prudent for them to have a free as in beer version on Win32. Welcome to what we call capitalism kids.

I think this would be wrong because:
1. if they use GPL Qt for internal development they do nothing wrong if they don't release there code to the public.
2. Maybe someone will abuse the GPL Qt version but this can also happen on the GNU, BSD or Unix platform because there are also a lot of proprietary software developers. But i think this abuse could be recognized easily and Trolltech could easy "fight" against it.

I think the real problem is like Carewolf has posted in this thread:

"The problem is that Trolltech makes most of their money from companies who use Qt for internal applications, not applications that are released to end-users."

But if Trolltech don't like that people can do what they wan't on their computer than you could argue that Trolltech don't "get" Free Software.

But i think the overall question is:
Why Trolltech makes most of their money from companies who use Qt for internal applications and don't get many customers who develop software for their customers? Why Trolltech can't make their Toolkit interesting for more software companies who develop software for other people and not for their own use?

If they would have more customers who develop software for their customers, than there would be no problem to release a GPL Qt for windows. Because this would nothing change for their customers.

Another question is:
What will happen if the Qt-win32 port become successfully?
I think it's really risky to base your business on the idea of hiding your software from a special group of people and release it as Free Software to another group of people, because everyone is free to port this software to the platform of the other users.
So i think the best way, also for Trolltech, would be if they try to get a "better" customer base so that they can't get in trouble if there is a GPL Qt for windows. Because it's only a question of time until such a project will succeed.

>Why Trolltech makes most of their money from companies who use Qt for >internal applications and don't get many customers who develop software for >their customers? Why Trolltech can't make their Toolkit interesting for more >software companies who develop software for other people and not for their >own use?

Because it is almost impossible (READ REALLY F*CKING HARD AND WILL WASTE YEARS OF YOUR DEVELOPERS LIVES) to ship a C++ application external to your company. Now there are ways around it (ie ship all your shared libs, static linkage, build for every possible permutation, etc...) In short virgina, yer screwed.

Now if you are doing everything internal, *bing* you control all your platforms and all your libs. Distribution is a cakewalk and you go on with your day.

Welcome to life with C++... (FYI, Java is only slightly better, but then you are stuck with swing in all its glory)

> You mean cross-platform apps, right? Because we don't have any problems to
> ship our C++ Windows application to our customers.

Yes, if you are on a single platform you are okay, or if you use VC6. The pain happens if you want to support XP and 2k with VC7 and up.... At least Qt links to system level stuff so if you write a Qt app with VC6 you don't need to ship anything other than Qt's dll... but from there it gets worse.

>Because it is almost impossible to ship a C++ application external to your company. Now there are ways around it (ie ship all your shared libs, static linkage, build for every possible permutation, etc...) In short virgina, yer screwed.

But which language were used for all the apps in the windows world? I think mostly C++ (maybe VC++). And as far as i remember, if i had to install a program on windows it's normal that there will be installed more than one file and a lot of these files are dlls. So this is not abnormal.
So the question keeps valid: Why they use VC++ or simular programming systems and not Qt? Why Trolltech can't get these customers?

Most software last I heard (about 95%) is custom developed for internal use only. From my personal experience I would put it at least at 80%. These are programs that companies pay to have custom developed only for them that are never used outside that company.

I think that is what trolltech worries about. If there is a qt for windows that is gpl then you can safetly use it with the app gpled and nobody will ever see it outside that company and thus you comply with the gpl and don't pay trolltech anything. The problem I see with that is that if you spend a large ammount of money building a custom app you would want support for the libraries in it and they would want to be able to call trolltech anyways for help.

Having your developers spend hours or day figuring out something that a 10 minutes phone call can solve is just not very good from a time or money standpoint however I can see why trolltech is doing what it is.

I also don't know how long it might be if ever before someone makes a gpl qt for windows that is the qt/x11 version ported over that still needs to use an x server. I suspect that it has very few contributors and it requires a lot of work and qt is a moving target. For an example of thing kind of python look at cpython (the default thing that most people just call python) and jython the version of python that runs on the java vm. The jython and cpython version numbers mean the same thing so jython 2.1 is equiv to cpython 2.1 . The problem is that jython is at 2.1 and python is at 2.4 . Jython is pretty much about 2 years behind python for development and that is just a port also. The problem is that not enough people really care about it. I am sure we could find other examples also, just because something can be ported doesn't mean it will be and doesn't mean it will work very well simply because not enough people care about it.

if trolltech make a GPL Qt for windows I don't think its biggest clients such as photoshop and opera will use it, they will still pay for the non-free version because they won't release their software under the GPL right? So I guess GPLing Qt on windows shouldn't be that big loss for Qt but I may be wrong :)

The problem is that Trolltech makes most of their money from companies who use Qt for internal applications, not applications that are released to end-users. In this case the companies can use a GPL product and still keep the source-code to themselves because they are the only end-users.

>plus I guess most country other than US don't pay licences for internal application.

Does this mean also private persons don't have to buy a license for proprietary software if they use it "internal"?
Why all the people buy windows, MSOffice, .... licenses?
Please show me such a country, i don't think any country has such a low copyright-law.

No. It's a GPL matter.
If x develops software based on GPL software (Like Unix version of Qt, or its win32 port), and then distributes it, then x's app must be released as GPL.
If x is not a guy but an organization, if the app is deployed along the org is ok, is not considered as a distribution. I hear RMS saying this myself.
This is because GPL the x's app is theoretically GPL because it is a derived work, but as long as it's not distributed outside, it's ok, GPL is not about " use", and doesn't enforce distribution as Bill and SteveB want to make people believe.

On the other hand, proprietary EULAs usually say you must be a licensee in order to use their development tools, then the EULA can require payment per runtime copy or not, in the first case you always need to pay per seat, distributing it outside or not.

Win32 Qt is in the second case, you pay $1500 per developer, but then you have no limits AFAIK.

One more thing: LGPL is less restrictive and allow to link LGPL libs against closed apps, in order to allow GNU platform becoming more popular. That's why Unix Qt is released under GPL, as they want to get some cash first, and be popular later.

> If x develops software based on GPL software (Like Unix version of Qt,
> or its win32 port), and then distributes it,
> then x's app must be released as GPL.

Well, yes. But this means that you only can keep your app un-GPL'ed if only the original developer uses it. As soon as you gove it to somebody else, (say, your co-worker, or the company that paid your for their in-house app), that's distributing, and hence it must be distributed in compliance with the GPL.

Now, the point is this: The GPL only requires you to make the source code accessible to people who receive the software. That is: If A gives an app to B, A has to give B the source code (either ship it along, or upon request). But C, who never receives the software, has no right to its source code, either. So, I can develop an in-house application - even for a customer, not for myself - based on GPL software an be all fine and dandy if only I hand over the source code along whith the app, too, which is pretty standard fare in these circles. I don't have to make the source code - or the app - available to the world.

forget the copyright-law, most countries don't respect them, that's what I was trying to say. The only license the smb I work for is the windows one and they got it with the coputer so. and this is in france. so I suppose other countries don't even pay the windows license.

Only if you are directly modifying the source of the original project. Since you aren't, and especially with PyQT are only classing from the already compiled binary... you can make a proprietary piece of software.

Sorry, you are completely wrong and pinky is correct. You don't even need to derive a class - make any call to the GPL'ed API and your application must have a GPL compatible license. It doesn't make any difference whether it's in C++ or Python.

Why do you think there is the LGPL and the GPL? Why do you think Trolltech (and I) chose the GPL rather than the LGPL? Answer: to force people to buy a commercial version if they wanted to release non-GPL applications.

I'm not so sure. If I for example would develop a application around a apstract warpper and than develop a wrapper implementation in qt, windows etc. as library I must GPL the wrapper implementation(not the wrapper) but not the application which is only calling the wrapper. Its because the wrapper is not derived from qt. Its like the nvidia module in the kernel. And there is no exception for the GPL in the kernel for binary modules. I'm not a lawyer so I'm not 100% sure but it would be very hard to force the people to GPL the application. Maybe the user which is using the qt wrapper implemention is breaking the law but not the developer.

Can you imagine the number of developpers a windows konquerer or koffice could attract? Look out, openoffice and mozilla atract all development because they are the biggest project. They are big because they are also on windows.

Everybody here is talking about the user base, philosophy, qt license (the n+1 time) and all that. But... is this tecnically aceptable?. Qt is OS-agnostic, but KDE is hardcore unix-centric. The real question here are: can you make a konqueror-setup.exe to install konqueror in a easy way? how dependant is KDE libs to dlopen, libc, glibc and other unix-only stuff? is the code going to grow to support special window cases? some (more) abstraction layers are going to hurt performance?

May be the port can take 50 (mythicals :) man months to get some hundred windows users, some dozens devs. Then the effort is better used bugs.kde.org, or polishing some existing apps (koffice or kdevelop some of them), or making some news.

as far as i am concerned trolltech can go bankrupt tomorrow, they have signed an agreement with kde, that in the event of bankruptcy or change of ownership of trolltech or major changes in development plans, qt will be released to the public under a bsd-style-license.
we dont need some company to develop a toolkit for us, we are the people, we are the community and we should always strive for independance (especially of non-transparent business plans of profit-orientated corporations).
this developement is happening, with a free qt port for windows and kde replacements for the qt-tools (kdevdesigner instead of qt-designer aso) most things are moving away from trolltech.

> hey have signed an agreement with kde, that in the event of bankruptcy or change of ownership of trolltech or major changes in development plans, qt will be released to the public under a bsd-style-license.

That's wrong. The sole criteria are continued releases of an Open Source edition.

actually i consider anyone working with or on kde part of the community. i dont know what your elite criteria are or if i fit them... i do code opensource programs (in qt/for kde?), of which some will hopefully be useful to the community. talking about identity, you didnt even post your name....

> You are aware that kdevdesigner is basically Qt Designer?

well right now they are pretty much the same thing thats right, but there is one difference: kdevdesigner is not maintained by qt, but by community developers, which is what all of my above post was about, if you read it...