专访国产Web服务器创始人:我将不可能变成了现实

来源:互联网 发布:打印合格证软件 编辑:程序博客网 时间:2024/04/28 21:15
如果经常浏览CSDN新闻的朋友们一定会有印象,在很多文章下面评论的位置上都可以看到有介绍“袋鼠蛋”这个产品的一段说词,而且抢的位置不是“沙发”就是“板凳”,很明显这又是一位散落在民间执着的做着自主研发国产软件的程序员。

所以这次的采访自然是锁定了这颗“袋鼠蛋”。让我带着大家一起去一探真身。一提起袋鼠蛋这三个字,在我脑子里最先跳出来的片段就是小时候看的卡通片,在看惯了抽象了又抽象的一串串代码、字符之后,总觉得这次要鲜活的多。

“袋鼠蛋”的作者叫Shemin Dunne,用现在的话说是一位八零後。毕业于复旦大学,目前在上海一家著名的日本公司做程序员。Dunne开发自己的软件是用的业余时间。通常每天花在自己软件的时间为1个小时左右。休息的时候每天会花半天时间来开发。

记者:袋鼠蛋是你完成的第一个产品么?用了多长时间完成?为什么会起名叫做袋鼠蛋?

是我的第一个产品。差不多花了3年多时间完成的。为什么起名叫做袋鼠蛋呢?因为我一开始做这个开源项目时就知道会遇到很多困难,当时对这个项目是否能够完成信心也不足,想到如果真的做出来就像袋鼠也会生蛋了,最终就叫袋鼠蛋了。用意就是将不可能的变成现实了。

记者:袋鼠蛋最主要的功能和最大的特点是什么?

1、不需要配置XML文件:以前我们 使用J2EE服务器时都时常需要配置XML文件,而袋鼠蛋则不需要,即使使用MVC结构时也是用动态页面进行逻辑控制。
2、完善的国际化支持:每个涉及到内容输出或读取的方法都重载了带有字符集的方法,这样就不需要再去编写麻烦的过滤器,只需要简单的提供当前所需要使用的字符集。
3、有条件的文件输出:BBS的Web程序中经常会遇到这样一种情况,允许用户自行上传文件,而上传后的文件必须满足某些条件才能够被访问(读取、下 载),这里所指的某些条件例如只有登录用户才能够访问,或者购买了BBS主题后才能访问等等。类似情况在其它Web应用中也有很多,那该如何实现这种功能 呢?以前我们都是自己写一个servlet进行有条件的文件输出,可是这样会很麻烦,如果要支持断点续传的需要那么自己还要写上一大段程序,要完全符合 HTTP协议进行文件输出那么就更加困难了,而用"袋鼠蛋"实现的话只需要简单的使用内置方法即可。
4、Command内置对象:袋鼠蛋有一个全新的内置对象Command,用户可以通过此对象来查看或修改服务器当前信息,利用此对象还可以在不停服务器的情况修改服务器的某些设置,比如不中断服务的情况下软重启服务器。
5、生成静态页面:通常有些情况下,动态页面执行后的内容会长时间不变,但是访问的人却很多,如果生成静态页面那么就可以免去了执行动态文件和读取数据库的开销。袋鼠蛋内置了自动的生成静态页面的功能,只需要简单编程就可以自动生成静态页面了。
6、编译及隐藏源代码:袋鼠蛋可以关闭自动编译功能,只运行编译后的页面,同时提供了编译整个Web应用及隐藏动态页面源代码的功能。

记者:你进行自主开发产品的初衷是什么?你的人生经历和成长的环境对这个产品有怎样的影响?

最初只是由于学习的原因做了一个很简单的Web服务器,那时根本就没想到做成一个真正的产品,不过在完善的过程中觉得越来越有趣,就想着将它做成一个产品了。当我完全实现了Web服务器功能后忽然又想到也可以做一个容器用于执行动态页面,于是最终就完成了现在这个软件。

我从小就是喜欢刨根问源,大人们常说我钻牛角尖。不过在我看来做软件就是要钻牛角尖(这个理念我是逢人便说),所以在我工作后不久我就又开钻Tomcat 的牛角尖了(因为当时项目开发环境都是用Tomcat),不满足于在上面开发而想要知道其实现的原理,于是就不断去研究,这也为后来开发袋鼠蛋打下了了基 础。

