{eval=Array;=+count(Array);}

问答专栏Q & A COLUMN

程序员为什么要用Linux环境编程,用Windows不可以吗?

qingshanli1988qingshanli1988 回答0 收藏1
收藏问题

10条回答

lyning

lyning

回答于2022-06-28 09:55

你好,我是只说代码的大饼,很高兴回答你的问题。

首先,说下这几年自己使用过的开发工具,

1.VS2010 到现在的VS2019.。

2.IntelliJ IDEA。

3.Android Studio。

4.VSCode。

5.微信开发者工具。

6.HBuilder。

以上这些工具都是在Win10下使用的,感觉也没什么问题,编译好的项目也没发现过因为是win下编译的而出现问题。


其次,在上家公司有使用虚拟机里写代码的,那是因为使用了商用控件,所以才去虚拟机里装的开发环境,而且虚拟机里安装的操作系统还是Windows,也没安装Linux的。


最后,最近几年流行docker部署应用,一次打包,多处运行。不管是Linux还是win10现在都可以使用docker打包应用程序。


总结:

身边还真的没有使用Linux下编程的,但有在虚拟机里写代码的。

还有就是现在都流行程序在docker里跑,把程序打包成镜像就能在不同系统环境下跑 了,关系型数据库可能还是不太适合在docker里跑,一般可能还是在linux操作系统下 直接运行,所以并没有像你说的程序员都在Linux下编程的问题,反而使用Windows或 者mac开发的程序员更多,大厂有可能是在Linux下开发 。


回答完毕,谢谢,我是只说代码的大饼。

评论0 赞同0
  •  加载中...
王晗

王晗

回答于2022-06-28 09:55

这个问题其实是伪命题,因为虽然网络上使用linux的用户发出的声音更大,但是毫无疑问,还是使用windows的程序员更多。只不过使用windows的程序员一般都没什么必要讨论windows的使用方法,毕竟大家都会。


而使用linux的程序员光是linux的桌面配置就可以多带带拿出来讨论很久,更别提各种linux版本直接的比较等等。


当然有一说一,linux的优势就在于包管理器可以很方便的安装编程所需的各种sdk,而且会自动配置环境变量。通过用户目录下的一些配置文件可以比较方便的迁移开发环境,这一点确实是windows做不到的。


但是其实吧,这个问题也不是那么重要。因为一般情况下程序员的开发环境变动的并不是很大。你搭建好一个java8的开发环境,可能好几年都不用换了。


就我个人而言,linux下的docker等工具,才是更吸引我的地方。这也是linux上独有而windows上没有的功能。也是我使用windows编程的一个痛点。好在现在vmware等虚拟化软件也支持hyperv了,大家可以在使用vmware的时候同时使用windows版的docker,也是算是一个小小的补偿吧。

评论0 赞同0
  •  加载中...
wupengyu

wupengyu

回答于2022-06-28 09:55

Linux和Windows实际上不是环境而是操作系统,除了这两个以外,还有苹果电脑支持的macOS,当然这只是指电脑的操作系统,毕竟目前程序员主要还是使用电脑来编程的,虽然iPad作为编程工具现在也是可行的。实际上,现在很多程序员会喜欢用macOS来,不过喜欢使用哪个操作系统来用作编程用电脑的操作系统还是主要取决于几个方面。

IDE的支持

IDE实际上才是开发环境,Windows作为主流的操作系统IDE支持肯定是最全的,除了iOS App开发环境XCode不支持外,其他编程语言基本都能支持,而且因为比较大的用户量,所以面对Windows操作系统开发的IDE还是比较完善的,而且基本都有不错的用户界面。

对于Linux来说,因为原本就是一个来自开源社区的操作系统,所以本身就自带了很多开发工具。但是因为Linux的用户界面没有Windows那么成熟,所以有些IDE界面上来说并不是那么好,不过功能来说还是差不多的,而且来自开源社区的开发力量可以让Linux很多技术支持比较前沿,IDE也同样道理。不过没有大厂的背景,所以对于Windows应用或者Mac/iOS App的开发支持会相对弱一点。

顺便也说一下macOS,现在因为iPhone的崛起,所以苹果电脑作为开发用电脑开始逐步普遍起来了,所以基本上主流开发语言都能在macOS上找到相应的IDE,到时对于Windows软件的开发可能支持就没有Windows好了,比如.Net Framework等等。

IDE支持来说三个操作系统都不错,不过也有各自的短板,基本算是打平吧。

与发布环境的一致性

程序员开发完成后需要测试,如果测试环境和实际发布环境差距比较大的话,那么测试就没有意义了,所以开发所处于的操作系统和上线后使用的操作系统一致性就比较重要了。

Windows来说,如果开发的是Windows软件的话,无容置疑是最一致的操作系统,不过目前更多的应用是在移动端或者服务器端,也就是说Windows作为模拟环境并不是那么的一致。而且,作为服务器来说,Windows还是和Linux有一定差距。

Linux这点上就比较有优势了,基本不同Linux版本占据了80%以上的服务器市场,所以使用Linux来开发服务器端的应用大概率来说是和发布环境是类似的。但是,对于App或者软件前端的开发,Linux的支持就比较差一点了,毕竟Windows和macOS有更大的普通用户基础,这样开发的应用主要还是在这两个平台上的。Android是一个Linux内核的系统,但是Android的应用是在Java虚拟机上运行的,所以三个操作系统的支持都差不多。

macOS因为是基于Unix开发的系统,所以底层是Linux很接近,不过还是没有直接在Linux上开发那么直接方便,不过优势可以对于macOS/iOS下的App开发提供比较好的模拟发布环境。

与发布环境的一致性来说,服务器端开发Linux是有绝对优势的,其他就不同平台有不同平台的优势,所以Linux在这点上略胜一筹。

