近年来,苹果的笔记本电脑硬件设计决策让我感到非常痛苦,因此我不打算继续在这个平台上开展个人工作了。虽然最新的硬件有所改善,但既然已经做了决定,近期内我都不打算回头了。
我的第一个选择是 Linux 桌面系统,与不稳定和可访问性问题苦苦斗争了几个月后,我承认我一直在寻找某种稳定、可靠的替代方案,我希望找到某个足够强大的解决方案,不仅能够完成工作,甚至还可以提供一些新功能。作为老程序员,有时候我还是希望尝试一些新花样。
如果你曾经接触过 Windows,而且发现自己不喜欢其神秘又复杂的UI,则我建议你继续阅读本文,也许会让你有所改观。
由于选择正确的工具完全取决于个人的独特需求,因此下面我将讨论并展示 Windows 满足常见的一些需求的情况。
几十年前,UNIX最吸引我的功能之一就是 shell。只需要键入一些命令,就可以完成所有的工作,而且还可以将多个命令串在一起,创建非常强大的机制,真是太让我着迷了。
如今,我仍然非常喜欢 Bourne shell,它和几十年前一样强大。然而,Windows Powershell 拥有一些非常强大的范式,值得研究。
除了 UNIX shell 根本无法完成的对象管道和所需状态配置之外,现代 Powershell 还具有一些非常让人享受的功能,比如Oh My Posh(https://ohmyposh.dev/)可营造出非常舒适的工作环境。请看下面的截图:
可以看到,我设置好了各种状态行提示,比如上一个命令的退出代码、当前的 git 分支、当前的 Python 版本和虚拟环境等等。
虽然 Powershell 与我习惯的 UNIX shell 完全不同,但它的每个命令都有内置的帮助文档,而且语法也比较好理解,因此学习曲线并不陡峭。
大多数 UNIX 用户在使用 Windows 时都会抱怨,一切工作都需要在 GUI 上利用鼠标点击完成,而且感觉自己就像被困在了一系列没有尽头的安装程序屏幕中,甚至无法安装基本的工作工具。现代 Windows 的 winget 打破了这种困境,这是一个完整的包管理器,其中包含大量常见的应用程序。你只需要运行 winget install git 就可以了。
作为一名极其不喜欢运动的人,使用 Windows 标准的图标和指针用户界面,令我非常痛苦。我希望需要只要敲几下键盘就能启动应用程序。在 Mac 上,我可以利用 Alfred,除了通过键盘应用程序外,Alfred 还增加了一系列能够将生产力提升到更高级别的功能。
而最近 Windows 添加了一个看起来同样强大且简单的功能:Microsoft Powertoys 的 Powertoys Run 功能。我完全可以通过键盘启动应用程序,还可以通过设置功能键来使用睡眠、重启等系统功能。
Powertoys 还有一个令我心动的附加功能是它的键盘管理器,我可以通过它将Ctrl键映射到CAPS LOCK ,这样 Ctrl 键就在我小指旁边,非常方便使用。
如果是在几年前,你同时提到“Python”和“Windows”这两个词,恐怕很多 Python 程序员都会冲你翻白眼,然后告诉你当初他们如何花费了数周时间苦苦挣扎,只为了让某些关键的模块正常工作。
但是,这样的日子已经一去不复返了。如今微软和整个 Python 社区投入了无数的工程师,努力在 Windows 环境下打造一流的 Python 体验。无论是虚拟环境、poetry,还是集成了 pipx 之类的shell 安装与管理命令行脚本工具,都可以在Windows 的 Powershell 下正常工作。
如果你编写了一些原生的 UNIX核心代码,那么Windows也可以满足你的需求(请参见Linux 的 Windows 子系统)。
有了 WSL2 以及最近出现的 WSL-g ,你就可以在 Windows 上无缝构建、调试和运行 Linux 程序了,包括需要 X/Wayland GUI 支持或声音的程序。
它不仅可以保证兼容性,而且是在 Windows 中运行的 Linux 内核。如今,二者的集成已非常完善,你可以成功地在 WSL 中运行 Docker等工具,真是了不起!
此外,大多数流行的主流开发工具,比如 Pycharm 和 Visual Studio Code,都可以很好地支持在 WSL 中进行部署和调试。
微软确实在这方面下足了功夫。与 Mac 不同的是,你不需要使用运行在 Mach 微内核之上的 FreeBSD 用户空间,你运行的完全是 Linux。
作为一名技术人员,能够寻找到技术领域内高速、高价值的创新,我感到非常自豪。
多年前,当许多人使用 DOS、OSX 之前的 MacOS 或 Sun 的 Sparc 之类的超级昂贵的专有供应商工作站时,我使用的是Linux。能够在商品硬件上拥有一个UNIX 环境,就好像上天赐给凡人的礼物一样。
虽然我仍然 Linux 桌面版具有非凡的潜力,但对我来说,缺乏可访问性等功能实在是无法忍受,而且也严重影响生产力。
因此,我打算拥抱了一个有效的桌面系统,一个有效的生态系统,以及一个背景雄厚且能够将资源投入到提高标准和创新的公司
我期待着进一步探索Windows这个平台的潜力。
原文链接:https://www.feoh.org/2021-the-year-windows-became-a-first-class-python-development-environment.html