The humble text editor is an indispensable tool for many developers, web designers, writers, and people simply looking for a quick way to jot down notes. But there are much better options than notepad.exe; one of our favourites is Notepad++.
Back in 2003, software engineer Don Ho wasn't satisfied with the source code editor he was using for work and decided to take on the challenge of crafting something better. Notepad++ has since become a staple of many users looking for richer features than your OS's default text editor, and better performance than more bloated options. We caught up with Don to learn about what went on behind the app.
Where did the idea for the application come from? Were you trying to solve a problem you'd experienced, or did the inspiration come from somewhere else?
The company I worked for used JEXT (another open source code editor written in Java) as a production tool. Due to its poor performance, I began an investigation on creating another solution (written in C++ instead of Java) in September 2003. I found Scintilla and built a prototype using it. However, this solution was not accepted by my company. So I then removed that specific part and continued to develop it in my leisure time. On the 25th November 2003 it was made available on SourceForge.
How did you choose which platforms to target and which to ignore or wait on?
Under the context mentioned above, Windows was the target platform. And then I came to the cross platform development experience (Windows/Mac OS X/Linux Ubuntu) four years later (2007).
With a lot of requests for porting Notepad++ to MacOSX and Linux, I did consider porting the project to two other platforms by using wxWidget. That idea had to be given up due to heavy use of the Win32 API.
But that doesn't mean that Notepad++ will never be a cross-platform application. We are considering a important refactoring in the medium term, to prepare the reporting in the long term.
People have a lot of options when choosing text and code editors; what features were important for you when designing Notepad++? How did you want it to be different from other editors?
The performance. Certainly performance is the primary concern for Notepad++, since that's the reason for its very existence. But also, its small size and its rich generic features are very important. Thanks to users' feature requests, Notepad++ became not only a generic source code editor, but also a full-featured all-purpose text editor.
What was launch like for you?
The launch of the Notepad++ project was really quite ordinary. I had never thought that Notepad++ would become popular. I put both the source code and binaries on SourceForge, then users downloaded it and used it. Getting feedback from users was a good thing (and always is).
How do you handle user requests and criticisms effectively?
Handling crash bug reports is always top priority, which I think is clear for every project manager.
For the feature requests, however, I don't react to them immediately. If the same feature requests keep coming, then I will consider implementing them.
Though I rarely reply to users' criticisms, I do listen to them. I adjust the project direction if the criticisms are constructive and fair enough; otherwise, my role is to consider what is good for the project (with my vision which might be subjective), and I may just leave them.
Now, how do you split time between developing new features and managing existing ones?
The code architecture of Notepad++ may not the best design among software projects, but it's good enough and straight forward for maintenance. Adding new features doesn't generally impact old code.
On the other hand, I have to split time between coding and administration of project-related concerns. One example is building an online document site which allows people to cooperate.
What advice would you give to others that want to take on a similar project?
"Enjoy yourself" is the first and principal goal. There is no need to explain why doing so will bring to your project a lot of good elements.
"Make it as open as possible" is the main goal for me to reach on a popular project. No one can build a cathedral alone.
Lifehacker's Behind the App series gives an inside look at how some of our favourite apps came to be — from idea to launch (and beyond).