在我刚开篇写这一系列随笔的时侯,就有人问:在Linux下进行Java开发到底有哪些优势,假如都是一样安装JDK、安装Eclipse,那和Windows下开发有哪些区别?这个问题问得很尖锐,的确,我们其实根本没有必要把我们的工作从Windows中转移到Linux中来。在Linu
在我刚开篇写这一系列随笔的时侯,就有人问:在Linux下进行Java开发到底有哪些优势,假如都是一样安装JDK、安装Eclipse,那和Windows下开发有哪些区别?这个问题问得很尖锐,的确,我们其实根本没有必要把我们的工作从Windows中转移到Linux中来。
在Linux系统中进行开发,和在Windows中进行开发相比较上去,即有优点,也有缺点。下边是我的一些意见,欢迎你们讨论。
先来谈谈优势:
1、由Linux系统的本质决定的:
Linux的本质有三点,一是开源linux应用程序开发(java版),二是免费,三是和Unix是一个体系。你们都晓得,重要的应用几乎都是运行在Unix服务器里面的,这是由于Unix天生就是为服务器设计的操作系统,他的安全、高效是不用指责的,后来为了向桌面发展,出现了XWindows,其实,我们可以选择在启动系统的时侯不启动XWindows,抛去图形界面的包袱,系统其实可以跑得更快。而Windows操作系统天生是为桌面设计的,后来为了向服务器发展,出现了NT系列。其实,如今NT系列的服务器早已很成熟了,足以和Unix服务器竞争了。并且,它不是免费的,除了不免费,但是卖得很贵。所以,选择Unix/Linux作为服务器操作系统,是可以为企业节省好多成本的。
原本,Java一设计下来就是可以跨系统运行的,我们完全可以在Windows系统下边进行开发,之后让程序运行在Linux系统下。并且,虽然她们还是有少量的差异,例如文件路径。所以,我们在Linux系统下建立我们的系统,可以保证最大的兼容性。
2、有程序员的性格决定的:
程序员有一个性格,那就是喜欢不断接触新的东西,我们称之为黑客文化,或则说是玩家文化。在Linux系统中,你可以毫不费劲的得到好多好东西,包括好的软件、好的代码、好的思想、好的经验。假如你喜欢系统编程,Linux自带gclearcase/"target="_blank">cc;假如你喜欢动态语言,Linux自带Python、Perl、Ruby;假如你要创建网路应用,Linux自带httpd、Sendmail等一系列网路软件;假如你要管理项目linux web服务器,Linux自带CVS、Subversion、AutoMake。总而言之,只要你感兴趣,Linux让你这一辈子都不会倍感无趣。
我在使用过Linux的命令行界面后,就再也不想去点击滑鼠了,我认为手掌不离开按键,做起事情来会更快。
Linux系统本身就有好多的选择,可以选择老牌的RedHat,也可以选择新秀的Ubuntu,或则Suse也行,社区版的Fedora也可以,其实,也可以选择像我这样的国产货,支持SUN的同事们其实也可以去使用Sun公司的Solaris,总之如今也开源了,不要钱了。我要说的就是,RedHat的确是把它的丑坚持究竟了,说它界面丑的不止我一个。对于国产货,我认为你们不应当有太多的质疑,他人早已解决了最重要的英文字体和Qt库的问题,早已给我们提供了一个挺好的基础,开发应用软件应当是我们每位程序员的事linux应用程序开发(java版),开发不出好的应用软件,我们应当扪心自问,而不是骂别个操作系统厂商。
3、由市场决定的:
很简单,懂Linux的程序员比不懂Linux更贵。不用多说了。
再来谈谈劣势:
1、Windows门槛低,早就有人说过,Unix/Linux系统形成的是对程序员有利的价值,而Windows形成的是对非程序员有利的价值。我们程序员有时侯也是非程序员,我们也须要听歌、看碟、炒股票、打网路游戏,这个时侯,Windows就比Linux俏多了。界面的美观是一个方面,应用软件丰富又是一个方面,尽管SuSe的界面早已做得超过XP了,而且你安一个游戏都要./configure、make、makeinstall半天,还不一定成功,自然是不如Windows爽了。
2、美工和网页设计师离不开Windows,就拿我自己来说,最喜欢的网页设计工具仍然是Dreamweaver,即使在Eclipse环境下,借助HTMLEditor插件的文本着色和手动提示,我仍然可以很快速的编撰HTML和CSS,并且找不到一款纯正的可视化网页设计工具仍然不爽。对于喜欢Photoshop的同学,其实是非Windows不可了。
3、软件的测试除了要考虑到FireFox浏览器,也要考虑到IE浏览器,因而,无论怎样,也少不了一台Windows。
总体来说,我们并不须要将所有的工作都迁往Linux平台中redhat linux 下载,在一个局域网中,只须要一台Linux就足够了,其余的都可以是Windows,Linux服务器主要拿来运行Subversion,拿来进行每日建立和手动化测试,而Windows则主要是拿来开发,其实,也要作为顾客端进行一部份的测试工作。
欢迎你们提出不同意见。