For quite a while, my favorite source editor/browser has been KScope. It combines one of the better source editors I’ve seen (Kate) with a very robust cross-referencing tool (Cscope). Unfortunately, when KDE went from version 3 to version 4, they made changes that broke KScope. What’s a little odd is that Kate still works. You’d think that if they’d fixed Kate and maintained its interface, KScope would be unaffected. Apparently, though, whoever made the KDE4 changes to Kate decided to extend the breakage instead of containing it. Nice call, whoever you are. Thanks.
This wouldn’t be worth a rant if I could get KScope running again in reasonable time, but that’s not the case. The KScope developers’ response to the breakage was to push out one last 1.9 release, containing only the features that still worked and removing everything that was useful about the project to begin with, and then stop development. That doesn’t seem like the best response to me, but perhaps they no longer had the time/inclination to deal with this level of breakage. I haven’t yet figured out how to put together enough of a KDE3 environment in Fedora 12 to build KScope 1.6 myself, though this is supposedly possible and I might yet find the magic formula. The lack-of-resources argument doesn’t work quite as well for Fedora as for KScope, but they might also lack volunteers in this particular area. I’m not going to blame them for the way KDE stabbed everyone in the back.
I’ve historically been a fan of KDE. I’ve been using KDE versions of natively-GNOME distributions for quite a while now, because I think it’s better both technologically and at a user-experience level. They totally botched the KDE4 transition, though. As far as I can tell, furthermore, there were plenty of people predicting this disaster. They could have listened, but they did what they wanted to anyway out of sheer arrogance and insensitivity to either users’ or external developers’ needs. I’m simply not a KDE fan any more. If I want to get away from GNOME, I can use XFCE. I might still use some specific KDE programs, but I don’t trust them to provide a complete environment any more.
So, what are my options? I used Source Navigator quite happily for many years, but it now seems crufty and unpleasant. I’ve been using CodeLite a bit because it has tolerable Cscope integration so I can navigate large bodies of code that I’m not intimately familiar with. I’m not a big fan of the Studio/Eclipse workspace/project/virtual-folder model where the IDE tries to write your own (warthog-butt-ugly) makefiles, though, and the editor’s not the best either. Using CodeLite from home is also barely tolerable, whether it’s the program or the files that are remote. Somebody seems unaware that redraws and/or filesystem operations might be expensive enough to expose lazy coding. Anjuta seems like a roughly-equivalent offering, which might improve in some areas. I don’t want to use Eclipse CDT because it’s bloated or KDevelop because it’s KDE, but I might be forced to use one or the other if Anjuta doesn’t pan out. Sigh. I suppose I could fix KScope if I didn’t mind giving up all of my remaining free time for the next long while, but I wish such choices weren’t made necessary by others’ bad behavior.
Unfortunately this is what eventually turns Linux/Unix users into OSX users. jwz called it CADT model. At the same time, I think this is what makes it so “easy” for people want to write free software in the first place – reduced legacy and the ability to break stuff.
Um. Emacs?
Actually pretty much anything seems good after ClearCase.
Emacs isn’t a bad suggestion, actually. I did most of my serious code editing in it for a long time. That gave me another idea, though, and since I’m at home today I’m giving vim+cscope a try. So far it’s decent, at least, and it’s not laggy at all. Thanks!
> and then stop development.
Is it so sure?
There seems to be recent comments in the trackers (e.g. 2910190).
Not developing new “features” (like kde4 porting), but still caring about defect reports could still be considered as development, taking account time constraints and priorities.
> I haven’t yet figured out how to put together enough of a KDE3
Hopefully, there will be enough developer power to maintain KDE3. KDE3 is great. KDE3 could still be relevant, esp. considering new hardware like netbooks.
> They totally botched the KDE4 transition, though.
As long as distributions, developpers and users follows, this is still a success.
> I’m simply not a KDE fan any more.
Harsh to throw away KDE3 with KDE4. These are 2 different things, like NFS3 and NFS4(.1).
> I don’t trust them [...] any more.
This is some serious damage (another one is the mysql/nepomuk thing).
But is there any indication that the development would have continued without this breakage?
The lesson may be to distrust graphical applications and favor console ones (vim, emacs, cscope, min-cscope…). These are the most robust, the oldests, the more trustworthy.
Somebody brought this blog entry to my attention, and since I am the mysterious “they” you are referring to, it would perhaps be appropriate for me to shed some light on what happened to KScope.
KScope was originally started as a KDE project (back in 2003), since KDE was my desktop environment of choice. When KDE4 development reached Beta stage I jumped on the bandwagon and tried it. There were some issues with the Beta, primarily the lack of true dual-screen support. I tried to help and even submitted an initial patch, but no KDE developer picked it up.
At that point I decided to explore other possibilities and eventually became an XFCE user. This is why KScope 1.9.x was written using Qt 4 only, without any dependency upon KDE libraries. I also had a few ideas on how to make the design of the programme more modern (such as using template meta-programming), which I wanted to try out. The result was a complete rewrite of KScope – only the name is common to versions 1.6.x and 1.9.x. Therefore, the current state of KScope is not the fault of any KDE developer – only mine.
This, in itself, would not have been a problem, had I had the time to continue the development of the 1.9.x branch. However, last March I started a new job, which (a) left me no time to work on KScope (on top of taking care of two young kids…) and (b) forced me to use Windows (which I resent to this day). I started using Emacs as my main development environment (mainly because it has the only decent shell I could find for Windows), which takes away any incentive of keeping KScope maintained. I did create min-cscope to facilitate the use of Cscope on Windows.
My apologies if I left anyone to hang high and dry. Alas, this is the sad reality of the working, family-raising, class…
–Elad
Thanks for the explanation, Elad. Believe me, I know the difficulties of trying to balance work, hobbies, and family. If you don’t have time or energy to pursue the project then that’s that, and I thank you for having created a tool that for a long time was very useful to me. I think you’re taking too much of the blame on yourself, though. It still seems to me that making KScope work with KDE4 should have required no effort beyond a rebuild if the KDE developers had maintained their APIs properly, and that doesn’t seem to have been the case. The only way I’d say you might have contributed to the debacle is in the naming of KScope 1.9. As I’m sure you know, once a new version of a package comes out the general tendency among various “aggregator” projects (e.g. distributions or desktops) is to pretend that no previous version ever existed – especially wrt doing things that break those previous versions. If KScope 1.6 weren’t in the “shadow” of KScope 1.9 in that sense, maybe someone somewhere would have made more of an effort to keep it buildable. Or maybe not. The open-source community often dances around a fine line between the “creative destruction” that is necessary for progress and the not-so-creative “CADT model” mentioned previously. Sooner or later even very good software tends to get left behind as the rest of the community moves on.
Again, though, I have to say thanks. You made a significant effort to contribute something of significant value, and it’s not your fault that events and decisions beyond your control have made that value less accessible. I wish you luck in your future endeavors.
I was similarly shocked when i heared that my favorite editor had been ‘killed’ while i was gone travelling for only one year. Thanks to your site i could find a little bit of information, otherwise it was shocking how silently all that happend – no mailing list posts, nobody complained?
Anyhow i wanted to let you know about “Geany” (http://www.geany.org/) which i find a very decent substitute for KScope, allthough it does not cross-reference as well (and only opened files) it is really fast and efficient in my opinion.
I have blogged about if here: http://br1.einfach.org/2010/04/geany-instead-of-kscope/
I was able to run KSCOPE 1.6.2 under Ubuntu 13.04 (Manually extracting
kscope, kdelibs4c2a_3.5.10.dfsg.1-5ubuntu2_amd64.deb, and
kdelibs-data_3.5.10.dfsg.1-5ubuntu2_all.deb and copying only those
dll/*.so files needed for kscope). I was able to view call tree, cscope,
kate etc with some broken functionality with probable workarounds. Hope
this helps. This process is bit tedious but it worked for me and I happy
with limited functionality. I use it in combination of VIM editor for
devlopment purposes.