To Mac, or not to Mac
Feb 20
已经犹豫了很久要不要买个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
RSS
Feb 21, 2010 @ 10:14:24
我也在犹豫这个,犹豫买个macbook很久了。
Feb 21, 2010 @ 11:29:40
我决定先买个ThinkPad用,macbook嘛,也许下次出差时如果手头还富裕的话再买,同事有熟人能便宜10%,基本上把加州的税抵掉还能再省一些。
Feb 21, 2010 @ 13:34:20
1 那些裁剪的发行版哪, 偶有比你更奇怪的玩意, root 长在 tmpfs 上, 连 sysvinit 都不用的, 服务都在 chroot jail 里面. export, ldd, strace, ltrace 都玩熟了就没那么多事. 现成发行版有做好的东西那就顺手搬过去.
2 明明大多数的本子都是亚洲制造. 想炫耀的话可以找人从日本搞台回来, 电池质量是不一样的.
3 “只不过说到笔记本硬件的话”, 不了解行情就不要下手嘛.
4 multitouch 专利… 阻碍其它设备易用性的提高.
5 git HEAD? 后来偶也讨厌编译了, 没那么快的机器嘛. clang 说不准能改变一下.
Feb 21, 2010 @ 13:51:56
如果仅就工作来说,TP 足够了。而Tiny说的针对后续的比如iPhone,iPad的考虑,我现在个人站在 android 阵营。
不过和你一样,我也是惦记着Mac。
估计是我买一个Mac,然后买一个上网本,一个我用,一个给老婆鸟。
Feb 21, 2010 @ 17:44:16
@fcicq 天,大牛又跑来羞辱我来了。我是比较不了解行情,唉,只能比较比较硬件配置什么的,具体谁跟谁在一起性价比能好一些的话是完全不明白,明白也顶多是明白当下的几个,过几天自己机器啥配置都能忘掉。那个炫耀,也绝对不是的,还有人能为省钱而炫耀么,我觉得煤老板才能炫耀:D不过您这一说倒确实,日本这么近的高质量市场倒忘了,皑皑,对日本了解还得说您这看日文技术资料的人强大。
Feb 21, 2010 @ 17:46:30
@yinwm 我也觉得android有戏一些,不过也可能最后搞得四分五裂,现在有Google镇着,以后不好说。也因为我Java的背景太深吧,做Android开发更没门槛。
Feb 22, 2010 @ 21:01:37
从tinyfool的文章跑过来的。
折腾需要时间,而人生很短……
所以我使用Mac的很大一个原因是不想折腾。
Feb 22, 2010 @ 22:02:41
@Wu Yongwei 确实,我的工作用PC装的Ubuntu也是因为干活用的机器稳定第一,折腾不是目的。不过家里的机器还是折腾第一,只要折腾出心得就会应用到公司的linux PC上面,折腾折腾能学到很多东西哇。
Mar 02, 2010 @ 13:59:06
买Mac换其他系统方便,买PC换Mac不方便,哈哈
May 25, 2010 @ 23:01:57
在使用Hackitosh中,易用性实在是不错
May 27, 2010 @ 11:22:59
@於仁頗黎 总觉得易用性大部分时候不是太大的问题,只要自己能折腾
Aug 14, 2010 @ 06:32:26
作为一个21年前开始用苹果电脑,到Win3.05投微软,又在十年前后实在无法忍受98要三五个小时重启一次而投奔linux数年,直到近几年windows稳定性有质变以后才用回来几年,但是又被雪豹给拉回苹果阵营的所谓资深电脑用户,在几个平台都有比较长的使用时间,但是其实就我个人使用体验而言,未来是微软和苹果的事,不应该有linux什么事情,哪怕是google的chromeOS,虽然所有linux用户都不愿意承认,但是就最近十年来说,三个阵营都在进步但linux是进步最小的。
我恰好没用过xp,那段时间用fedora,但是自从xp开始,linux嘲笑windows的几个笑话都一个一个变成历史,蓝屏出现的几率现在不比装了gui的linux版本高了吧,2003和2008的服务器也可以整年不需要重启了吧,有了组策略和一些高级配置脚本,也可以对windows做很多配置,并且ntfs也有权限了也支持大文件了不能再像嘲笑fat一样了。但是windows嘲笑linux的那些笑点可大部分没消失,还多出来了几个。全世界最大气好看的系统不是win7就是macosx10•6 ,但是最花哨的肯定是某些linux,为什么在界面努力了很多却不见有成功呢? 我跟你相反的感受是,linux的生态圈是最恶劣的。我们把系统比喻为插头插座的话,windows是2脚,mac是3脚,linux从1到100脚插头都有人用,你说插座怎么生产好?
盗版和破解,对开发生态圈是损伤吧?我们把mac和win的生态圈做最大化的损害,全世界用盗版破解,几乎软件都不要钱,而且还被人反编译出源码来。这是最坏的情况了。你不觉得最坏就坏到类似linux这样么?
另外appstore成功的原因就是不开放,android这种开放全部的最终要杀了自己,历史发生很多次了,这次再让时间来证明。
Aug 18, 2010 @ 10:08:37
呃,这么篇东西竟然能让您这样的资深用户留言,见笑见笑。
这么晚才回复您,也因为我也在想Linux,以及android market和app store这种开放和封闭的问题。
我用电脑的时间不长,只有9年,从Win98 SE开始用过之后所有的Windows系统,之前中学的DOS经历就略过了,上大学期间用过redhat和suse,最后换到Ubuntu。Linux生态圈——如果说真有这么个生态圈的话,我也承认对普通用户来说是最差的生态圈,但是我觉得现在因为有了Ubuntu,生态圈和易用性的问题正在逐渐减小。上学用redhat和suse的时候,我确实也有您一样的体验,如果不是很懂计算机的话,那时的Linux生态圈几乎和没有一样,安装个软件要费很大的劲,诸如rpmfind之类的地方也只是个资源索引,毕竟,就像你说的,1到100脚的插头都有人用。所以看到别人用apt-get时就想这玩意儿很方便啊,后来也逐步试验最后转到号称用户友好、给人类使用的ubuntu上面。用了几年,也把它推荐给身边一些根本没用过Linux的同事,反响还可以,家用还不敢说普及,工作时用来开发基本没什么问题。当然,即使友好如Ubuntu,那种浓厚的hacker味道在Linux上还是挥之不去,比如,从普通用户看来最直接的,有N多前端可以拿来装软件,最终虽然都是走apt-get,但是有些同事乍一用来还是觉得纳闷,不知道哪个方式更有“保障”一些,最终自己摸索了一下,发现背后还都是apt-get,才放心。
说到Windows 7,这个OS我也用了一段时间,得承认各方面平衡得很恰当。但我总隐约感觉Windows会有个大门槛要过,因为它的历史包袱很重,而且不好摆脱,不知道7是已经过了还是没有。微软自己暂缓WinFS这样的东西,于OS来说应该不是没有理由的。
说到开放和封闭,我觉得两方应该互相学习才好。拿Debian和Ubuntu来说,系统装好了便预先配置了N多社区的repository,看起来没什么,但比起以前的完全随意安装软件的套路来说,相当于一个加了引号的封闭,引入了一套预置的系统:系统虽然简单,可这个系统之上的积累却不简单。不考虑Debian、Ubuntu社区repository里已经定义好的那么多软件以及互相依赖的关系走的话,自立门户,只需要deb、apt-get等等的话,当然也是可以的,只不过普通用户应该很难做到。Gentoo和Arch应该也一样,不过我基本算是没用过,就不乱说了。而app store,我觉得也会慢慢开放的,就像曾经很封闭的微软一样,否则它之上的生态圈的基础就是一个不可知黑盒,对个人开发者来说自然无所谓,不过等传统意义上的大公司相继加入这个生态圈以后,势必会引入很多新的需求,以及利益上的博弈,苹果想继续捂着不让别人看的话,肯定要和这些大公司产生冲突。作为个体来说,假如我是苹果的员工,我自然希望苹果一家独大,但是在更大的尺度上看这个问题的话,更好的方法始终是多方博弈吧,封闭不是长久之计,开放肯定是会慢慢来到的。
完全的封闭不好,极端的开放也不是好事,不过幸亏有很多走极端的人士让这些问题显现出来。