design8 发表于 2023-10-3 18:42:45

为什么那么多程序员推荐 Linux,是不是在 Linux 下开发效率高?

为什么那么多程序员推荐 Linux,是不是在 Linux 下开发效率高?

bggxl 发表于 2023-10-3 18:43:20

对于计算机专业的学生,我推荐尽量用Linux 。因为Linux 开源,耐折腾……以及不好用。
Linux有无数的优点,但好用不是其中之一。
为什么要推荐不好用的?因为不好用了,你才能想办法解决这些问题,解决了,顺便也学到了很多知识。
举个例子,固态硬盘。在Win7之后系统,你装上就能用,系统会自动优化;在很多Linux版本中,系统不会自动优化,但都有优化功能,所以需要你自己修改fstab文件或者写个cron,或者其他什么方法。这个过程中,就使你能够了解到更多的知识。
所以我推荐计算机专业的学生尽量使用Linux。但等你不是学生了,当然是习惯哪个用哪个吧。要说效率,用IDE ,尤其是JAVA、Python之类的,都差不多,反正多数这类IDE都有不同系统版本的。用文本编辑器的,那些说vim或者emacs多么高效的,请注意,vscode之类的编辑器也不逊色。当然vim或者vscode也有不同系统版本。至于安装开发环境,apt或者yum确实比win下面快得多,但这个时间所占比例很低,加分不高。
至于对硬件的支持,win对Linux,可以说是完胜。硬件厂商至少都会有win的驱动,但不一定会有Linux的驱动。
如果看看附加软件,office、QQ、微信就基本只能在win上面用了——别提wine,那也只是能用,达不到好用,至少达不到win那么好用。
Linux安装软件稍微方便一点,bash和一些小工具也确实更强,IDE之类的工具反正都有相应的版本,基本算持平,总体来说,Linux略占上风。
但考虑到office等软件生态和硬件驱动支持,win则是大幅度领先。
单就开发来说,Linux很好;综合来说,win更好。
所以,服务器上推荐Linux,开发的话看你的习惯,如果不仅仅做开发,win要好得多
<hr/>我现在就是在Kubuntu下工作的。之前一直在win下面,想尝尝鲜,所以换掉了笔记本的硬盘,安装了Linux 。
说说感受。
文件同步问题。我一直用网盘备份重要文件。win下面用的是坚果云 ,万幸的是,坚果云有Linux版,但其他云盘就不一定了,比如onedrive。但Linux版不如win版好用。
写文档。LibreOffice已经被我删掉了,换成了wps,能用,但不好用,毕竟wps号称但实际上不能完全兼容MSOffice。
安装软件。各有千秋吧,apt和yum都很好用,但仅限于仓库中有的软件,有些就一言难尽了。比如思科的packettracker模拟器,在win只需要下载、安装,就能用了。Linux中需要安装几个特定版本的依赖,注意,是特定版本,新版本都不行。有类似问题的软件还有不少。
至于开发,如果写前端,反正开发工具都一样,没多少区别;其他开发,如果是Java、Python之类的,反正IDE也都一样,区别不明显;如果是C/C++,说真的,Linux下面能和VS相比的……好像还没有。其他和平台相关的就不说了,这个是没办法的。
至于硬件兼容性,Linux在PC上的表现还不如WPS和OFFICE的对比,驱动支持实在是……一言难尽啊。我的TP的指纹识别还是没有win10中好用,无线网卡也是最近才能用。
如果是服务器方面,Linux 则可以甩win几条街。不说别的,光是Docker就是一大优势(别说win上也有docker,那是依赖虚拟机,而且好像只能跑Linux应用)。
所以,个人认为,如果没有平台相关等特殊需要,Linux最好在服务器上发光发热,win用来平时办公,包括开发。
当然,想学习计算机知识,Linux更好。

ysz 发表于 2023-10-3 18:43:39

