Thursday, February 24, 2005

The power of the segfault

Segfault. No one likes to see their work go down in flames as an application crashes. As a user you don't know if your work was lot, but your mode of concentration is killed and it is just a depressant.

Looking back over the years without realizing it at the time, but whenever I would encounter an application that would segfault on me I would begin to look for an alternative. The more it segfaulted on me the more I would look. Maybe I didn't loose any data, but I will not honestly know. Some examples:

Windows (1997-1999)- Not much to say here, after a year or two of this I switched over to Linux full time. Why? The great driver support? Fantastic multimedia capabilities? It was free? Well maybe that last one, but at the end of the day it didn't segfault on me.... ever.

Gaim (1999) - It segfaulted so often that I made my own instant messanger called Kaim with one of the primary "features" being that it didn't segfault. Even today it still segfaults. Kinda sad.

KDevelop (1999) - It would crash on my leaving my projects in unstable states. I quickly abandoned it and now only use the command line (the problems in kdevelop I have sense found out have long ago been fixed).

Konqueror (KDE 2.x) - Using it as a file manager it or some plugin (thumbnail?) at the time would segfault on me. I used the command line more and only recently have again started using Konqueror as a filemanager trusting it more and more ( i.e. it doesn't segfault ).

Mozilla (2000-2003?) - It crashed on me... a lot, so I didn't use it. Nuff said. (go Konqueror!)

Doing a quick poll around I have found many similar stories from other people of how they no longer use application X because it crashes.

What do these all have in common? Several key things:

1) Applications can *not* segfault if they want to keep their user base or grow. If you discover a segfault in your application it should be made a top priority to fix it. Extra effort should be made to protect against segfaults. Simple checks throughout your code to check pointers before use in function should always be done.

2) Applications that do segfault will be abandoned. Not only will they be abandoned, but users will share their distrust of that application with other users. And just as damming is that users that give up on an application are highly unlikely to go back to said application and even if they do it will be very slowly. So even if you fix your application it will be very hard to earn your users trust back.

3) There is one thing that can save applications. A slightly new look/direction and a new name. Sounds silly you say? Take a look at the browser you are probably using. If you are using Firefox, ask yourself why Firefox suddenly took off. Why didn't Mozilla have half the numbers Firefox did? It was because of word of mouth. As Mozilla was still being developed it was in an unstable state. So users that tried it out (like me) got a little sour taste and decided they didn't really want to use it. Not only that, but we then didn't tell other users about Mozilla. With Firefox they took the already heavy developed, debugged engine, *removed features* and put a new name on it... and it took off like a rocket. This time people checked out a "new" application and were blown away. Nice, clean, and it didn't crash. Because it was "new" to the user they were able to put aside their feelings about Mozilla and look at it new. And of course they then told all their friends how great it was. Yes Mozilla was great too, but only a little better then the previous version, which was only a little better then then one before it. Firefox was brand new and fantastic out of the gate.

So what does this mean for KDE?

1) We should ship releases without any open segfaults or as few segfaults as possible.

2) Rebranding can be very powerfull. If Gnome changed there name and changed to a less "ugly" default theme* (they have already changed their focus to be heavily user oriented) they could easily capture many new users simply because people would go and try it out for the "first time". Konqueror the web browser and Konqueror the File manager should be clearly separate applications and not marketed together (even if on the backend they are). You could even give them two new names. People would check them out as new applications. I know that there is some work in this direction in kdenonbeta and i think it is a good idea.

Are there any application in KDE that you no longer use because it segfaulted on you in the past?

* Personal rant here. Every gnome developer I know does not use the default gtk theme because they like something else more and yet they force the default theme upon all their users. Is that ironic? Can they really be that stupid?


Justin said...

Actually, Firefox crashes somewhat frequently for me. It's just that I don't really mind because it does a good job of remembering its state before hand, so all I have to do is start Firefox again and I'm back where I was. The whole thing takes maybe 5 seconds.

Derek Kite said...

Amarok. Crashes too often. Can't use it.

I absolutely agree with your comments. There may be bugs, unfinished features and the like, but crashing is a show stopper.

When I developed in the Palm platform, there was a testing application that would throw random input at your app, allowing you to see what input crashed it. Very helpful, and was used to grade applications. Crashes were rare, and if found, the app was removed.


Jonas said...

Kopete. It has never segfaulted as far as I can remember, but features that don't work as advertised is a showstopper as well.

In my case, it's the msn-plugin. I've never had much luck with it (at best it lets me connect and stay online for an hour or so, usually it just won't connect at all) and since most of my contacts only use msn that's what I need for my IM needs.

Gwenview used to segfault a lot on me in 3.5.x and was therefore rather reluctant in giving it another go. Much to my delight, the version available in KDE 4.0.80 has not crashed on me yet and I use it quite a lot.

Jordan Klassen said...

Hrmmm, so that's why I constantly flip between windows and linux; KDE4(i should really go back to 3) segfaults alot and then when i get annoyed with windows segfaulting, i go back to linux for a bit. Oh the joy of dual booting.

Also, why is the post marked as Thursday, February 24, 2005 but it just came up on Planet KDE today? hrmmmm

maninalift said...

I second Amarok. Amarok crashed more often than I closed it voluntarily.

Now I use VLC. I miss the library management and last FM interaction but you know you can rely on VLC. Silicis firmus!

Popular Posts