A Silver Pearl in An Old Shell
It’s been more than ten years since Microsoft published the first version of its own plain-text editor Notepad. And so far, no significant improvements or modifications happened. It still as is, simple, small, without frills!
Notepad2 is an alternative, tries to expand the original software’s capabilities, with following and maintaining its principle; simplicity.
A principle-driven software
So, can we say here that Microsoft’s applications are principle-driven, rather than user-satisfaction driven?
Well, actually, I don’t think so.
Commercial software, just like any commercial product, are customer-satisfaction-driven, and that’s what happening in all commercial Windows-based applications, but not in Windows itself!
Because Windows is meant to be an infrastructure for these applications, and any functional improvements in this infrastructure can hurt hosted-software’s functional role, and thus, their competitive existence in market! So? there’s no serious chance for functional integration in Windows.
And that’s why Notepad is still like this.
Now, on the other hand, in business life, “Customer is always right”, which means even if he or she isn’t! I mean according to given principles or standards. But in software industry, which seems like chemical industry, because of its complex and critical nature first, and its deep and unexpected effects in human being secondly, you can’t follow this rule simply here.
A sophisticated software-designer can offer far more than what user could imagine. He or she can offer user capabilities and functions user wouldn’t imagine before.
As an example, I wouldn’t imagine —as a user— that it could be possible to show a bidirectional text in one plain-text file, so I didn’t even ask myself if there’s a solution for it or not. But when I saw such a solution for the first time in a real software, which was GEdit, I was very grateful to open source community for their unexpected help and solution.
Another example was the approach of showing Find function in Adobe Acrobat 7.0 and FireFox.
So, unlike commercial software, that’re necessarily user’s-satisfaction-driven, open source software are principle-driven.
… Unlike a snowball trundled in a very quick, random, and non-stop cycle, the only one who can stay in shape, in such a storming environment; is penguin!
Notepad2 and PunBB are the most typical examples for principle driven software.
Doesn’t seem like you —as a user— should sacrifice with some features and functions, in order to keep your software under your principle’s control; a principle like simplicity for example?
Simplicity deserves sacrifice!
Notepad2 consists of two software components:
- Scintilla editing component, located in http://www.scintilla.org, enclosed by
- a user-interface called Notepad2, located in http://www.flos-freeware.ch/notepad2.html.
Designed —as a whole— for MS-Windows only, looking like a silver pearl in an old shell!
The following table will give you a quick view of how far Notepad2 went comparing to Notepad, in which I want to suggest more improvements.
|Overwrite mode insert||✕||✓|
|Status bar||Simple (XP only)||✓|
|UTF-8 support||2k/XP only||✓|
|BiDi||No, but you can use right Ctrl+Shift to turn the direction of the whole lines right.||✕|
Requirements for Notepad2
Find & Replace
- Showing Find and Replace functions in a toolbar, just like FireFox and Adobe Acrobat 7.0. The find options (check boxes) will be turned into toolbar buttons, as switch buttons, just like Word Wrap button in Notepad2 itself.
- Multiple line Find & Replace: as a controllable option, using a button in Find/Replace toolbar.
- Highlighting Regular Expressions syntax in Find/Replace field(s).
- Moving on to a new line (using Find/Replace, or either Go To/Go To next or previous bookmark) should put the target line in the top of Notepad2 window as much as possible, rather than the bottom of the window, as usual.
Commands & Options
- All commands in File, Edit, and Help menus should be customizable in toolbar.
These commands are used as operational functions, you need to deal with them frequently, every time you open Notepad2.
- All commands in View & Settings menus, including all their sub dialogs should be organized in one tabbed dialog called Options, with a button on toolbar to reach it. I might write more about this dialog box in future.
These commands are used as control functions, you don’t need to deal with them that much, but:
- occasionally first: therefore they shouldn’t be as a part of the direct-interface items,
- and all together secondly: thus they should be in a one single control panel.
- Keyboard shortcut info in tool tips.
- Showing/Hiding space/tab/paragraph marks.
- Cleaning Spaces (removing duplicated ones).
- Print preview.
- Document statistics: Just like GEdit:
- Number of Lines
- Characters with spaces
- Characters without spaces
Requirements for Scintilla
Bidirectional text support
As a suggestion: if the first character of the whole document was an Arabic character, the scroll bar should be in the left side of the application’s window.
Actually, I was planning to develop an Arabic GUI for Notepad2, but I realized it doesn’t make sense to provide an Arabic interface for an application lacks of Arabic-support internally.
It doesn’t make sense to develop an Arabic interface while Arabic texts will not appear in the right direction!
- Highlighting CSS & JS scripts embedded in HTML documents.
- Linux shell
- Recognizing Hypertexts: optionally, just like Word Wrap option.
- Spell Checking: with distinguishing between programming and natural languages.