大约一年半前,我们开发的一个基于SWT的产品,

要求能够在Windows和Linux提供用户安装功能,

提供Windows环境安装很简单,

网上有大把工具,很多还是免费的,我选了INNO,

但是如何提供在Linux环境安装的工具,百度了好几天都没有好的,

都说RPM最好,可我一点不喜欢,

因当时只能用RPM,只好一边百度学习一边捣鼓,

花了五天才把基于Linux的安装搞定,

但只有文字界面的,不像一般Windows安装程序都有图型界面,按下一步………就能完成安装。

就像一般手机APP安装,只问你要不要安装,回答要,再等一会儿就安装好了。

RPM的不止不能这样,搞定它还挺费事,好不容易搞定了一个就求爷爷告奶奶,千万不要有任何修改。

想到万一将来要修改安装功能就全身起哆嗦。


那时候我就想,咱们学Java不是跨平台吗?能不能弄个东西,像INNO那么简单就搞定在Linux环境安装软件这件事。

也提供一个图型界面,让用户一路按下步就完成安装。

最好弄个INNO配置就同时完成提供在Windows和Linux平台安装这件事,

而且最好像INNO生成的一样,只有1个SETUP.EXE最好,Linux下也是只提供一个SETUP程序最好。

哦,最好还能自动判断32位/64位,安装正确的JRE。

可当时把自己熟悉的JAVA+SWT想了个遍,

都想不到合适的办法,只好暂时先搁着。

但有空都会时不时想起这件事,因为后续还有开发别的软件也需要有Linux安装功能。


就这么有时想到这事就想一下,想不到办法就只能叹口气,

一直到半个月前突然脑袋里灵光一闪,

终于想到办法,

然后用了半个月时间,完成整个开发。

现在我们完成软件,只要写一个INNO配置,便可以同时完成Windows和Linux平台安装工具的生成,

而且只有1个SETUP文件,而且提供图型界面让用户一路下一步就完成安装。


OK,上述这个安装软件功能不是我要说的重点,

我要说的是,我想这个问题的解法,

足足想了一年半!


十多年前用SQL2000时发现SQL一个要完成某个审计功能会有缺陷,

想了好几天都想不到解决办法,

后来也是这样,有一阵没一阵的,想起这事就想一下,

足足用了二年才想到解法,

然后用我的破脚英文,写了一份解法说明,

发到老外的讨论群,

一个老外看了后直赞我YOU ARE THE MAN!


我想了二年才想到答案!


前几天听说有一个6几年出生的编程爱好者,

这十几年来养成一个习惯,

经常晚上睡到半夜起床编程,

因为他睡到那时候突然想到办法,

不立即编程就睡不著。


喜欢编程的人就是这样,

虽然想不到答案时痛苦万分,

心情烦燥无比,

但一般总耐得住烦。

并持续地耐住那个烦长达1年以上。


编程就是这样,

有搞定问题的成就感,

也有搞不定时的烦燥和压力。

对适合的人来说,

编程是痛并快乐著,

而且很快乐!

但对于不适合的人呢,

比学校时一天算50题数学还痛苦!