那晚我正读着Rob Conery写的一篇文章,其中谈到了他对职业生涯的选择,对编程语言的选择以及这过程中留有的一些遗憾。很多地方让我觉得吃惊,但其中提到的关于.net开发的一点引起了我的深思。他发现的不好之处是:比起PHP开发人员,.Net开发人员会变得越来越依赖IDE。
作为一名.NET开发人员,我已经习惯了周围各种关于IDE依赖现象的说法,也习惯了各种PHP、JavaScript或Ruby开发者对微软产品Visual Studio的抨击。通常来说,基于C语言的开发者们在这个话题上更有发言权,这就像使用编程语言和开发工具更多的人会更了解程序的运行过程一样。
事实上,一款优秀的IDE会让你的工作更有效率:优质的框架加快了项目进度,自动编译和IDE重构工具让编码进行得更快,集成单元测试让你的应用程序易于维护,部署工具、web服务器、代码分析器或编译时绑定等简化了项目工作流程,除此之外,它还标准化了程序员的开发经验,这既有利于开发者本身也有利于项目的进行。团队内的开发者们使用相同的工具一起工作效率更高,而企业也受益于老员工与新员工之间的代沟会变小。
以上所说的优点也只是冰山一角而已,并且在所有可用的IDE中,Visual Studio可以说是最好的,它不仅功能齐全,而且连发布版本也都是免费的(尽管缺少一些中看不中用的组件)。可能你不会被视为那种能在Emacs上用bash写纸牌的“精英”,但是我认为很多人讨厌IDE的原因是因为他们所用的IDE不适合他们所用的编程语言。其中大部分都是脚本语言,因为一个IDE很难为一种解释型语言做出点贡献。不能因为一个开发者更喜欢使用notepad++来写PHP而否认他们能从IDE中获益,相反,这反而是一种固执的表现。
依赖IDE不好的第二大原因是,它会让你对编程语言本身越来越模糊。如果你不需要记住语法规则,也不需要记住那些要调用的方法,因为IDE总会智能的提醒你,久而久之,你就会很难在没有IDE的情况下写好一个程序。但在我看来,对于一个优秀的开发者,最重要的不是去记住那些语法细节,而是知道解决问题的有效方法并能有效利用最好的技术或者工具来解决它。使用IDE能够让你将更多的精力投入到真正重要的问题上,也就是解决方案,而不是纠结于哈希表逆序的函数是哪一个这种问题。
而Rob Conery认为过于依赖IDE不好的原因在于,他的主要工作是在windows平台下使用Visual Studio中的拖放控件来开发web表单。这从某种意义上来说确实是不好的,但同时我也对他竟然花费如此多的时间那样使用.NET感到惊讶。我已经有将近8年没有使用过VS系列的可视化开发工具了,但是我仍然认为没有任何IDE能够比得上它。
我曾经多年见到Xcode就发慌,Eclipse很适合用来做Java开发可是我不喜欢用它来开发PHP,刚用Aptana的时候会觉得不错但是过不了多久就会让你有在使用Notepad++的错觉,诸如此类的IDE还有很多。而由于JetBrains公司(IntelliJ IDEA集成开发环境所属公司)产品的缺乏,使得它远不能与Visual Studio相提并论。
当然这仅仅是我个人的想法。你认为依赖IDE对你的编程能力或者职业生涯有没有影响呢?你觉得如果一个团队的开发者都使用Sublime Text或者Notepad++会和使用IDE一样高效吗?
部分微博评论
@xxiuu :写代码是个手艺活,拿着钉子锤子,锯子墨线,一块木头,半天功夫,一把仿古的凳子就出来了,在来个雕花,上个老漆,真是个绝活。在看看那边,电闸一啦,车床呼啦呼啦的,这边几块木料下去,那边一对零件出来了,打个包装加个说明书,一套原木环保宜家家具就出来了。
@扬仔360:老么前儿学J2EE那会儿,一老师说我太过于依赖Eclipse,用多了代码补全,问:“单单让你用TXT,能写出来吗?”其实当时J2EE勉勉强强还能用txt写出来,现在用XCode用多了,要说用txt写O-B,我是死活写不出来。现在我才明白很多事情,抨击IDE的便捷性就是抨击咱人类的发展过程,不定个反人类罪都是轻的。