发布于 2026-01-05 16 阅读
0

Linux 是否足以满足日常编程需求?DEV 全球项目展示挑战赛(由 Mux 赞助):快来展示你的项目吧!

Linux 是否足以满足日常编程需求?

由 Mux 主办的 DEV 全球展示挑战赛:展示你的项目!

免责声明:本文仅分享我使用固态硬盘在主流操作系统(Windows 10、macOS High/Sierra、Ubuntu/Manjaro)上的使用体验。固态硬盘对速度的影响非常显著,因此您的体验可能有所不同。

大家好。首先,这篇文章并不是要讨论哪个操作系统最适合日常编程,这可能取决于你使用的技术栈、其他程序,尤其是你个人的情况,所以我将尝试描述我在日常工作流程中遇到的所有好坏情况。

但在此之前,我应该先介绍一下我的编程技术栈,以免你之后感到困惑。我主要使用:

  1. PHP框架和CMS
  2. 用于前端的 Node.js 框架
  3. 用于移动开发的 React Native/Ionic
  4. Photoshop(配合 CssHat)用于 HTML 集成,移动应用横幅广告。
  5. 由于我目前的工作需要使用微软办公软件。[1]

Ubuntu(Unity/Gnome):

2015年底,在Windows 7系统运行良好,并且偶尔在虚拟机中使用Ubuntu之后,我决定尝试一下Ubuntu,并将其作为日常使用系统,于是安装了15.10版本。那时我主要使用PHP、Java和C#进行编程(因为我学习的是软件工程),PHP和Apache在本地运行性能非常出色,Java也是如此。不过,由于其他替代方案(例如Darkable/GIMP、OpenOffice)的性能都达不到同样的水平,所以我使用Windows 7虚拟机来运行Visual Studio、Microsoft Office和Adobe Photoshop。我尝试过使用这些替代方案,但使用时间越长,就越会发现它们的缺点,例如易用性和向后兼容性。

我曾有两年时间在 Unity 和 Gnome 桌面环境之间切换(顺便说一句,我以前是 KDE 的头号黑粉),但随着时间的推移,即使换成了固态硬盘,也感觉有点慢(我一直用的是 16.04 LTS),老实说,我也不喜欢 Ubuntu 的 PPA,然后我发现了 Hackintosh 社区。

macOS (10.12/10.14)

经过一番折腾,我终于在一台配置接近2012年末款MacBook Pro的笔记本电脑(HP EliteBook 840 G1)上流畅运行了macOS Sierra。应用程序只需简单的拖放操作即可安装(Android Studio也一样)。它运行Android虚拟设备比在同一台笔记本电脑上运行Windows 7和Ubuntu还要流畅,这让我非常惊喜。内存管理、应用程序集成和整体稳定性都非常出色。那时我已经完成了学业,不再需要Java或.NET编程,而Adobe/Microsoft Office套件是它相对于Linux的优势所在,因此所有程序都能原生运行,无需任何虚拟机,而且还能使用我们熟悉的Unix命令行界面。

我对Mac或黑苹果系统的唯一不满之处就是系统更新/升级极其麻烦,每次都会导致系统崩溃。每次尝试更新,我都得备份整个可启动的系统镜像。因为内核扩展(Kext,也叫“驱动程序”)并非总是向下兼容的。

所以最终我还是决定回归Linux,但还没决定用哪个发行版。我想要一个稳定的发行版,这样我就完全不用担心“大更新”之类的东西了。与此同时,听说Windows 10这几年越来越好,所以我也打算再试一次。

两年后,我的黑苹果系统运行正常,没有任何问题,于是我备份了我的黑苹果系统,并安装了最新版本的 Windows 10。

Windows 10。

我用一句话总结我的体验:“不算好,也不算坏”。
再次强调,与 macOS 相比,这个系统在各方面都非常流畅,窗口分屏、切换虚拟桌面、在开始菜单中搜索程序和文件都没问题,但是!我已经开始怀念 Unix 命令行界面了。我知道有 cmder 和其他工具。整体性能还可以,但在编译 Node.js 应用时会有一些延迟。我的工作流程没有改变。我用 Laragon 和 PhpStorm 来处理所有 PHP 项目,说实话,体验非常完美。另一方面,即使我的电脑有 8GB 内存和固态硬盘,Android 模拟器的表现也很糟糕,macOS 的表现要好得多。

与此同时,我在虚拟机中试用了一些 Linux 发行版,最终选择了 Manjaro,KDE 版本。

曼加罗:

“你说你讨厌KDE,对吧?”嗯,没错,但我讨厌它是有原因的。首先,我不想重温使用Ubuntu时Gnome的糟糕体验;其次,我不喜欢它的界面,因为它和Windows(尤其是Windows 10)的界面太相似了。后来我发现Windows的自定义程度非常高,我再总结一句:“一切皆可控件”。所以,在界面方面,我打造了一个简单舒适的系统

就程序和工作流程而言,我仍然使用 PhpStorm 来管理我的 PHP 和 Node.js 项目。npm 和 yarn 已全局安装,令人惊讶的是,npm 在 Windows 和 Mac 上的运行速度非常快;Git 也已安装。不过,对于我的 PHP 项目,我已使用 Docker Compose 将它们全部迁移到 Docker 容器中。大多数项目基于 Laravel、Prestashop、WordPress 和一些旧的原生 PHP 应用。我成功地从头开始将其中一些项目容器化,另一些则使用了 Laradock。

Java/.Net:已死。

在移动开发方面,Ionic 和 React Native 的首次配置遇到了一些困难,但很快就解决了。Android Studio 本身没问题,只是模拟器“再次”不如 macOS 好用,但比 Windows 好一些。我还发现了一个很有用的软件包,它可以将我连接的安卓设备投射到我的屏幕上,虽然显示为虚拟设备,但实际上是一个物理设备,这个软件包叫做scrcpy ,来自 Genymotion 团队!

最后,以上就是我选择 Manjaro 的部分原因:

  1. 没有重大更新。
  2. 滚动发行版。
  3. 快速发布安全补丁。
  4. 伟大的 Arch 用户仓库 (AUR)
  5. 支持 Snap 和 Flatpak(但为什么?)
  6. 非常稳定。

但Linux系统仍然存在一些缺点:

  1. 仍然需要 Photoshop 和 Lightroom。
  2. 工作需要使用微软Office(因为我们有微软365,所以可以使用网页版,但对于高强度使用,我仍然很怀念Excel)。

结论:

最后,我个人还是会坚持使用 Linux,主要有两个原因:一是 Linux 原生支持 Docker(未来的项目可以用 Docker 部署),二是 Linux 环境与生产服务器非常相似(命令行、SSH 和软件包配置)。
我知道很多人会不同意我文章中的很多观点,但这没关系!毕竟,最终我们选择的是能够最大限度提高生产力的工具。

感谢各位阅读Dev.to平台上最无聊的帖子!也欢迎大家分享你们的想法和经验。再次感谢![1]

[1]:编辑。添加了已用堆栈和结论。

文章来源:https://dev.to/moghwan/is-linux-good-enough-for-everyday-programming-3kol