with kde4 development underway, the question of when to target kde applications
for kde4 versus kde3 is being asked by more developers. should new applications
begin developing against KDE3, KDE4 or Qt4 only? should existing applications
port to KDE4, become Qt4 apps for the time being or continue using KDE3?
the open source community tends to have a(n overly) pressing emphasis on the
bleeding edge. this is often good as it keeps things moving forward. but it's
not always necessary; sometimes "old" (as in: it was released last month) is the
best option.
kde 3.5 was just released, and the first update to it, kde 3.5.1, is set to be
released in the coming weeks. with kde4 a year or so away, 3.5 will likely
continue to be the default kde desktop shipped on supported operating systems
for at least the next 12-18 months. remember that many linux distributions haven't even made an official release that contains 3.5 (though many offer it as a post-installation upgrade).
moreover, when kde4 does ship, it is highly unlikely that kde3 libs will cease to be distributed instantly. this is because there will bre many kde3 apps that haven't yet been ported to kde4 when 4.0 is released that users will still want to use.
one of the mantras in open source is "release early, release often". for
applications, waiting 12-18 months can be a killer. the obvious answer is to
continue to target KDE3 for upcoming releases so that releases can continue to
roll.
also remember that kde4 libs are still a sea of shifting sands. developing against them can be a bit frustrating at times. we are porting
most of the apps that ship with the KDE desktop in micro-steps every time a new
libs snapshot is made, so we do have apps to stress and test out the libs. but
this probably isn't what most application developers (or their users) want or
need. it'll likely be some months yet before kde4 libs settle into something
resembling their final forms.
what about moving to qt4, then later to kde4? well if you're a typical kde3 app, you'll end up having to provide a large amount of code to replace common kde functionality only to remove it and rework the app to use kde facilities again. in some cases, it's not a big deal. in others, it is. my concern would be that apps that go from kde3->qt4 would remain qt4 apps and not get kde4 integration for a long time hence. and targetting qt4 won't get you a huge audience yet anyways, at it's not yet a staple in most operating systems which are predominantly shipping qt3 right now due to the relative recency of qt4's release.
so it would seem that sticking with kde3 libs for application development may be
the best bet at the moment. but what about the innevitable port to kde4 in a
year?
(this may seem like an especially crucial question for new applications but just
as with existing apps, new applications should release early and often and get
users on board to prime the feedback cycle. so i don't see a big difference in
importance for new versus existing apps here)
my personal experience in porting apps from KDE3 to the current KDE4 libs has
been promising. it is far from a rewrite, and in many cases some judicious
scripting can really help with the effort. personally, i wouldn't be afraid of
spending the next year developing a kde3 application (releasing 1-3 times in the
meantime) followed by a "kde4 port" release. we're also providing a kde3 class compat library along with 4.0 (though that will likely be phased out in 4.1 or 4.2)
in 9 months this will probably be a different scenario, but for now i would
personally recommend kde3 for application development. this also helps the kde
project in general. how?
as we work towards kde4, we won't have a new kde release for a while. not an overly long while, but longer than our user base is generally used to. during this time, new application releases will give people something to new to try out and give them something to talk about beyond the "yet to be released super amazing kde4". =) in a way, we're relying on application developers to provide a kde buzz that will be skipped due to no 3.6 release since we're working now on 4.0.
obviously the more kde4 apps we have when 4.0 hits the floor the better. but 4.0 is a ways off yet. if you are an application developer, think about what timing is best for your schedule and for your users.
happy hacking.
Saturday, January 21, 2006
Subscribe to:
Post Comments (Atom)

6 comments:
It really hearts to hear that KDE 4.0 is so far away.
I'm (read as in "I'm a power-user") a little bit afraid of seeing KDE sliding in the background because there is hardly any development you can see as user and nothing new, compared to other stuff (Gnome, Vista, Mac OS X, enlightment, etc.).
And as longer as the development need, as higher will be the expectations...
I know that this is probably more a fear than anything which really counts, but it would be nice to see for example some more new features in KDE 3.5.x as usual for a minor version (so jabber support by kde for example; or a substitution of arts).
But anyway, I know that you can't do magic, but that you will try it, and that I just have to be patient (which is not as easy as you probably think).
And yes, jabber and arts-replacing are on top of my swishlist (after getting KDE 4 right now), so don't take this list to serious. :-)
Regards from Sweden, and good luck with ongoing development,
liquidat
I am also thinking of starting to write a new Qt based application, and your thoughts on KDE3/KDE4 were interesting. However, I would like your opinion on the following:
You say that KDE4 libs are not yet finalized, so don't convert KDE3 apps to KDE4 yet. That's all right. But writing Qt4 apps should not be a problem, since they run allright on KDE3 also provided the Qt4 libs are available.
My opinion is that we (I) should start writing in Qt4, even if we do KDE3 apps (whether or not we use KDE3 libs -- we may just use pure Qt libs) so that our using Qt4 will generate feedback for Trolltech which improves Qt4 which is going to be the base of KDE4, thereby contributing indirectly to KDE4's development.
So my opinion is to use Qt4 even if one uses KDE3 libs -- what do you think?
My Opinion is a kde 4.0 with kdelib con qt4.
kde 5.0 with Plasma, ...
Very things for kde 4.0. a one year?, more?.
It's a bit disingenuous to say that Qt4-only applications won't get a huge audience since most OS's don't ship Qt4 yet. It's easy to ship Qt4 with an application on Windows or OS X; and most Unix varieties do have Qt4 already available.
I'd say that on the contrary, a Qt4 application will get a wider audience than a KDE application, because it's available on the big 3 OS's, but also because it's apparently more palatable for people who don't want to use KDE for whatever reason to use a Qt-only application. See Scribus.
It'd be a pain to port a KDE3 app to Qt4 of course, what with a new action model, a new plugin model, no network transparancy and the rest. And you're right that once an app is Qt4 only, it's unlikely to ever become a KDE app again.
Boudewijn Rempt
There are so many cyphers in between 5 and 10. Why couldn't KDE make use of them?
I mean there are many version numbers possible in between 3.5 and 4.0. Everybody is already focusing on KDE 4 but what about a KDE 3.6 with nothing new but Qt4? For the moment, I have this feeling we're trying to do two steps at the same time: Moving to Qt4 and to a new KDE API.
IMHO, such a KDE 3.6 would give some time to the developers to get used to Qt4, to stretch their fingers on the new features, to give to the users some speed improvement and some eye candy with Arthur (to calm them down) ;-) and get ready for the next big jump: KDE 4.
Any way, that's what the KDE team is already doing: porting KDE 3.5 to Qt4. Once this is done and working as well as the current KDE 3.5, they can focus on breaking everything... well, adding new features to KDE. ;-)
@maxilys:
wouldn't work. KDE 3.6 wouldn't be compattible with 3.x, as KDE strives to be. and if they call the simple port 4.0, they have to move to 5.0 in the next version, because after the api changes 4.1 wouldn't be compattible with 4.0... point is, porting& changing basic apis has to be done at once. THEN the applications can be ported. I'd rather see them release KDElibs4 seperately, maybe with kdeBASE4. then let all apps be released independently...
Post a Comment