Tuesday, 26 August 2008

What's next? Ypsilon


For a good long while I have been tracking the Ikarus Scheme implementation. I like it because it tries to comply with R6RS, compiles to some pretty quick code and recently added 64bit support. I like it so much that I even package it and a number of related libraries for Arch Linux.

However, Ikarus has a single annoyance for me - it is not easy to extend it with C libraries. You can of course do this by running a C program that allows calls to the library in question via socket or pipe communication - but I don't really like that model. For this reason I am quite excited to come across Ypsilon, an R6RS compliant Scheme implementation with a Multi-Core optomised garbage collection routine, simple FFI and support for Linux, Mac OS X and Windows.

As soon as I have found time to have a play I will write more!

Thursday, 14 August 2008

The danger of superfluity

There is an application that I have been working as an employee and a consultant for five years now. In the course of development I routinely run into a dialog in this application that handles errors at a global (or at least global to the GUI) level.

This dialog is very useful, it stops the GUI bombing out totally and presents the user with the sad news that something has gone wrong and allows them to report such an error. If you are a developer it even lets you enter debugging land. Today however I came across a subtle issue with this dialog that I believe has been there for several years. The dialog is headlined with the phrase "Unknown Error".

"Unknown Error?" "What's wrong with that?" I hear you cry. Well, we're all accustomed to seeing such messages, indeed I believe this text appears in this dialog because someone (possibly even me) saw it in other examples, and I wouldn't bother to post here if this problem wasn't one that extended beyond the domain of a commercial app in a very limited market. My issue is this, what is the value of the word "Unknown"?

Does it reassure the user? No, quite the opposite.

Does it distinguish the error case? No, if it were a known error then we should either have handled it of at least linked the user back to some information about the bug (for various reasons this isn't possible in the real world scenario for this application). In practice if a user reports this bug however they will often find out that this really is a "known error" from the support staff.

So what does the word "Unknown" get us? At best it adds nothing, at worst it scares the users and can even be plain wrong. Perhaps we would all do well to think a little more about what we say to the users