作者 | Chris Patti

译者 | 弯月   责编 | 欧阳姝黎

出品 | CSDN(ID:CSDNnews)

以下为译文:

近年来,苹果的笔记本电脑硬件设计决策让我感到非常痛苦,因此我不打算继续在这个平台上开展个人工作了。虽然最新的硬件有所改善,但既然已经做了决定,近期内我都不打算回头了。

我的第一个选择是 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:几千人努力培养的平台

如果是在几年前,你同时提到“Python”和“Windows”这两个词,恐怕很多 Python 程序员都会冲你翻白眼,然后告诉你当初他们如何花费了数周时间苦苦挣扎,只为了让某些关键的模块正常工作。

但是,这样的日子已经一去不复返了。如今微软和整个 Python 社区投入了无数的工程师,努力在 Windows 环境下打造一流的 Python 体验。无论是虚拟环境、poetry,还是集成了 pipx 之类的shell 安装与管理命令行脚本工具,都可以在Windows 的 Powershell 下正常工作。

如果你编写了一些原生的 UNIX核心代码,那么Windows也可以满足你的需求(请参见Linux 的 Windows 子系统)。

WSL:我看到企鹅了!

有了 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

声明:本文由CSDN翻译,转载请注明来源。

生于2001年的《程序员》曾陪伴了无数开发者成长,影响了一代又一代的中国技术人。时隔20年,《新程序员》带着全球技术大师深邃思考、优秀开发者技术创造等深度内容回来了!同时将全方位为所有开发者呈现国内外核心技术生态体系全景图。扫描下方小程序码即可立即订阅!

2021 年 Windows 成了 Python 开发者的首选相关推荐

  1. 墙裂推荐,Python开发者不容错过的7个VS Code扩展

    Visual Studio Code(简称 VS Code)是一个由微软开发,同时支持 Windows. Linux 和 macOS 等操作系统的免费代码编辑器,它支持测试,并内置了 Git 版本控制 ...

  2. 变味的 PyCon China,推荐一下北京的Python开发者活动

    今年的PyConChina大会将于10月22日在上海举办,大会的主题是"大数据和人工智能技术的创新应用",似乎跟Python并没有什么直接关联,前段时间在华莽用户组(CPyUG)对 ...

  3. python开发怎么成长_成长路线图:如何成为一名Python开发者?

    原标题:成长路线图:如何成为一名Python开发者? [导语]本文对学习 Python 的最佳书籍.视频.课程进行了汇总,并解答了初学者及早中级人员在工作中面临的问题.在作者看来,这些问题即便通过 S ...

  4. python职业发展规划-Python开发者的四大进阶攻略,菜鸟的成神之路

    原标题:Python开发者的四大进阶攻略,菜鸟的成神之路 随着人工智能的发展与应用,Python编程语言受到世界各界人士的关注,编程圈金句从"人生苦短,我学Python"转变成了& ...

  5. python开发者如何搭建自己的开发环境(Windows)

    序言: 可能很多新手python开发者,每次都在为自己的开发环境而烦恼,今天我给大家提供集中思路搭建适合自己的开发环境以及遇到的坑 一.搭建python环境途径 1.终端cmd+sublime tex ...

  6. 视频教程-清华-尹成老师-Python开发环境-web-Python

    清华-尹成老师-Python开发环境-web 毕业于清华大学,曾担任Google算法工程师,微软人工智能领域全球最具价值专家,微软Tech Ed 大会金牌讲师. 精通C/ C++,Python ,Go ...

  7. 【转】Windows 64bit下Python环境配置与集成IDE PyCharm

    本篇博客主要讲述Windows下Python环境的搭建(十分感谢原作者!!) 1. Python基本环境安装: 在网站Python官网 中下载Windows版本的Python安装包,双击下载下来的安装 ...

  8. Windows 10 搭建Python开发环境(PyCharm )

    Windows 10 搭建Python开发环境(PyCharm ) 一.安装Python3 二.安装Pycharm 怎么使用PyCharm编写Python程序,简单教程. windows下安装pyth ...

  9. 对于Python开发者,这本书绝对算得上此生必读之作

    先来看几个豆瓣书评和一个图灵社区读者书评. @有用的West 本来觉着自己代码已经非常 Pythonic 了,这本书开篇第一段代码分分钟教你做人.目前读到的最棒的 Py 进阶书.BTW, concur ...

最新文章

  1. Android4.0-4.4 加入支持状态栏显示耳机图标方法(支持带不带MIC的两种耳机自己主动识别)...
  2. 如何从SQL Server 中取得字段说明
  3. 反转给定区间的链表C语言,寻找素数对(C++)
  4. 开源纯C#工控网关+组态软件(三)加入一个新驱动:西门子S7
  5. 操作系统上机作业--使用条件变量解决生产者、计算者、消费者问题(多线程)
  6. 关于python变量的描述_Python变量命名的详细介绍
  7. docker访问宿主机mysql_docker容器内访问宿主机127.0.0.1服务
  8. LeetCode 313. 超级丑数(动态规划)
  9. 轻量在线人工客服系统 支持多商家+自动适配移动端
  10. SPI总线-串行协议解码
  11. matplotlib —— 注释及几何图形的绘制
  12. python 优先队列_示例讲解:python队列原理及实现方法与操作思路
  13. android ui 资源下载,【51CTO推荐】Android UI设计相关下载资源
  14. linux 命令:zip 详解
  15. 安卓6.0获取相机权限
  16. textbox提示文字属性_《我来自江湖》MUD类武侠题材多样性玩法的单机文字游戏...
  17. C++:什么是STL?
  18. Hi 小姐姐,这是你要的瘦身大长腿效果?
  19. 任务01-信息编码:纯⽩⾊的bmp图⽚ 用Hex Editor Neo画一个“C
  20. 阿里巴巴国际站询盘转化率

热门文章

  1. J2EEd 13个规范
  2. 主程序员团队与敏捷开发的联合应用(小型敏捷团队管理)
  3. vue: 组件中 template 定义
  4. sqlyog备份数据和导入备份数据
  5. 杭电-------2048不容易系列之(4)考新郎(C语言)
  6. vsftp不同帐号的目录和权限
  7. SQL Server 查询处理中的各个阶段
  8. Mcad学习笔记之异步编程(AsyncCallback委托,IAsyncResult接口,BeginInvoke方法,EndInvoke方法的使用小总结)...
  9. CentOS卸载自带的JDK
  10. [FFmpeg] 多个图片合成视频