做开发,到底是选择Linux系统还是Windows呢?


做开发要分情况 。题主没有说要做什么样的开发 。

做开发,到底是选择Linux系统还是Windows呢?

文章插图
做开发,到底是选择Linux系统还是Windows呢?

文章插图
做开发,到底是选择Linux系统还是Windows呢?

文章插图
哪种Linux更好 。要看具体用途 。最流行的是CentOS和Ubuntu两大Linux系统 。根据不同需求来选择 。必要时相互转换也是可行的 。
其他观点:
我们知道 。现在熟为人知的操作系统主要有:Windows、Linux、UNIX、macOS 。因为Windows的可视化视窗操作体验让它在国内最为流行 。无论是普通家用还是企业办公99%都是用Windows系统 。
但要知道 。像IT行业用Linux系统的居多 。有不少开发者就存在这样的疑问:开发者到底是选择Linux系统还是Windows系统呢?
做开发,到底是选择Linux系统还是Windows呢?

文章插图
线上服务器操作系统强烈建议选择Linux类系统
在这些系统中 。Windows和macOS主要是用来家用及日常办公的 。而Linux和UNIX就是偏于专业化的生产环境了 。
虽然Windows家族也有Windows Server服务器操作系统 。但是在IT圈内而个共识就是Windows的稳定性及安全性不如Linux(虽然Windows系统也是很好的系统) 。所以对于线上服务器操作系统的选择强烈推荐选择Linux类系统 。这也是大势所趋!
为什么说Windows Server在安全性及稳定性上不如Linux类系统呢?主要原因有以下几方面:
1、Windows Server桌面式操作相比Linux更耗资源
Linux虽然也有桌面版 。但线上生产环境99%情况下不会安装桌面环境;而Windows Server桌面化操作会占据较多系统资源 。对服务器硬件要求高 。
2、Windows Server在权限控制上不如Linux
如果你身边有一些.NET开发者 。你会发现当他们遇到权限问题时就会简单粗暴的给文件夹设置everyone可读可写可执行权限 。另外Windows很多系统文件的权限设置也不合理 。不如Linux权限严格 。
3、Windows Server在安装某些补丁或功能时要求强制重启
举个例子吧 。Windows在安装某些系统补丁或者像IIS安装SSL证书时会要求强制重启服务器 。这对于线上服务器而言就是致命性操作!Linux则不会出现这种情况 。
线下开发环境建议采用Windows宿主机+虚拟机方式开发
对于开发人员的开发环境 。并不建议直接使用Linux操作系统 。因为在开发时会涉及到很多对接工作 。如:
要用聊天工具沟通需求;
查看各种类型的开发文档等 。
Linux系统并不适合家用办公使用 。有它的局限性 。所以为了高效开发建议开发人员在Windows宿主机上安装虚拟机 。将Windows上的目录挂载到Linux虚拟主机里 。在Windows上开发及访问 。在Linux下运行代码 。
Linux发行版本的选择
无论是线上生产服务器还是线下虚拟主机安装的Linux系统 。建议选择主流的Linux发行版本 。
现在Linux发行版本太多了 。最常用的有:RHEL、CentOS、Ubuntu、Debian等 。考虑到普及度 。建议采用CentOS 。

其他观点:
确实 。题目范围还是太粗糙了 。猜测题主是计算机专业的学生 。还没毕业 。
其实除了Windows和Linux系统 。还有苹果的MacOS也不可忽视 。
这三个平台:
Windows
对办公软件和游戏软件支持最好 。同时题主也很熟悉 。
用来办公、完成课程中的语言学习(如C,Python)、进行单片机开发、Android开发、Matlab开发等都不错 。硬件工程师用来做PCB设计也很合适 。
Linux
对开源相关开发支持最好 。对非微软体系的后端开发支持最好 。对EDA软件支持很好 。硬件支持的范围最大 。游戏和办公软件很差 。
如果题主想做Web/App后端开发 。想做点芯片设计(从芯片架构到后端布局布线) 。想做点复杂算法研究(考虑代码向超算中心移植的方便性) 。Linux更合适 。
至于发行版 。可以考虑Ubuntu Linux和国产的深度系统 。安装和桌面都算比较容易入门的 。
MacOS
苹果的macOS系统介于Windows/Linux两者之间:办公和游戏软件支持中等 。对开源相关开发支持中等 。
如果题主想做移动App开发 。macOS是不二选择 。iOS的Xcode 。Android的Android Studio 。第三方工具链如微信小程序、Cocos2D, Unity3D等等 。都能很好的支持macOS系统 。用来做Web前端开发也不错 。

推荐阅读