VS Code是否已成为Python的最佳IDE?

Wesley13
• 阅读 873

微软和Python可能是一对不太可能的夫妻,但它们正在蓬勃发展。

VS Code是否已成为Python的最佳IDE?

Visual Studio Code是一个模块化的代码编辑器,所以扩展是必须的。你可以使用它们来获得诸如语言编译器之类的必需品,以及诸如代码格式化程序,lint和事件探查器之类的有用工具。仔细观察,你甚至会找到表情符号支持的扩展程序。

VS Code的市场上拥有大约2万个扩展程序。但多年来,一直有一个无可争议的扩展占据着排行榜的主导地位。Python语言扩展是最受欢迎的VS Code扩展,其下载量是其最接近的竞争对手的近两倍(2,300万,并且还在继续增长):

VS Code是否已成为Python的最佳IDE?

Python的广泛流行已经不是什么秘密了。但是Python在其自己的编辑器中超过了微软自己的语言的流行程度,这是一个不小的成就,这也是五年前似乎不可能实现的发展。那时,微软还在摆脱公司老古董的名声,一个与垂死的桌面软件世界联系在一起的公司,沉迷于过去的开发工具,完全不能很好地使用别人的技术。该公司在开源软件世界中尤其受到鄙视。 (将开源称为社会主义癌症可能无济于事。)

如果说有什么东西能展示微软的新自我,那就是Python。

Python如何融入VS Code

微软早期支持Python的尝试几乎被忽略了。IronPython是一个建立在.NET上的Python版本,在微软公司维护了几年,然后他们放弃了努力,把它交给了社区。Steve Dower,一个为Visual Studio工具开发早期Python工具的开发人员,描述了他是如何在公司工作了半年,直到隔壁的开发人员相信微软甚至有一个Python团队。

随着VS Code的出现,情况开始发生变化。最初,VS Code是一个使用JavaScript和TypeScript进行Web开发的工具。但是它的语言扩展迅速增加,最初的Python扩展是在微软之外建立的,由一个开发者维护,微软直到2017年年底才将其接过来。

今天,VS Code是任何类型的最流行的代码编辑工具之一:

VS Code是否已成为Python的最佳IDE?

很容易想象下载VS Code的Python扩展的人是相对初学者,而经验丰富的Python专业人士坚持使用重量级ide,如PyCharm或Spyder。但事实似乎也并非如此。

PyCharm的创建者JetBrains与Python开发人员进行了自己的年度调查。他们的2019年结果显示,VS Code紧随更成熟的IDE之后。在经常被人津津乐道的数据科学领域,VS Code拥有23%的开发者,而PyCharm则为28%:

VS Code是否已成为Python的最佳IDE?

如果将其与两年前的结果进行比较,这就更令人印象深刻了,当时VS Code的采用率还难以达到7%。(相比之下,Visual Studio的Pythons工具,为Visual Studio的完整版本而构建,后来被整合到产品中,仍然在排行榜上,只有1%的Python程序员使用。)

承诺发力的迹象

有很多理由怀疑微软对Python的承诺。该公司以热衷于采用一个新的方向,但几年后又放弃这个方向而闻名。他们后面有一个墓地,里面堆满了已弃用的技术,而且已经满了。

任何公司都没有无限的资源,微软已经在支持自己的快速变化的语言,比如C#、F#和TypeScript。事实上,他们正在远离曾经流行的Visual Basic语言,让它在没有适当的VS Code支持的情况下苟延残喘。这使得更有趣的是——与此同时微软正在加深对外部语言的支持。这明显偏离了他们“那不是这里发明的”的历史文化。但如果Python不再是数据科学和机器学习的首选语言,谁又能说微软的注意力是否也会消失呢?

对于这个问题没有好的答案,除了最近的历史:Python仍然非常流行,微软已经关注该语言好几年了。以下是微软针对Python支持宣布的一些最新举措:

  • Pylance。Python扩展一直都有智能感知支持。但是微软新的Python语言服务器要快得多,并且对输入和核心Python库有更深的理解。这也是多年来的第二次重启。

  • Native Notebooks。微软正在预览一个新的数据科学Notebooks的本地实现。它可以干净利落地集成在VS Code中,并提供显著改善的性能。

  • PyTorch for Windows。微软最近从Facebook接手了流行的机器学习库的开发和维护工作。这一切都保证了未来更好的整合。

  • Visual Studio IntelliCode。这个基于人工智能的IntelliSense版本能够理解你的代码的上下文,并使用它来提出建议。微软目前只为一些语言提供了它,包括C#/C++、TypeScript/Java和Python。

VS Code是否已成为Python的最佳IDE?

这是一份令人印象深刻的改进清单。但最显著的事实是,它们都是在上个月宣布的。

那么,这一切给我们今天带来了什么呢?投资PyCharm的单语言Python程序员不太可能离开他们已经熟悉的IDE。但是,VS Code具有两个重要的优点:

  • VS Code是免费的。相比之下,PyCharm有一个免费且有限的社区编辑器,但能力更强的版本每年约200美元。

  • VS Code是一个多语言编辑器。它的DNA里有多种语言。如果你期望在不同的项目和平台之间切换,真的没有更好的地方了。

其他的细节,比如VS Code有更小的内存占用和更快的启动性能,更多的是个人品味的问题。它们可能根本不重要。但凭借成本和多语言支持的内在优势,以及微软不遗余力的改进步伐,Python编程的未来似乎可以直达微软的门口。

【责任编辑:赵宁宁 TEL:(010)68476606】

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Stella981 Stella981
2年前
Android So动态加载 优雅实现与原理分析
背景:漫品Android客户端集成适配转换功能(基于目标识别(So库35M)和人脸识别库(5M)),导致apk体积50M左右,为优化客户端体验,决定实现So文件动态加载.!(https://oscimg.oschina.net/oscnet/00d1ff90e4b34869664fef59e3ec3fdd20b.png)点击上方“蓝字”关注我
Stella981 Stella981
2年前
Python之time模块的时间戳、时间字符串格式化与转换
Python处理时间和时间戳的内置模块就有time,和datetime两个,本文先说time模块。关于时间戳的几个概念时间戳,根据1970年1月1日00:00:00开始按秒计算的偏移量。时间元组(struct_time),包含9个元素。 time.struct_time(tm_y
Wesley13 Wesley13
2年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
2年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
2年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
3个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这