3。linux下的开发环境不友好,没什么好的集成开发环境 说到这里,我只想说一句,阁下你一定是一个菜鸟。你肯定不知道你在VS下编译程序时后面都发生了什么事,你调试程序时都调用了什么程序,你的模块是怎么连接起来的,你只知道点一下按钮。集成开发环境,也叫IDE,意思是把编辑器,编译器,调试器,文件管理器等等集成到一起。 在这里插入一点Unix的知识:Unix的文化有这么几点: 1。一个程序只做一件事,并且把这件事做好。 2。程序之间通过协作来做一个复杂的任务。 因此在这些思想的指导下,Unix骨子里是比较反对IDE这种东西的。像IDE这种软件背后隐藏了许多windows背后的价值观: 1。把功能集成到一个软件里,大而全。 2。如果功能需要改进,就等着软件升级下一版。 两者的差别显而易见,windows下会经常对某一个功能实现一次又一次。如VS有实现了编辑器,word也实现了编辑器,记事本也实现了编辑器,每个软件如果需要编辑器,如果有特殊的需要,就需要自己实现一次。而在Unix下,编辑器是分开的,几乎所有的软件如果设计到编辑工作,一定会开一个分进程调用专门的编辑器程序,如果你习惯了vi ,你可以总是选择用vi进行编辑。 当然了,Linux下也有IDE,Emacs就基本上说可以是。有人笑话说Emacs是一个伪装成编辑器的操作系统。你可以搜一下用Emacs的人有多少,有多少牛人在用这个东西。 编辑器用vi或者Emacs,编译器用gcc,调试器用gdb(可以和vi和Emacs联合起来用),编译整个软件用make,自己写 makefile,或者用工具自动生成makefile。这些用习惯了,就会发现一点都不麻烦。另外,Linux下编程经常的会用到一些代码生成器,如 lex,yacc,这些都是标准化了的基本工具,这些在IDE下不太好用(WINDOWS),在makefile 里写则稀松平常。 在windows下习惯了的用户,一定会对软件不停的更新换代记忆颇深,还以为世界本来就是这样的,而在Unix下,因为都是分开的程序,你对编辑器不满意,你换一个编辑器就完了,而没有必要等升级换代。 windows下的东西没有核心价值,许多技术随着时间会贬值甚至消亡。 Unix下的东西拥有核心价值,技术几乎没有贬值,如vi编辑器,80年左右就出来了,发展到今天,基本操作变化很少,仍然流行,你掌握的技能不会失去作用。 如perl,lex,yacc,等等,这些使用了数十年的程序太多了。 而在windows下,远的不说MFC,现在已经没什么人用了,VB也被改成了几乎成了另一种语言,现在又是.net,我去年开发项目还在用.net 2.0,现在都已经出到.net 4.0了,总感觉在微软后面不停的追阿追,新东西还没学会,可能就要淘汰。微软又在搞一个什么M语言,我的天纳,技术贬值的速度也太快了。 而我在Linux下,可以开心的学几十年前就有的软件,而不用担心会过时。并不是说在Linux下就不会有软件过时,而是你会很清楚什么东西不会过时,什么有可能过时。在windows下就做不到。 |