“会使用Linux服务器,以Linux作为目标平台开发”和“使用Linux桌面作为工作环境”是两个概念。前者对于大部分开发者来说是必须练好的基本功,而后者对于除了特定几个方向的其他开发者来说,通常反而会降低工作效率。
比如你如果开发基于ROS的无人机,那你确实需要Ubuntu桌面,而且还得是真机,虚拟机和Mac都不行。但如果你开发UE4,那你用Ubuntu就基本上是纯装13

xiaoshu06 发表于 2023-10-3 18:44:38

是不是在linux下开发效率高?笼统地讲,不一定。具体到某些团队,尤其是后端团队,很可能是的。
就我们这个后端团队而言,则不是“推荐Linux”,而是强制使用Linux做日常开发。我自己面试的时候,对每个有可能被招进来的人选,都会事先告知:
我们开发统一用Linux,发行版不限,不管你会不会,都必须习惯。如果不认同这一点,我们不会招你进来。如果进来以后不能习惯或者不能流畅地用Linux完成工作,则会被辞退。这个规矩我们已经实行了很长时间,一直没有发现太大的问题。
为什么要这样做呢?说起来原因很简单,就是因为懒。
首先我们是小团队,拢共不超过20人,没有太多的精力花在调配不同系统的开发环境上;开发的工作也往往不是单纯的开发,很多时候还要负责写启动脚本,部署应用到测试环境,诊断和解决各环境的问题。
比如,
“测试团队需要个 xxx, 我们在 xx 环境给他们部署一个 xx 吧。”“啊你没玩过?不要紧,看下他家官方文档就行了,注意下数据库该怎样balabala”“噢好。”
“咦,压力这么低的测试,怎么把 TIME_WAIT 搞得这么高,不知道是 Nginx 没配好还是你自己代码里 akka-http 用得有问题,我们来 debug 一下?”
“我们为了确认 xx 问题,需要统计下日志里满足 xx 条件的 xx 的数量,日志我已经打了,放在 xx 机器 xx 目录下,我要去处理 xxx, 你来帮我一下好不好?”
这些日常工作,还是需要一点 Linux 基础知识基本技能的。
而最近两年来面试的开发,5 年以内工作经验的,绝大多数,Linux 技能不是很烂,也不是非常烂,而是稀烂,基本无法在 Linux 下生存,更别谈开发工作了。
所以我们第一件事情就是强制他在 Linux 下工作,让他习惯。不想花费时间手把手地教他 Linux 服务器下怎么搞。这就是懒,图省事。
另外,常见的开发工作配置,我们在 Linux 下基本都有比较标准的工作流程和解决方案,但是 Windows 下我们没有。我们也不会有心思去帮他解决那些 Windows 下特有的奇形怪状的问题。这还是懒,图盛事。
那么,适应 Linux 下开发工作需要多长时间呢?在我们的工作流下,一个完全没有用过 Linux 的,还算合格的程序员,三四天应该就差不多了。
是不是所有人都要这样呢?总结我上面的中心思想,你会发现:只要你自己能搞得掂,你想怎么浪都行。比如最新加入的那位小伙伴,人家 Surface Pro 上 Windows + Linux 玩得溜溜的。我们根本不管他是 Windows 虚拟机里跑 Linux, 还是 Linux 虚拟机里跑 Windows, 又或者是 WSL. 反正溜溜的,我们完全没有必要吃饱了撑着管他,也没必要跟他争论哪个系统效率高。

defiler 发表于 2023-10-3 18:45:21

