为什么开发者都应该使用linux,而放弃windows.
对,这篇文章充满歧视,你可以不看。
作为一个使用超过十年以上linux操作系统的用户,我还是有权利说这话的。
在很早以前“王垠”的那篇文章,《完全用GNU工作》相信大家还有印象,我也是受其影响。当然我当时的体会没有那么深,只是觉得该向牛人们学习。一开始不一定先弄懂全部,试着深入进去,然后再回头体会,就逐渐理解了。
所以,我一开始使用ubuntu这个操作系统,反正跟windows用起来差不多,也学起来快,后面我在带新人的时候,也是让他们先玩ubuntu,但是这玩意真的不好用,主要是面向小白友好,面向开发不好,很多库要么没有要么都太老了,而且对linux的启动还有环境改动都很大,但是上来玩arch可能让一些人就放弃了,更别提gentoo了。(有人说装ubuntu开发版会好很多,都是滚动更新的。)
为什么要在linux下开发呢?
最简单的回答就是:效率。
linux能给我极致的效率,和解决问题的最快路径,而这些windows目前没有太好的方式,别跟我说在windows下弄个类linux的环境或者虚拟机。
因为linux下,使用命令行,利用管道,各种命令组合你可以随时定位问题。
cat, less, tail, head, hexdump, trace, mtr, awk, grep, sed, sort, uniq, wl, grep, find, xargs 等等,这些命令的任意组合都能比你在windows快的多,想查找什么啊,批量改名啊,替换,反向查找,统计,排序,过滤,去重等等,很快就能找到解决方案,而且不用装第三方工具,而windows下找不到这样的工具,即使有也要借助第三方工具。linux是真正面向开发者的平台(折腾)。
有人说对操作系统的歧视就如同宗教歧视一样,是的,没错。但仅限于开发环境。windows不适合开发者,动不动崩了,动不动软件坏了,又要重装系统,虽然这篇文章在windows下写完,玩游戏我还是用windows的。
聊聊开发工具,这年头学习高级语言不用 IntelliJ或者visual studio这些神器都不好意思出来说话了, IntelliJ绝对是开发界的神器,对语义的分析非常强大,尤其是官方做的工具,收费也是对得起价格的。
而除此之外免费的工具,emacs/vim也是开发界的神器,但是对于高级语言,这两类工具的语义分析能力其插件跟IntelliJ还是有差距的,除非你能自己写出非常牛X的语义分析工具,我对emacs算是比较重度使用,但也会用VSCode或者IntelliJ,一些新的项目,或者只是文件查看等等。
最后再聊聊在macOS,虽然我已经离开macOS很久了,但是也算用过三四年的macOS吧,还是那句话,如果你不是搞开发,macOS可以。
虽然mac有类似的unix到linux的命令对应工具,但是并不是所有命令都有,毕竟内核很多都不一样,这个不一样会使你用惯了unix的一些命令,一着急去到centos上操作数据的时候就傻眼了,还要再man一遍遍查。。。
谈到折腾,linux太好玩了,光桌面系统就让你玩的飞起,编辑器不说了,vim和emacs的各种奇淫技巧,能把编辑器玩出花的只有emacs,在你手里她要么是女神,要么是丑八怪,看你能力。桌面以前用过KDE,GNOME,到后来的XFCE,目前准备试试I3,毕竟显示器也能允许了。还有就是折腾gentoo,gentoo适合压榨服务器的性能,但个人PC还是算了,gentoo太累了,编译GNOME要一晚上,除非你想一台电脑操作系统不折腾了,也不想尝鲜了,那就折腾一次gentoo用个一辈子都没问题。
说到系统装到优盘里(arch比较合适,当然ubuntu也没问题),拿个优盘随时可以接入别人的电脑工作,别跟我提windows to go,同事用过的人都说太麻烦了,光更新个驱动就半小时开机。
可以grub弄个windows pe帮别人装个系统还是能受到好评的,要不别人总误解你是干程序的,咋连个电脑系统也装不了捏,电脑坏了能不能帮着修修?然后你默默的拿出优盘,好,给你装。
好了,这篇纯属装逼的文章希望你在装逼的道路上一路走好。
----------
即兴而写的一片软文,大伙看看乐乐就行。爱用啥用啥,哈哈哈哈
----------
多年后再回头看自己写的这篇文章,我对自己的偏见产生了偏见,我经常三个操作系统切换,鼓吹啥啥好和牛X其实就是灌输一种意识形态,解决问题就好。
不要让偏见成为你路上的绊脚石!