• 程序员该选择Macbook Pro吗?


    看了好多对比win和mac的回答,但没有针对程序猿的日常使用分析……

    所以斗胆问一下用mac码代码的猿们:

    mac系统真的对代码工作者友好么?

    大家适应mac系统用了多久?

    256G真的够用吗?(预算不够的灵魂拷问)

    有winscp那种可视化连接服务器的app么?

    ▎开发工作流

    一般来说,在拿到新电脑进行开发时,基本上会有「环境搭建 → 开发工具安装 → 编码 → 打包」这几个阶段。

    目前个人主要进行 Java 后端开发,偶有深度学习方面工作的需求,在上述几个阶段,Windows 下的开发体验已经非常舒服了。

    1. 环境搭建

    以 Java 为例,搭建 Java 开发环境需要 Java JDK, Maven, Git, MySQL。这些开发套件对不同系统的支持都很成熟了,基本都是下载、安装和配置三部曲:在官网下载对应的安装包,双击后根据提示完成安装和后续配置。

    Java SDK

    当然,macOS 下可以通过「包管理工具」使用指令进行安装。相应地,Windows 下也有包管理工具 Chocolatey,官方也出了 WinGet。

    2. 开发工具

    我一般是用 IntelliJ IDEA 进行 SpringBoot 项目的开发 ,并使用 MySQL Workbench 来进行数据管理,这两个软件在 Windows和 macOS 上并没有什么太大区别。

    如果你需要进行远程终端连接操作,Windows 上的 XShell 和 Xftp 已经非常优秀。此外,考虑到开发过程中经常使用到各类插件,Windows 对各类插件强大的兼容性,属于传统艺能了。

    而 Apple M1 系列芯片确实存在部分软件的兼容问题,如果你需要的软件不支持 M1 芯片,可能会影响到实际开发。

    另外,如果要做深度学习这块,主流的 GPU 加速以 NVIDIA CUDA 为主,然而它已经停止对 macOS 进行支持了。写 C++ 的话,很多库也只兼容 x86 架构,偏底层的开发人员不建议使用 macOS。

    3. 编码打包

    编码环节,二者因使用相同的 IDE 并无差异;打包编译时,若涉及到 native 包时,Windows 环境下的编译更为稳定,而 M1 芯片的 macOS 则需要进行切换到 x86 的 JDK,虽然是个小问题,但也需要考虑下。

    4. 常用软件

    基本持平、各有千秋,如果工作中对 Microsoft Office 套件有强需求,请直接 Windows。

    总体来说,2022 年,在笔记本上使用 Windows 上的开发体验其实远超预期。做 Java 的有 IntelliJ iDEA、做前端的有 WebStorm、做游戏的有 Unity、做 C++ 的有 Visual Studio……

    题主要做机器学习,显卡首选 NVIDIA,考虑到 Intel 在 AVX 等指令集上表现更好,而且 CPU 和内存的配置不能过低,建议高性能 U 和大内存。Windows WSL2/Linux 都可以作为机器学习的系统环境,而 macOS 祖传不支持 CUDA,因此选用 PC 笔记本更适合。

    通常这类计算密集型任务对散热模组要求都非常高。我本人用的是高端游戏本 Alienware x17。 最高可选配到 12 代 i9 + RTX 3080Ti,连屏幕都是 4K 120Hz。

    鉴于题主有服务器,主要任务其实还是会在集群上跑,拉满笔记本顶配属实过于奢侈了。

    Alienware 顶配

    当然啦,开发机还是得具备本地开发的性能,不是离开了 server 就什么都做不了的上网本。

    Mac与Win比较方面:

    1. 入手Windows本本一年半了,目前所有的日常工作都在Windows平台上完成,体验还是不错的。
    2. 之前17年初的Macbook出了键盘双击和电池鼓包问题,虽然过保了,但由于当时键盘的设计问题,拿到Apple Store还是整个免费更换了,包括键盘和电池。不过后来我也基本没咋用几乎换新的这台Macbook……
    3. 尝试向公司同事安利Windows本本,就没有成功的……95%的同事用的都是Mac,包括很多新的M1和M1 Pro等,貌似现在兼容性也不是什么问题了。大家都太有钱了吧。

    Windows使用上的问题:

    1. 如果之前是用Mac的,很多设备切换到Win平台下体验会下降很多,比如AirPods,Magic Trackpad等。
    2. 接上一条,Windows本身接外设的能力感觉也要差一些,比如我经常得先唤醒笔记本再外接显示器,蓝牙耳机的体验也不太好。这个也是老毛病了,不知道Win11有没有改进。
    3. 编译环境比Mac还是要差一个等级,比如很多项目的makefile都是针对Unix系的shell编写的,在Windows上跑不起来。不过像maven,rustup,npm,conda这些使用上倒是没啥问题,之前玩pulumi也都没有依赖wsl直接在powershell里就能搞定。
    4. 如果重度依赖wsl的话,建议上32G或以上的内存。
    5. 如果预装的是Windows家庭版,限制有点多。我为了改系统语言为英文,还是升级到了专业版。

    推荐:

    1. 预算足的上Macbook仍然是一个很好的选择,也许是我比较熟悉这个软硬件生态了,感觉Mac整体上没那么折腾。个人工作需求选10核CPU14核GPU的M1 Pro加32G内存比较合适,推荐度90分。
    2. 对CPU/GPU或其它硬件有特殊要求的,上Windows也挺好,比如联想的小新,拯救者,ThinkBook系列等,目前价格基本是Macbook的1/3左右,推荐度80分。

    Mac软件下载资源:mac软件下载资源平台




  • 相关阅读:
    C#练习题1和2
    现代前端工程化实践:Git、Husky、Commitlint与PNPM的协同作战
    Kubernetes学习篇之对象
    编程段子│只有程序猿才能看懂的搞笑段子
    docsify多页文档找不到文档404
    Qt OpenMP使用
    如何打造一个有体验感的训练营?
    MongoDB深度学习
    node.js 用 xml2js.Parser 读 Freeplane.mm文件,生成测试用例.csv文件
    TiDB在科捷物流神州金库核心系统的应用与实践
  • 原文地址:https://blog.csdn.net/imac911/article/details/125406084