No settings
If you’ve tried naracea already, you probably noticed there is no settings dialog. This is intentional — since the very beginning I wanted naracea to be settings-dialog-free. Reason for this is the fact, that I thing that settings dialogs are evil.
Let’s say you install an application. What is the first thing you are going to do? If you are like me, you will find the settings dialog, and then waste some time by changing what is in there. Then you get used to your specific settings and when you need to move to other computer (let’s suppose the application is available there), you will feel awkward until you waste the change-stuff-in-settings-dialog time again.
And then there is the time you waste by looking into settings dialog to figure out whether there is better way to set up the application. And honestly, there is very little value in all that time invested in changing settings. You would be able to use the application pretty much the same way with reasonable default settings.
Don’t get me wrong: I’m not saying there should be no settings in application at all. There are some cases when allowing user to change things is pretty much inevitable. For text editor it would be crazy not allowing to set the font size. I’m not so sure about the font face, but that is still OK for me. But building extensive settings dialog, where you can change every little aspect of the application behavior seems, well, unreasonable to me.
In naracea, the closest I got to the usual settings dialog was autosave. When I started implementing it, I felt like I really need to create the settings dialog. But then I was thinking: when I want to enable autosave, what do I want to really achieve? The answer is: reduce the amount of wasted work when something wrong happens and application crashes, or power goes off. Do I really need to set the autosave period? I don’t think so. What I need is reasonable default autosave period, and ability to turn it off in some special cases. And what amount of work I’m willing to sacrifice? Right now I think it is 3 minutes. Therefore by default all new documents in naracea are created with autosave turned on, and the time interval between saves is 3 minutes. It is possible to turn the autosave off, but it is based on document, not application global settings, because I believe there are documents for which autosave is good and documents for which it is undesirable. Having global setting would break this, and it would enforce the autosave on documents for which I really don’t want it, or disable it for document for which I really want the feature.
So in naracea there is document properties dialog with single check box which allows turning autosave on or off.
And I took similar approach to all other things which are configurable in naracea: set reasonable default value, allow user to change some of the things, but remember, that while some settings are global, more of them is related to the document, or event branch. (In fact, there are only five global settings in naracea: font face, font size, background and text color and width of the editing area when application is maximized.) And most importantly: prevent settings dialog, which would take forever to go through.
Because at the end, naracea is text editor, and what people should be doing with it is editing text, not settings.