已经犹豫了很久要不要买个Mac Book Pro来用,恰好今天又看到了tinyfool的这篇《为什么我认为每个程序员都应该用Mac OS X?》,索性让纠结来的更猛烈一些吧~

tiny的这篇文章,给我的感觉是阐述Mac OS X对于一个独立开发者的重要性,牵扯了很多为Mac、iPhone及iPad*用户*开发软件的“愿景”,基于浏览器的也好,客户端软件也好。也因为tiny和我的经历和从业背景相差太多,使得我倒不认为Mac OS X真的就是程序员的不二之选。对于我来说,选择一个OS,首要目的不是为了在它上面开发然后卖软件养活自己,而是为了使用,提高自己的工作效率。首先需要把自己定位成它的小白用户,考察它的界面外观和易用性;然后需要摇身一变成一个Power User,看看这个OS是否让我方便地定制、配置它以便适合我的需要,考察这个OS周边的生态环境,它之上是否存在很多不错的软件厂商提供了很多能提升我自己工作效率的软件;最后,需要自命不凡一些,把自己作为一个得道了的开发人员,检查这个系统是否提供了让我继续开发的底层基础设施,以便在我做Power User做的不爽的时候可以自己动手干或者憋出一个程序来方便自己。

作为一个(服务器端)Java开发人员,我更多的时候还是作为一个Power User在使用OS。Windows XP我用的时间最长(公司需要),也积攒了一些在它之上构建一个提升工作效率的工具集,可是很多时候还是觉得Explorer这么个shell限制了很多,如果切换到blackbox及其fork或者SharpEnvironment,又会出现一些形形色色的小问题。非服务器版Windows作为通用OS虽然不必提供一个很完善的工作环境,可我不得不说在它之上配置出一个高可用的有效率的环境并非易事。Windows 7似乎也注意到一些易用性和友好性的问题,至少这段时间在家用Windows 7的时候我的体验没XP那么糟。反观Linux,实际上我也算一个时间很久的Linux用户,资深算不上,只是比一般用户更了解一些东西,也明白怎么配置它从而让自己的开发效率能更高一些。Linux之上的黑客氛围应该是最最浓厚的,此外就是各种用户社区和开源项目提供的便利。作为一个开发人员,能够和众多黑客使用同一种内核的OS真是一种幸事,不仅因为黑客们都是高超的开发人员,通过各种开源项目为这个OS贡献真正有意义的软件,也因为可以向这些黑客学习而提升自己的功力。举个小例子,X下的窗口管理器可以说是洋洋大观了,可以说每一种窗口管理器都有不同的诉求,我最喜欢的窗口管理器,awesome,就是一个可以大幅度提升自己工作效率的平铺式wm,绝大部分功能都可以全靠键盘操作来完成,配置文件也是直接采用lua脚本,极大程度满足个性化要求。至今在XP下束手束脚地干活的时候,总是会回想起年前用awesome开发另外一套服务器端产品时的畅快淋漓。不过黑客们开发的随意性也比较高,所以追git HEAD拿来做日常用途的话还是有一定风险的;好在有社区作为补偿,偌大一个社区里总会有能人来满足其他人的日常用途。至于Java开发方面的工具集,好在很多还都是很注重跨平台工作的java程序,又有eclipse这么一个IDE作为核心,加上vim、P4V这种有N多不同OS版本支持的软件,开发工具方面倒是很少会操心。

作为一个服务器端(Java)开发人员,我又不得不必须熟悉常见的服务器OS,最常见的就是各种Linux了。我不敢认同tiny所说的“学习Linux是为了学习服务器管理的人们,真玩转了Mac OS X,Linux有什么区别?” 常见的一些操作、管理和概念等等可能绝大部分都是可以在常见的诸多发行版中通用的,可是为了严谨起见,那一小撮不通用的东西也是绝对不能忽视的。身在一个(曾经的)美国乡镇企业工作多年,我对老外的严谨的工作和开发态度印象深刻,而且也确实被一些我自己开发机器的Ubuntu和公司跑服务用的做过一些裁剪和配置的Linux服务器之间的差异着实折腾过几次,于是乎我是万万不敢因为都是Linux就觉得可以无痛运行所有的应用。Java是compile once run anywhere不错,不过有些时候为了更好地发挥服务器性能也会基于服务器运行环境来做一些hack,忽视这些hack有些时候是真能死人的。更何况如果我没记错的话,Mac OS X怎么说也是基于一版BSD做的fork,作为一个伪Linux用户我还是不敢忽视Linux和BSD之间的差异。

而说到Mac OS X以及iPhone、iPad,tiny似乎也非常欣赏以App Store为核心的这套苹果平台上的生态系统。不过我还是觉得一个过于封闭和独裁的平台是无法长远发展下去的,即使App Store刚出现的时候给人感觉似乎是独立开发者的救世主降临了。苹果的App Store绝对是个创举,但是它建立在一系列苹果家的封闭平台和渠道之上,我觉得长远看来Android App Store应该更有未来,至少不会再有一个苹果Inc.禁止你发布一些和它利益冲突的应用程序。

再者就是大家都很看中的用户体验了。这方面大家都承认Mac——以及iPhone/iPod Touch/iPad——及其之上的很多应用程序,历来都是优秀用户体验的代名词,无论外观还是操作都是一流的。不过我还是认为,这么一个东西,只不过是一个适合人类的OS,不是适合*我*的OS。很多时候我还是希望能折腾出来一个最适合自己的OS——也许这些不能算是OS的功能,在linux下尤甚,基本上就是OS和运行在其上的各种应用程序的一个综合。这样一个*我*的OS,虽然不敢保证随便谁都能拿来就无障碍使用,但对我来说却能在一定程度上保障自己保持一个合理的工作效率。没有使用过Mac OS X,不知道在它下面能不能像在linux下一样地自由折腾,不过,Linux即使不是最能让用户折腾的OS,也肯定是能让用户使劲儿折腾的OS之一。

聒噪这许多,发现似乎自己的犹豫也渐渐解开了,还是买台ThinkPad好了,继续走Linux的路子,也许外加一个Windows 7方便VPN干活。只不过说到笔记本硬件的话,17寸Mac Book Pro的性价比感觉还是很高的,更何况还有那么好的外观,买完了ThinkPad我想我也还是会继续惦记着Mac Book Pro…

发布之前又去tiny的blog看了一眼,发现很多回复也说出了我所想说的意思。真是,唉,磨蹭了一整天才发出这么篇东西,还是没法写议论文 T_T