Time to update older UI toolkits?
My favorite editor of choice for the past 10 years has been nedit, it is a wonderfully simple yet complete GUI-based text editor with a focus on development. It has all of the basics that I need; syntax highlighting, relatively smart indenting, brace matching, the ability to highlight an include and open the file it refers to. All of the basics are there, so as an editor it suits my needs and development habits. There is only one thing, it’s ugly. And this is no fault of the developers, it’s the fault of how Motif looks.
You can improve things a little bit by playing with X resources, in fact on nedit’s site, there is an article about it. This works ok, but on my KDE or Gnome desktops which use modern GUI toolkits it still stands out, it simply isn’t a pretty app. The nedit developers have actually expressed some interest in a port to other toolkits in the FAQs, but feel it is too large of a task, and to be honest, I agree. Rewriting all of that code just to update the toolkit is a bit much to ask for, especially since it functions so well.
What I propose is something different, which I feel is a bit more practical. Rewrite older UI toolkits on top of newer ones! This has several benefits. First and foremost, it allows applications to get a facelift simply by installing a new library, you probably wouldn’t even need to recompile your apps! Related to this, all of the “common dialogs” will be updated as well. This will provide a more cohesive user experience. More subtly, there would be a lot more code reuse. If I write my hypothetical “GTKTiff” library which implements a binary and source compatible API for Motif on top of GTK, all of the core functionality is already done. All of these toolkits implement the same core features; buttons, frames, tabs, file dialogs, etc. So this “GTKTiff” would likely be smaller and more maintainable than a full “from the ground up” implementation such as OpenMotif or LessTiff.
For the more traditionalist users, well pretty much every major toolkit provides theming, and there could easily be a “Motif Classic” theme.
Don’t get me wrong, I think that the OpenMotif and LessTiff projects are wonderful, they let me run my favorite editor on GNU/Linux after all! But I do think that there is an opportunity to consolidate some code and provide a better user experience. The current state of the UNIX or GNU/Linux desktop is not just a mish-mash of applications, but instead is a collection of applications designed to share a look and feel in order to provide a good user experience.
Having many GUI APIs has its pros and cons. Operating Systems such as GNU/Linux are founded on the concept of choice, which is a wonderful thing. I just think that older APIs shouldn’t lock applications in the “stone age.”