记者:你的软件开发生涯分了哪几个部分?哪一部分的成长经历是最让您难忘或者受益最大的?哪一个部分又是让你最有成就感的?

分为三个部分。第一部分是毕业刚参加工作,那个时候主要边学习边实践。随着时间的推移,对于项目已经能够驾轻就熟的时候,就进入了第二阶段。这个时候相对 于前一阶段有比较多的时间可以自学技术,将第一阶段不足的地方补习,同时开始思考了如何能够用自己的技术更好地服务于自己。比如当时我在国内某软件公司就 职时,发现接手的一个个项目很多地方都很相似,于是我将相似的流程和程序做成模板,同时做了一个管理系统,虽然当时做这个东西花了将近2个多月时间,可是 却在后来项目中节约了大量时间。对于节约出来的时间又可以学习和研究技术,这就是一个良性的循环了。第三阶段就是试着做开源项目。

最难忘或者受益最大的因该是第二部分,因为不但学到了更多的知识,而且开始思考如何用学到软件技术更好的改变自己。最有成就感的就是第三部分了,因为终于自己想法变成了现实。

记者:你是何时开始接触Java的?在学习Java的过程中有什么经验可以与广大的程序员分享?

我在2000年的时候就开始接触Java了,当时是参加NIIT培训机构,最初并不了解Java,只是NIIT将Java放在最初的教学课程中,于是开始 接触到Java了。我想大国内很多程序员一开始都是边学边做,主要以项目为主,以能够做出来为优先的。我一开始也是这样,不过时间一长就发现基础知识也是 很重要的。如果说经验的话,我建议加强对Java基础知识的学习,同时在使用目前主流的工具时不时的去关心其的原理,毕竟在Java社区中很多工具都是开 源的,很容易学到。

记者:关于这次JavaOne大会上推出的JavaFX,你对这个产品是怎样理解的?会去试用么?
   
我觉得JavaFX是一个比较好的东西,它可以有效弥补Java桌面软件开发的不足。但是Windows不默认安装JRE会有碍其的发展,毕竟带JRE的 OEM Windows还是少数。其次虽然类似的解决方案也早已经存在,我觉得这些类似的产品将会有很长一段时间共存。我会去试用的。

记者:我看到你的产品仅仅是放在一台个人电脑上作为服务器进行下载的,可以说条件也是相当艰苦,那么推广这个产品你希望得到怎样的反馈呢?


条件的确是很艰苦的,不过也是苦中有乐,因为我这个产品本身就是一个Web服务器,所以必须让大家看到产品的网站就是用自己的产品实现的。推广这个产品并 不想得到什么商业利益,只是想让更多的人知道中国也有开源的中间件,同时开源的目的是为了让更多人了解中间件的原理和实现方法。

记者:对自己软件生涯的最大的理想是什么?袋鼠蛋是你迈向理想的一小步还是全部理想?对这个产品今后的发展有什么样的蓝图向我们描述?

我并没有什么轰轰烈烈的远大理想,只是觉得做一件事就要做到自己能力可达的最好,认认真真的完成,因为我们在工作的同时也在改造世界。对这个产品今后希望 能越来越完善,能够形成自己的标准,当然也希望有其他相同爱好者加入或在我的产品基础上开发自己的产品,共同发展中国基础软件。

记者:平时除了写程序之外还有怎样的爱好?这些爱好对你在软件方面的造诣有何影响?

我比较喜欢看侦探或悬疑小说,这对于锻炼逻辑很有帮助。逻辑性强对于程序员来说也是很重要的。同时我也很喜欢睡觉(笑了),不过我觉得睡觉真的对变成有帮 助,因为困的时候没有办法很好的集中精神,做出的程序就很有可能bug多多,对于现在好多程序员压缩睡眠时间我是很不赞成的。同时我有好多疑难问题的解决 都是在睡觉做梦时想到的,不知道有没有人和我有同样的感受。

记者:做这个系列采访时,我留给每一位嘉宾的最后一个问题都是请写下你偶像的名字,那么你会希望成为这些IT精英中的谁呢?

我特别希望成为James Gosling这样的人,用自己的知识来改造这个世界。

继上一期的嘉宾杨晓兵用自己的姓氏为自己的编译器命名之后,Dunne是又一位在关注中国基础软件并且为之付出自己努力的程序员。有观点称八零後是浮躁的一代,不敢苟同,这个世界是八零前的也是八零後的,但终究还是八零後的。
原创粉丝点击