主题:【原创】也来说说Linux和Windows下的开发感受 -- 昔杨今雨

2008-03-27 07:48:42昔杨今雨
【原创】也来说说Linux和Windows下的开发感受

在河里闲逛, 看到这里大家讨论得挺热闹, 不由得手痒, 也来说说俺的感受.

俺的起步是Turbo C, 后来是Borland C++, 没有多久, 接触到了Sun Sparc Workstation, 其后4年, 一直在Unix下, 包括大学毕业后还在SCO下折腾了1年. 然后换了公司, 又在Windows下用了3年VC. 随着职位的升迁, 直接编程的机会越来越少, 直到辞职创业, 又回到了Unix环境, 这次是Linux了. 最近随着桌面产品的逐步推出, 处在LW两栖状态下, 真的变成了青蛙;-)

回顾一下这十几年的开发经历, 对这两种平台的开发感受也是随着时间不断有更深的体会.

最早的一个感受, 到现在我也依然这么认为, 就是Windows下的IDE让很多人成为一个庸庸碌碌的程序员. 我刚开始接触 Unix的时候, IDE? 不, 我们只有命令行:-). 开发人员面临的第一个问题就是如何组织你的源代码. 你必须很在意代码文件的命名和目录结构, 否则自己都会被搞糊涂. 记得当时常用的方法就是一个函数一个文件, 文件名就是函数名; 随时注意代码的重用, 可以编译成一个lib的, 就编译成lib, 模块化的概念由此产生; 命令行方式的debug不是很方便, 因此就必须在代码编写的时候高度重视代码的质量; F1帮助? 拜托, 请自己去查; 重复敲打命令很让人厌烦, 做个shell script来批量执行, 这又是最早对解释型编程语言的接触. everything is a file, do one thing and do it best, 这些Unix设计思想中的精华就这样深印在脑海里. 这些都是被逼出来的, 但是回头看看, 收获是如此丰厚, 以至于至今受益.

而舒适的IDE不会让一个刚刚接触编程的人获得上面任何一个经验, 就像一个一直用傻瓜相机的人永远不会成为一个优秀摄影师一样, 一直使用IDE编程的人也不会成为一个优秀的程序员. 顺便说一下, 我觉得唯一比一个初学者使用IDE更糟糕的是: 他(她)居然使用中文版的IDE.

我的第二个看法, Windows和Unix在它们诞生之初就存在很大的区别. 用玩具打个比方, 如果Windows是一个洋娃娃, Unix就是Lego. 当我们讨论这两个平台作为开发环境的优劣的时候, 我们不仅要评价它们各自可以给最终用户带来什么, 更应该认真思考一下这两个平台分别为程序员带来什么. Unix自身就是一个最好的演示, 因为它给了程序员一张解剖图, 而不是一个黑盒. 即使你仅仅在使用它, 只要你愿意多问个为什么, 它就会带着你由简入繁, 再由繁入简. 这就好像杨过睡的寒玉床, 不知不觉中, 功力就得到了提升. 从这个意义上来说, Unix难道不是一个最好的开发环境吗?

第三点是看了大家的讨论后而产生的, 在跟帖里面, 各位都有很多很好的意见, 但是我觉得大家在比较的时候似乎都忽略了很重要的一点, 那就是团队开发. 单个技术的比较在我看来容易发生分歧, 而且意义不大. 在实际工作中, 我们往往是在一个团队中或者领导着一个团队. 我说四个字"持续集成". 也许你看到这里已经微笑, 那么我们自有会心处. 如果您还不明白, 那么我就追问一句, 在Windows和Unix下, 分别搭建一个持续集成环境, 哪个更方便, 哪个更成熟?

顺便鸣谢AllenKi, 他的一篇讲IPhone SDK的文章, 看了以后给我触动很大, 可以说, 苹果对产品看法和开发原则给我打开了一片新天地, 我正在尝试走入这片新天地, 希望有一天我还可以对这三者进行一些深入的比较.

主题:1505930
帖内引用