这篇文章是在我的Linux Mint上使用Typora编写完成
做为一个程序员,我用的一直是MacOS,其实它挺好的,我对它没有任何意见 。
但在我的心里,总有一种欲望,就是想去使用一个自由的操作系统,我不希望自己被MacOS约束,虽然它非常优秀。
我也非常想知道,对于程序员来说,Linux是否足够使用?
选择哪个Linux发行版本
Linux发行版本众多,甚至可以说是不计其数。所以使用哪个Linux发行版本是首要决定的。
但是,我们要透过表象去分析更深层的本质,对于Linux选择来说,决定你需要哪个版本的关键两点在于:
- 第一,Linux发行的基础版本是什么。Debian系或RPM系或ARCH系?
- 第二,Linux桌面选择哪种,gnome,kde还是xfce或是Cinnamon
Linux发行版本虽然众多,但原始发行版本只有少数几个,比如RHEL,Debian以及Arch。其它的大多是基于这些原始发行版本重新构建的,比如著名的Ubuntu是基于Debian构建的。
最终,在几乎用虚拟机安装与体验了众多有名的发行版本后,我最终选择了Linux Mint。
考虑原因如下 :
- Linux Mint是基于Ubuntu,隶属于Debian系,因为我在服务器方面已经全部使用Debian而不是CentOS,所以桌面Linux自然也会选择Debian系
- Ubuntu非常流行并且它的生态非常好,但它的默认那个Gnome桌面我个人不是非常喜欢。而Linux MInt桌面是Cinnamon,非常简洁,又兼具Ubuntu的流行度带来的良好的各种支持。
因此,最终选择使用Linux Min,周末折腾与使用了两天,第一感觉还是挺好的。
我的linux mint
对于程序员来说,它足够使用吗?
其实要论系统对程序员的友好程度,我认为MacOS可能是最佳的,它是Unix系统与程序员天然就亲密,而且桌面生态友好,不存在Linux这种五花八门的不同的生态。
所以,如果程序员不是从事的诸如Windows特定系统的一些开发,选择MacOS应该是最好的,无论是从系统体验还是国内软件生态来说,几乎都不存在问题。比如QQ还是微信,都有非常好的MacOS下的软件。
但是Linux对程序员仍然具有一种无形的吸引力,我感觉这种吸引力的关键可能在于:
在一个自由的操作系统上,使用自由的软件来自由的从事开发工作
这就是什么会有FOSS,自由与开放软件的理念与众多的追求者存在的原因吧。
那问题是,Linux对于程序员来说,足够使用么?
其实,我认为这个问题更确切的表述应该是:Linux对于国内的程序员来说,是否足够使用?因为,在国外,使用Linux的程序员并不是少数,只是国内一些软件的生态发展比较缓慢。
可行性调研确认
我曾写了一篇文章:一个程序员的正版清单,这个清单是我在MacOS上的使用的所有软件服务清单 ,如果使用Linux Mint,这份清单的表现性如何呢?
这个周末,在折腾了之后,把Linux Mint安装到一个外置的移动硬盘后(主机是Mac Mini),对这份清单上所列的软件,参照在我的Linux Mint上安装或寻找替换软件,总体结果如下 :
软件本身有Linux发行版本并成功安装
- IntelliJ IDEA CE 后端开发IDE,有Linux版本,体验无问题
- VirtualBox 虚拟机软件,有原生Linux支持
- DBeaver 这个是基于Eclipse RCP技术开发的开源数据库软件,Eclipse本身就是支持Linux的,自然它也支持
- MongoDB Compass 这个是基于Electron跨平台技术开发的桌面App
- draw.io UML,流程图等绘制工具。这也是基于Electron跨平台技术开发的,它也有在线网页版
- Visual Studio Code 好吧,还是基于Electron跨平台技术开发的,前端开发人员必备的IDE
- Android Studio 基于IntelliJ IDEA CE开发的,自然支持
- Typora Markdowm编写软件,我这篇文章就是使用它在Linux Mint上开发的
- Mitproxy 抓包工具,支持
- Postman 有Linux发行版本
- Jmeter 性能测试工具,这是基于Java的,当然支持Linux
- Sonar 这是个Java服务
- Docker 没什么好说的,Linux才是它老家
- Sublime Text 原生支持,非常好的一个文本工具
- WPS 国产良心,支持Linux,体验与UI几乎与MacOS下基本一致。
- tinypng 这是个网页服务,有浏览器就能用
- 下载工具 我在Mac上用的就是Motrix,这个工具其实也是基于Electron开发的跨平台软件。所以在Linux上使用它也足够了
- 云同步盘 国内的坚果云,国外的OneDriver,这两个都是可以在国内使用的。并且都有免费的额度。
- 截图工具 Flameshot这个工具足够好用
- 远程会议 腾讯会议已经支持了Debian,如果使用它问题不大。
没有Linux发行版本的
- Sourcetree git ui客户端,没有Linux发行版本,但支持Linux发行版本的则非常多,问题不大。比如SmartGit,我现在主要是使用命令行来操作git,不太需要ui工具。
- Xcode 这个不用想了,除了MacOS,绝无第二家
- Proxyman 这是抓包工具是MacOS专有,在linux上可以考虑使用Mitproxy
- Microsoft Remote Desktop 似乎没有Linux版本,但可有替代软件。
- gitmind 我在使用的思维导图,没有linux版本,可以使用网页在线版本
国内的主要阻碍
其实看了上面大家会发现,基本国外的针对程序员的工具,都有完整的Linux支持。
那到底国内程序员有什么不一样?难道我们用的不是这些技术,这些工具?
当然不是。
不一样的不在编程的工具上,在编程之外的。
而最主要的一个阻碍可能在于微信,腾讯的微信没有原生的Linux客户端,而QQ有一个非常简陋,应该很久没有更新过的版本了。
不过好在,国内还是有先行者,做了非常不错的工具,值得我们真心为他们赞赏,包括但不限于:
deepin移植了大量国内软件
deepin,也就是前雨林木风团队,在转向Linux,发行了基于Debian的Linux操作系统之后,为了推广它们的系统,基于Wine移植了大量的国内软件。
由于Linux Mint也是Debian系,所以也沾了它们的光。
感谢他们的工作,现在我在Linux Mint上,使用微信聊天是可以做到的了。
搜狗Linux输入法
感谢搜狗,出了一个Linux版的中文输入法,还同时支持拼音和五笔
WPS Linux版本
难以置信的工作,WPS提供了一个Linux版本,而且与我在MacOS上的体验几乎完全一致。
坚果云
由于几乎是全家桶,我在MacOS上使用的是icloud同步数据,在Linux上,感谢坚果云,它们有一个Linux客户端,而且还提供了一个免费额度的同步服务。
从尝试开始吧
在几乎使用了这些软件的Linux版本之后,除了没有办法做iOS方面的开发又外,Linux Mint对我来说完全是足够使用的。
如果国内生态能再进一步,比如腾讯的一些国民级的软件,能支持Linux,那我相信对于国内程序员来说,切换到Linux是完全具备可行性的。
如果你是MacOS的使用者,似乎Linux对你来说并无太多必要,但我建议你可以体验一下。
而如果你是Windows使用者,又不从事特定系统相关的开发,那使用Linux是个具有相当可行性的选择。
我建议你可以尝试一下,也许是个不错的体验呢。
如果你是Mac,想体验Linux,除了虚拟机以外,像我这样,把它安装在移动硬盘上,是个更好的方案。
去尝试下吧,也许你会发现你会非常喜欢它呢~