不是,至少Windows下面的VisualStudio这个神器就可以秒杀Linux下的大多数开发工具。但我还是建议程序员(特别是嵌入式工程师)要学习一下Linux下的软件开发,因为Linux在嵌入式设备上的应用要远远高于Windows。下面将从几个方面介绍一下学习Linux开发的一些好处(插图部分会附上一些经典教材)。
是不是Linux下开发更高效?-编程之家

  1. 理解编译原理。Windows下面开发软件时,你只需要熟悉编程语言即可,剩下的事情会有visualstudio这类的ide帮你完成程序的构建,一键即可生成exe。这样确实方便,但也正因为如此,导致很多Windows程序员过很多年都还不能理解他的程序是如何构建的。在Linux下,程序编写好代码这只是第一步,接下来要编写Makefile来告诉编译器自己的程序结构,接下来编译后才能得到可执行程序。这些操作虽然麻烦,但却能清楚自己的程序是怎样构成的。
    是不是Linux下开发更高效?-编程之家
  2. 开发嵌入式程序。绝大多数嵌入式平台内置的操作系统就是Linux,要开发这些嵌入式平台的程序如果在Linux下完成开发调试会减少许多工作量。在pc端配好交叉编译器,然后编写好代码后,直接使用交叉编译器编译,就能直接得到嵌入式设备的可执行文件。或者嵌入式平台如果支持Qt等ide的话,在pc上安装同样的ide,就能做到一套代码运行在两个不同的平台上。
    是不是Linux下开发更高效?-编程之家
  3. 开发安卓设备程序。我这里指的程序不是指app,而是指运行在系统层面的程序。安卓系统的本质还是一个Linux系统。所以安卓系统层面诸如驱动程序的开发,和其他嵌入式Linux设备是一样的。其他如图像等多媒体效果的调整,这些操作也都是要在Linux系统层面进行编程才能完成的。

Linux系统的用处还有很多,学习Linux开发是很有用的。欢迎大家关注太科罗技头条号,并在下方留言一起参与讨论。

先问题:不是

我自己服务器选择的是Linux系统,带的团队也让他们清一色Linux,公司服务器我也是选择这个系统,说一下为什么有的时候要选择Linux系统,或应该学习linux系统。

是不是Linux下开发更高效?-编程之家

对系统的熟悉会决定开发效率

首先下题主的问题,选择Linux与否,其实与开发效率关系并不是太大,有的时候,换系统带不来更高效的开发效率,反而增加了不少学习成本,使用自己熟悉的会比较好一些,反而开发效率更高。

虽然Linux下有vim这类大神级别的编辑器,但win也弱,07年那阵子,一直就在win上开发的,一样不慢,我认识的很多人,有不少在win下开发的,需要Linux环境,装个虚拟机解决,所以,其实与开发速度没什么太大关系。

是不是Linux下开发更高效?-编程之家

服务器系统需求

开发项目,要上线,你迟早要部署的,就是部署到服务器环境,这就导致你不得不学一些Linux相关的操作或知识。

大部分情况下,服务器都会选择Linux系统的,win占很数。

虽然开发环境和生产环境(服务器系统)有时候不一样,并不会对你的项目有太大的影响,比如我第一家公司一直在win下开发java,公司里所有人都用的win系统。但最好的情况,是你的开发环境与服务器环境要保持的高度的一致性,包括版本和补丁。

因为,一个小的改变会引起很多操作上的不同。

比如去年在Ubuntu下做了个java有关socket的项目,但服务器用的是CentOS,部署时那个费劲,Ubuntu不用关心的东西在CentOS下是另一个样,整整费了我一天时间才弄好。

是不是Linux下开发更高效?-编程之家

开发语言不允许

是的,与开发语言有关的,大部分语言是跨平台的,但有少量语言比较奇葩,比如我上家公司用的语言,ruby同学。

你可以在Linux下用,也可以在mac下用,都可以获得非常好的体验,但是,如果你在win下用,嘿嘿,你可能会很耗心力。

一般过来人会这么劝你,如果你不想给自己找太多麻烦,不要在win下做ruby的开发。

因为你会遇到各种各样的奇葩问题,而且有很多时候没有解决方案。但在Linux下,前辈们都趟过水了,你可以在网上很容易找到相应的解决方法,以帮助你度过难关。

是不是Linux下开发更高效?-编程之家

Linux系统优势

很多人接触了linux环境做开发,比较多的感受是:配置环境容易,自由度好一些,安装软件也方便,比如你在centos下可以用yum install 或在ubuntu下用apt-get install就可以直接安装。

比如要安个版本控制器,你可以直接apt-get install git,就安上了,不需要你去网站搜下载安装包,再安装。

是不是Linux下开发更高效?-编程之家

不管如何,还是建议学学Linux,相关的部署方法和操作方法,毕竟你迟早需要自己部署应用环境的,迟早学也会给自己加分不少。

有什么问题可以留言或评论!

以上,希望能帮到你,祝好!

嵌入式为例,许多程序必须要在Linux下运行;在服务器上面,许多服务Linux都已自带,只需配置下就可以了,但是许多常规软件,win平台的公司更专业。

我上一个公司的项目都是跑在linux服务器上,开发也是基于linux,语言后端是c++/Java/python,前端是php。从开发角度上,我认为的高效主要是Linux系统的生态很好,比如他的linux命令,移动文件,打包目录,ftp上传下载文件,tcpdump抓包分析等等很多都比windows有优势,很多功能后端只需要操作几个简单的linux命令就可以实现在window上面比较麻烦的功能,而且linux很多版本比如小红帽都自带web服务器,ftp服务器,开发ide等等。

而且linux上本身的架构也比windows更安全,window服务器不知道是我们不会用还是怎么回事,动不动就被攻击,linux服务器写几条防火墙规则,加载到系统启动项里面就可万事大吉。