闫志伟的网络日志 » 首页 » 关于 » 归档

不知道你有没有发现,很多优秀的软件产品,起初都是由一个人来设计完成的。

文本和代码编辑器Notepad++也是如此。

早在2003年,程序员Don Ho对他所使用的编辑器不太满意,于是便决定自己开发一个更好的工具,而它就是我们熟悉的Notepad++。自那以后,Notepad++成为很多开发者的选择。

下面是对Don Ho的访谈,我们可以从中了解到Notepad++背后的故事。

####开发这个应用的想法从何而来?是你试图解决你遇到的问题,还是灵感来自别的地方?

当时我所在的公司曾经采用JEXT作为开发工具(用Java编写的一个开源代码编辑器)。由于它的性能不好,在2003年9月,我开始打造另外一种解决方案(用C++来写,可能就是因为这个才叫做Notepad++的吧)。一开始,我发现了Scintilla,并在它的基础之上设计出了Notepad++的原型。然而,遗憾的是这种解决方案并没有被公司接受。于是,我决定在我的闲暇时间继续一个人开发它。2003年11月25日,我在SourceForge上发布了Notepad++的第一个版本。

####你是如何选择首要的目标平台,而忽略其他的平台或者让其继续等待?

当时,我主要在Windows下进行开发,因此Windows是我的首要目标平台。四年后,我具有了跨平台( Windows/MacOSX/Linux Ubuntu)开发经验。这时,有很多的人希望我能够将Notepad++移植到MacOSX和Linux上。于是,我开始考虑将它移植到另外两个平台上。

(由于Notepad++使用了大量的Win32 API,目前好像还没有其他两个平台下的版本?)

####我们有很多的编辑器可以选择选择。在你设计Notepad++时,哪一个特性对你来说是最重要的?或者说,你如何做到让Notepad++与其他编辑器有所不同?

性能。当然,性能是Notepad++首要关注的问题,因为这是它存在的理由。而且,它较小的体积和丰富的通用功能是非常重要的。由于用户的功能要求,Notepad++不仅成为一个通用的源代码编辑器,也是一个全功能的通用文本编辑器。

####推出这个项目的感受如何?

推出Notepad++项目真的很普通。我从来没有想到的Notepad++会变得这么受欢迎。我把在源代码和二进制文件都放在SourceForge上,用户下载了它,并使用它。获取用户的反馈意见始终都是一件好事。

####你如何有效地处理用户的请求和批评?

处理崩溃的bug报告始终是头等大事,我认为对每一位项目经理来说都是如此。

然而,对于功能要求来说,我没有立即作出反应。如果同样的功能要求持续不断地被提出,那么我会考虑实现它们。

虽然我很少回复用户的批评,但我会听取它们。如果批评是建设性的并且足够客观,我会考虑调整项目的方向;否则,我便对这些批评置之不理。我的角色是要考虑什么东西对这个项目是好的(当然,我的设想有可能是主观的)。

####现在,你如何分配开发新功能和管理现有功能的时间?

Notepad++的代码结构可能不是软件项目的最佳设计,但它足够好并且便于维护。增加新的功能,一般不影响旧代码。

另一方面,我要合理分配用在写代码和管理项目二者上面的时间。举个例子,我建立了一个在线文档网站以便于让人们进行合作。

####你对希望开展一个类似的项目的人有什么建议?

“享受自己”是第一个也是最基本的目标。

“尽量使它开源”是我在一个受欢迎的项目中希望达到的主要目标。没有人能独自建造一座教堂。


【原文链接】Behind the App: The Story of Notepad++

(完)