并不是所有人都推荐Linux,对于新手来说Linux的心智成本还是很大的,需要长时间的不断摸索。
在Linux下开发效率高不高要看每个人的熟练程度,如果说还在百度“如何退出Vim”这样的问题,那谈什么开发效率呢?开发效率必须要建立在对操作系统,开发工具和团队配合的基础上。
说一下我吧,我10年上大学,大一下学期就开始使用Linux了,一开始只是好奇,作为工作环境是从14年毕业以后开始(在学校主要因为要玩游戏 ,离不开Windows),16年买了一台xps15,刚收到货就安装了Linux,17年买了一台中配mbp,后来发现mbp又贵配置又不好~又换回了装有Linux的xps,现在公司的办公电脑和自己的电脑除了mbp全是Linux。
QQ和微信阻碍了广大开发人员对Linux的向往,而我就是那种基本上不在电脑上登录QQ和微信的人。
我使用Linux的主要原因并不是开发效率的问题,而是使用习惯。我不想看Windows桌面和窗口那么多图标,也不想用鼠标点击他们。
我更习惯于用命令行完成一项小事情;特别是代码方面的,能用终端完成的事情何必再打开个窗口呢?
回到正题。
开发效率高不高,非常重要的一个因素是编辑器;选择一个好的编辑器可以让你事半功倍。
另外一个很重要的,就是软件环境,我个人觉得linux的软件环境是最好安装的,比如jdk、python、golang、docker、node、docker等,基本上一个命令就能搞定。如果使用Windows安装这些,你还要去下载,然后配置环境变量,弄不好还给你补个钙( )。MacOS也挺好,如果不是纯粹的开发,最佳选择是MacOS,它拥有Linux的操作和Windows的体验,开发环境基本上homebrew就可以解决,倍爽,缺点是贵(当然,贵不是它的缺点,是我的缺点),配置还不咋地。
好了,附上几张我的桌面和编辑器吧。

http://pica.zhimg.com/v2-743fd8b76877cad0fbf821b99ad684c6_r.jpg?source=1940ef5c
我装的是Ubuntu 18.04,Gnome 3。

http://pic1.zhimg.com/v2-340e1e4d3532a416c381b8e5fc588e81_r.jpg?source=1940ef5c
这一张是用emacs,准确的说是spacemacs编写React项目。以前一直用vim,后来插件多了变得不是很流程(可能配置姿势不对)就换spacemacs。
就我而言,Linux的开发效率比Windows、MacOS是高很多的,你要问有多高?
我的回答是“大概有三四层楼那么高吧”。
……………………………………………………………………
想来想去,还是和个人使工作类型和使用习惯有关系。
让售前工程师用Linux不是一个好的主义,天天给客户写方案做骗骗他(PPT)的用Linux也不是很好。
还有,多看看周星驰的功夫
……………………………………………………………………
2022年5月19日,再补充一下,问题本身的立脚点。
大家都用Windows做开发,谁会给你推荐Windows呢?真正用Linux全职开发的人又有多少呢? 给你造成“那么多程序员推荐Linux”错觉的,是幸存者偏差。
至少在我的经历中,带过几个团队,有主导过全员使用Linux开发,实际上最后都换了MacOS。
前两年流行“十倍程序员”,可没听说过“十倍操作系统”的说法。
回应一下一些朋友对问题的理解,问题是“是不是在Linux下开发效率高”,不是“是不是和客户打交道效率高”和“是不是做PPT效率高”。
周星驰的功夫,主角能练成如来神掌,不是因为袁和平给他卖了那本假的秘籍

自由使者 发表于 2023-10-3 18:45:26

双系统日常使用linux,优点缺点都很多。
主要的优点在于开发相关的软件很顺畅,安装方便。最大的缺点在于时间的投入,如果只是用用IDE做个和windows上差不多的开发还好,深入配置和理解需要各种折腾。
几个开发上的优点:

[*]各种开发环境大多能使用包管理器,基本不用太考虑环境依赖一类的问题,主要的开发软件大多能使用简单的命令安装,且很少出错;
[*]对于服务端的开发,和服务端的环境可以保持一致,本地运行没问题到服务端运行出错的概率低;
[*]熟悉linux,便于在服务端的操作;
[*]开发相关的IDE和编辑器基本都能完美运行,而且配置容易,并非只能使用黑框框;
[*]linux的桌面环境以及软件大多提供了大量的配置选项,感觉不爽的地方大多可以调整。
如果只是想达到windows下的开发体验,排除qq一类的软件,linux用起来还是很舒服,而且时间投入并不高。至于linux和windows谁开发更好,这个就圣战了。个人感觉,只从开发的角度,两者差不远,由于linux可配置性更高才选择了linux。
页: [1]
查看完整版本: 为什么那么多程序员推荐 Linux,是不是在 Linux 下开发效率高?