其他软件支持

编程不单单只有开发环境支持,还需要其他软件的支持,对于这点来说Windows作为占有率最高的操作系统,软件支持还是非常好的,基本上能找到任何想要的软件,尤其是想Adobe全家桶之类的软件。

Linux在软件支持上就优劣参半了,毕竟源自开源社区,所以基础开放方面需要的软件还是能找得到的,不过其他软件就比较难找到了,例如聊天软件、协同软件等

macOS因为最近一段时间的崛起,很多软件都能有mac版,不过Mac版软件的使用成本比较高,比较难找到破解版软件,绝大开发相关的正版软件收费都不便宜的。

对于其他软件支持来说,Linux支持相对比较弱一点,Windows和macOS应该不相伯仲。

硬件支持

硬件支持主要是指电脑和其他设备。Windows这点上因为已经有那么长的发展历史了,基本电脑都能支持Windows,就是是苹果也能安装Windows,那么这样购买开发用电脑的时候就比较灵活,而且能更好的控制成本。对于其他设备的支持,Windows的驱动支持还是不错的,不过要更深一层的控制其他设备可能就比较困难了。

Linux在发展初期就是以替换Windows为目标的,所以基本Windows的能用的电脑,Linux都能用,不过对于一些开发相关的设备驱动比较难找,不过开发者功力够的话,Linux内核开源的特性可以让开发者更容易开发底层驱动。

macOS电脑要求就比较高了,虽然现在有很多黑苹果电脑出现,不过毕竟还是在Apple电脑上比较稳定,所以成本就相对高了。对于其他设备的支持,Apple电脑支持也不是那么好。

所以硬件支持来说,对于一般开发者Windows和Linux成本比较可控,macOS成本比较高,不过支持程度上差不多。对于高手来说Linux就更灵活了,毕竟Windows和macOS都不是开源系统。

总结

实际通过几个方面的比较,整体来说对于高手来说Linux的确会有非常大的灵活性,但是普遍的开发者来说,三个操作系统差别不大,只能说萝卜青菜各有所好了。

而且因为Linux一般不是开箱即可用,所以选择使用Linux作为日常工作开发操作系统还是比较少的。

对编程、产品感兴趣,可以关注我一起讨论

评论0 赞同0
  •  加载中...
tyheist

tyheist

回答于2022-06-28 09:55

这是由目标程序环境和人员使用习惯决定的。

很多后台程序或者说服务端开发喜欢在linux环境开发,开发环境和目标发布环境一致,减少中间环节,而且是开源,免费,运行流畅,专注,使用习惯了。

但同样,也有更多的人喜欢在windows环境下开发,除了gui操作方便顺畅,各类软件多,游戏多,硬件驱动支持的好外,同样也是使用习惯了,很多人一开始就在用windows,习惯成自然,现在如go语言之类还可以跨平台编译,vs都内嵌了ssh工具,docker的必备,特别是我们常用的java大部分无需考虑平台特性的特点,实际上我周围开发的人还没有一个人在用非windows,少量有人用mac是为了苹果端的开发。

现阶段环境下,用哪种开发环境已经不是屏障了,主要就是使用习惯决定的。

评论0 赞同0
  •  加载中...
iamyoung001

iamyoung001

回答于2022-06-28 09:55

程序员表示无所谓,钱开够,喊甲方爸爸都行

评论0 赞同0
  •  加载中...
lansheng228

lansheng228

回答于2022-06-28 09:55

Dos,Windows,Linux,Unix,Redhat这些都是管理计算机系统资源的底层操作系统,是各种应用软件赖以运行的底层支撑,不是编程语言软件。

分别为上述这些操作系统编写上层应用软件的程序员都大有人在。他们不存在谁优谁劣的问题。

至于各种编程语言,如汇编语言、各类C、Basic、Java、Foxpro等,他们都有自己的开发、调试、编译平台,这些平台都是应用层工具软件,虽然各有功能优劣利弊,但也都能在上述各种操作系统上运行自如。

评论0 赞同0
  •  加载中...
bigdevil_s

bigdevil_s

回答于2022-06-28 09:55

看所开发软件的运行环境。曾经在widows上开发了做开发了一个功能,测试没啥问题,上传到linux服务器上却一直报错,找了好久发现路径名没有区分大小写。

评论0 赞同0
  •  加载中...
Chao

Chao

回答于2022-06-28 09:55

都没什么不行的。就是如果生产环境是Linux的用Linux或者macOS方便些而已,毕竟terminal一样。事实上大多数软件都属于这类。也有例外,比如你要是开发微软那一套你就应该用windows,你要是开发苹果的app就应该用Mac。就这么简单。

评论0 赞同0
  •  加载中...
smartlion

smartlion

回答于2022-06-28 09:55

这个看运营环境和开发项目,没有定论。

你开发asp或者.net非得用linux那就不靠谱吧。

评论0 赞同0
  •  加载中...
zoomdong

zoomdong

回答于2022-06-28 09:55

这个要看实际的需求了。1.如果你的程序只是Windows平台运行,自然不用关心Linux 2.如果你的程序考虑跨平台,也可以在Windows上编写,然后在Linux编译就可以了。3.如果你只做Linux后台服务,根本不在我windows运行,那你为什么不直接用Linux呢,Windows上没有调试运行环境,编写完成了,然后再拿到Linux重新调试,你不觉得多此一举吗?所以还是看实际需求,不能一概而论!

评论0 赞同0
  •  加载中...

最新活动

您已邀请0人回答 查看邀请

我的邀请列表

  • 擅长该话题
  • 回答过该话题
  • 我关注的人
向帮助了您的网友说句感谢的话吧!
付费偷看金额在0.1-10元之间
<