学径 LearnPath

编程语言基础 / Wiki

IDE

把书写、运行和查看结果放在同一处的工作台;它不是语言本身,也不保证程序对世界的建模正确。

它是什么

IDE(Integrated Development Environment,集成开发环境)是编写 程序 时使用的工作台:在同一处编辑文本、调用解释器、阅读输出与报错。它把「写下一步、跑一遍、看结果」收成一条短循环,使人可以把注意力放在步骤是否成立,而不是在多个窗口之间搬运文件。

开发环境比 IDE 更宽。凡是能让人写下 Python、交给解释器执行、再看见现象的布置,都算开发环境:可以是终端里的一行命令,可以是带调试器的专业软件,也可以是浏览器里的在线编辑器。IDE 是其中把工具收拢得最紧的一类,不是唯一的一类。

环境只提供检验的场所。程序是否在为问题建模,仍然要由人判断。

名字从哪来

IDE 直译是「集成的开发环境」。早期写程序常要分开使用几件工具:一个编辑器负责改文本,一个编译器或解释器负责执行,一个调试器负责在停下时查看内部状态。把它们放进同一个界面,是为了缩短从修改到证据之间的距离。

Python 官方发行里附带的 IDLE,名字来自 Integrated Development and Learning Environment,强调它同时面向开发与学习。后来的 PyCharm、Visual Studio Code 等,走的是同一条路:不是发明新的语言,而是把已有的书写与执行收进一张桌子。

它怎么工作

一次完整的循环通常只有三步。人在编辑区写下文本;运行命令把文本交给解释器;解释器按顺序执行,把 print 的结果送到输出区,或在无法继续时抛出 异常。人阅读这份现象,再改文本。IDE 并不代替其中任何一步,它只是让三步不必换房间。

解释器可以装在本机,也可以跑在浏览器里。安装是工程选择,不是概念的前提:同一份 print("hello, world!"),在终端、在桌面 IDE、在网页编辑器里,只要解释器按同一套规则执行,得到的应是同一种证据。编辑器负责显示与修改;解释器负责计算。二者合在一起,才构成可检验的环境。

更重的 IDE 还会加上项目管理、自动补全、断点调试。这些能加快定位,却不改变分工:机器执行写下的步骤,人提出问题并验收结果。

生活里在哪里

Python 常见的开发环境,是同一条循环的不同包装。

命令行(终端)是最薄的一层。人用任意编辑器保存 .py 文件,再在终端输入 python 文件名.py,解释器把输出与报错直接印在同一窗口。它几乎不隐藏发生了什么:文件在哪、谁在执行、结果从哪出来,都看得见。许多科学计算和服务器上的脚本,日常仍以这种方式运行。打开 python 而不带文件名,则进入交互式对话,一行写完立刻执行,适合试一个表达式,不适合保存一份可重复的程序。

PyCharm 是专为 Python 设计的桌面 IDE。它把项目目录、编辑器、运行按钮、调试器和输出区放在同一窗口,适合需要同时看许多文件、跟踪函数调用的工作。功能多,并不等于更接近计算的本质;它缩短的是操作路径。

Visual Studio Code(常称 VS Code)是通用编辑器。装上 Python 扩展之后,它也可以完成「编辑—运行—查看」这条循环,因此常被当作轻量的 Python 环境。它不是语言的一部分,只是一张可以换成别种语言的桌子。

此外还有几类常见布置。Python 自带的 IDLE 提供最简单的窗口与交互壳。科学计算里大量使用的 Jupyter 笔记本,把说明文字、代码和一次运行的输出写在同一份文档里,便于叙述实验,却容易让人把「这一格刚跑出的结果」误当成已经保存的程序。浏览器里的在线环境把解释器放进页面,使人不必先完成本机安装就能获得证据;会话结束时,环境的边界仍然属于模型的一部分——虚拟文件不会自动变成笔记本磁盘上的档案。

选用哪一种,取决于要检验什么、结果需要保存多久、以及是否必须与实验室或同伴的机器互相移交。工具可以换;「写下步骤、交给机器、阅读现象」这一结构不能换。

和相近概念的差别

Python 是语言。程序是用语言写成的那一份步骤。解释器是执行步骤的软件。编辑器只负责书写与显示。IDE 把编辑器、解释器入口和输出区集成到同一界面,但它仍然不是语言,也不是程序。

命令行不是落后的 IDE,而是把循环拆开后的原貌。Jupyter 笔记本不是另一种 Python,而是一种把叙述与执行交织在一起的文档格式。日后用 对话式编程 时,语言模型可以起草文本;文本仍然要放进某个环境里运行。环境提供证据,不代签对错。

常见误会

误会 1:IDE 就是 Python,换一个软件就是换了一种语言。

语言是文本必须遵守的规则。IDE、编辑器、终端只是让人书写并调用解释器的场所。同一份程序可以在不同环境里得到同一类结果。

误会 2:必须先装好专业工具,才谈得上理解编程。

能运行、能看见输出,环境就够用来检验思想。本机安装、项目配置、插件市场,是工程上的后续选择,不是概念的入场券。

误会 3:在 IDE 里点了运行且没有报错,程序就正确了。

没有异常,只说明解释器走完了写下的步骤。步骤是否在为那个问题建模,仍然要换一组输入、看关键输出、由人验收。见 对话式编程。

误会 4:命令行是过时的,只有专业 IDE 才算正经环境。

命令行把文件、解释器与输出之间的关系摊开。许多真实的科学脚本至今仍这样运行。界面的厚薄,不等于思想的深浅。

想知道更多

  • 书:布鲁克希尔《计算机科学概论》
  • 书:查尔斯·佩措尔德《编码:隐匿在计算机软硬件背后的语言》
  • 书:埃里克·马瑟斯《Python编程:从入门到实践(第3版)》
  • 书:艾伦·唐尼《像计算机科学家一样思考Python(第2版)》

未登录时不会保存学习进度