在我刚开篇写这一系列随笔的时候,就有人问:在Linux下进行Java开发究竟有什么优势,如果都是一样安装JDK、安装Eclipse,那和Windows下开发有什么区别?这个问题问得很尖锐,的确,我们似乎根本没有必要把我们的工作从Windows中转移到Linux中来。
在Linux系统中进行开发,和在Windows中进行开发相比较起来,即有优点,也有缺点。下面是我的一些意见,欢迎大家讨论。
先来说说优势:
1、由Linux系统的本质决定的:
Linux的本质有三点,一是开源,二是免费,三是和Unix是一个体系。大家都知道,重要的应用几乎都是运行在Unix服务器上面的,这是因为Unix天生就是为服务器设计的操作系统,他的安全、高效是不用质疑的,后来为了向桌面发展,出现了X Windows,当然,我们可以选择在启动系统的时候不启动X Windows,抛去图形界面的包袱,系统当然可以跑得更快。而Windows操作系统天生是为桌面设计的,后来为了向服务器发展,出现了NT系列。当然,现在NT系列的服务器已经很成熟了,足以和Unix服务器竞争了。但是,它不是免费的,不仅不免费,而且卖得很贵。所以,选择Unix/Linux作为服务器操作系统,是可以为企业节约很多成本的。
本来,Java一设计出来就是可以跨系统运行的,我们完全可以在Windows系统下面进行开发,然后让程序运行在Linux系统下。但是,毕竟他们还是有少量的差别,比如文件路径。所以,我们在Linux系统下构建我们的系统,可以保证最大的兼容性。
2、有程序员的性格决定的:
程序员有一个性格,那就是喜欢不断接触新的东西,我们称之为黑客文化,或者说是玩家文化。在Linux系统中,你可以毫不费力的得到很多好东西,包括好的软件、好的代码、好的思想、好的经验。如果你喜欢系统编程,Linux自带gcc;如果你喜欢动态语言,Linux自带Python、Perl、Ruby;如果你要创建网络应用,Linux自带httpd、Sendmail等一系列网络软件;如果你要管理项目,Linux自带CVS、Subversion、AutoMake。总而言之,只要你感兴趣,Linux让你这一辈子都不会感到枯燥。
我在使用过Linux的命令行界面后,就再也不想去点击鼠标了,我觉得双手不离开键盘,做起事情来会更快。
Linux系统本身就有很多的选择,可以选择老牌的Red Hat,也可以选择新秀的Ubuntu,或者Suse也行,社区版的Fedora也可以,当然,也可以选择像我这样的国产货,支持SUN的朋友们当然也可以去使用Sun公司的Solaris,反正现在也开源了,不要钱了。我要说的就是,Red Hat的确是把它的丑坚持到底了,说它界面丑的不止我一个。对于国产货,我觉得大家不应该有太多的指责,别人已经解决了最重要的中文字体和Qt库的问题,已经给我们提供了一个很好的基础,开发应用软件应该是我们每个程序员的事,开发不出好的应用软件,我们应该扪心自问,而不是骂别个操作系统厂商。
3、由市场决定的:
很简单,懂Linux的程序员比不懂Linux更贵。不用多说了。
再来说说劣势:
1、Windows门槛低,早就有人说过,Unix/Linux系统产生的是对程序员有利的价值,而Windows产生的是对非程序员有利的价值。我们程序员有时候也是非程序员,我们也需要听歌、看碟、炒股票、打网络游戏,这个时候,Windows就比Linux俏多了。界面的美观是一个方面,应用软件丰富又是一个方面,虽然SuSe的界面已经做得超过XP了,但是你安一个游戏都要./configure、make、make install半天,还不一定成功,自然是不如Windows爽了。
2、美工和网页设计师离不开Windows,就拿我自己来说,最喜欢的网页设计工具依然是Dreamweaver,虽然在Eclipse环境下,依靠HTMLEditor插件的文本着色和自动提示,我依然可以很快速的编写HTML和CSS,但是找不到一款正宗的可视化网页设计工具依然不爽。对于喜欢Photoshop的朋友,当然是非Windows不可了。
3、软件的测试不仅要考虑到FireFox浏览器,也要考虑到IE浏览器,因此,无论如何,也少不了一台Windows。
总体来说,我们并不需要将所有的工作都搬到Linux平台中,在一个局域网中,只需要一台Linux就足够了,其余的都可以是Windows,Linux服务器主要用来运行Subversion,用来进行每日构建和自动化测试,而Windows则主要是用来开发,当然,也要作为客户端进行一部分的测试工作。
欢迎大家提出不同意见。
分享到:
相关推荐
windows开发环境和linux生产环境下配置opencv
Linux 与 Windows 区别 Linux的操作比较复杂,windows的比较简单. Linux速度比较快,安全性比windows好 但是有很多软件只能在windows里运行 与Linux兼容的软件正在开发中. Linux适用在网络方面.
在软件开发中,经常会遇到这种情况,UI和操作功能都一样,但需要能同时兼容Linux和windows两种操作系统。这样的软件看似简单,但实现起来却相当不易,涉及许多的细节,从开发环境、开发语言的选择到系统结构的设计。...
JAVA写的海康威视监控LINUX系统和WINDOWS系统的实例。
资源中在windows和linux下分别介绍了安装android系统所用的软件以及插件地址,介绍了安装的详细步骤。
针对刚学java的朋友要安装运行起的话。这是很好的安装教程哦
MIngw是c/c++的编译器,当很多人用eclipse写java时,感觉这个工具很好用,于是想用它开发c++,也有一些人想在windows环境下使用Linux c和Linux c++的编译功能,而 MIngw就是对Linux c/c++的模拟编译器!在eclipse中...
本压缩包包含了不同平台——windows以及linux最新的tomcat版本,(包含:tomcat-5.5.36、tomcat-6.0.37、tomcat-7.0.47)。 和jetty-distribution-9.0.6.v20130930。 供java web开发人员去下载
利用RXTX进行java串口开发,及开发部署过程中遇到的问题解决,具体详见https://blog.csdn.net/j1805l1377/article/details/106335723
在必要的情况下,用户可以及时地为Linux打 "补丁"(这正是笔者前面文章中讨论的集市模式开发软件最本质的内容),这是其它操 作系统所没有的优势。同时,这也使得用户容易根据操作系统的特点构建安全保障系统 ,不会...
Linux和C天生有不解之源,大家可能知道Linux的操作系统内核就主要是用C写的,另外Linux下的很...Linux的C开发环境与Windows的有所不同,在Linux下,一个完整的C开发环境包括以下三个组成:函数库、编译器、系统头文件。
Jdk8-linux和windows版本、Jdk11-windows版本、Jdk17-windows版本,适用于搭建Java开发环境和生产环境。本资源为免费资源,不需要积分,不需要付费,不需要VIP
JAVA视频操作的最常用工具包的linux开发库,支持在linux下java调用ffmpeg进行视频操作、转码、截图等操作。如果你自己编译、寻找库费了很长时间而不成功,那么,希望这个资源能够帮到你。 里面的jar及linux动态库,...
安装、各类网络配置、文字处理软件WPS的安装、查看Windows的FAT和NTFS格式分区、U盘和移动硬盘的使用、CVS的配置、与Windows网络互通(Samba的配置)、多媒体软件(Realplayer、Mplayer、XMMS、BMP)的安装配置、网络...
JDK 16 即 Java SE 开发工具包 16.0.2,Linux /windows /Mac OS X系统下 64位 安装包,有以下版本: Linux ARM 64 RPM Package linux-aarch64_bin.rpm Linux ARM 64 Compressed Archive linux-aarch64_bin.tar.gz ...
内容概要:文件【jdk-8u201 windows和linux版本】解压后内含jdk-8u201-linux-x64.tar.gz、jdk-8u201-windows-x64.exe两个版本的安装包,可以在windows和linux环境进行jdk环境搭建 适合人群:常规Java开发人员以及...
Java项目从Windows开发平台到Linux服务器的移植.pdf
【Linux学习】7.在windows系统下用SDK软件编写LinuxApp.docx
JAVA访问串口RXTX包,包含演示代码,windows 64位系统和linux 64位下测试可以使用。演示代码用了netty包,开发工具Idea, windows下安装包方法: a.复制rxtxSerial.dll 到%JAVA_HOME%\jreX/bin/ b.复制RXTXcomm....
利用Java在Windows与Linux间建立数据通讯的方法.pdf