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
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
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
(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.