Olympia IDE

关于 · 名字与来处

奥林匹亚不在奥林匹斯山上

先讲清楚这个地方在哪、发生过什么,再讲我们为什么用这个名字。顺序是有原因的:这两个名字经常被混着讲,而混掉的那一半恰好是要紧的。

地名

Olympia 读作 /oʊˈlɪmpiə/,中文一般译作「奥林匹亚」。它不是 Olympic 改个尾巴拼出来的词,就是那个地名本身:古希腊语 Ὀλυμπία,写成拉丁字母就是 Olympia。

奥林匹亚在伯罗奔尼撒半岛的西端,古地名伊利斯(Elis),阿尔菲奥斯河(Alpheios)的河谷里,背后靠着一座叫克罗尼翁(Kronios)的小山。众神居住的那座奥林匹斯山(Ólympos)在东北两百多公里外,和这片赛场没有关系。两个词同源,地方是两个地方。

公元前 776 年是有文字记载的第一届泛希腊运动会。那一年只有一个项目:一个运动场长度的短跑,希腊语叫 στάδιον,长度约 190 米。后来的赛跑场地都按它来量,今天英语里的 stadium 就是这个词。

赛期前后有一段停战期,希腊语叫 ἐκεχειρία(转写 ekecheiria,意思接近「把手停住」,也就是各方都不动手)。期间各城邦的军队不得进入伊利斯,选手和观众可以安全通行。这句话是这个地名最实在的部分:那段时间打仗的人停下来了,只是为了让跑步的人能到场地。

会期四年一次,久到希腊人干脆拿它当纪年单位——说「第几届奥林匹亚德」,就等于说一个年份区间。一个活动能被当作日历用,说明它在日常里的分量有多重。

竞技不是打架

希腊语里「竞技」是 ἀγών(agon)。这个词后来还生出「痛苦」那一个——他们很清楚这两件事挨得多近。但 ἀγών 的重点不在把对面那个人打败,而在把一件事比出高低。

奥林匹亚发给优胜者的奖品是一圈野橄榄枝。别的赛会有发油、发铜器的,这里不发值钱的东西。一个城邦给自己的运动员立雕像、写颂诗、留首席座位,那是回家以后的事。场地本身只给一样:一个被记下来的成绩。

两千八百年后的同一件事

另一群人坐在屏幕前。没有尘土,没有欢呼的城邦——只有一台开机稍慢的电脑,一个黑底白字的编辑器,和一道还没做出来的题。

你按下 F9,编译过了;跑样例,第一组过了,第二组的输出差了一个数。改一行,再跑。这一次四组全过。

这时候并没有对手

同一间机房里一屋子人做同一道题,交题的时间各不相同,评测机也不比较谁更强——它只判你的输出对不对。判成 Accepted 的那一刻,没有金牌,没有橄榄枝,但你听见了。

那声「听见」没什么神秘的:它就是你知道自己这次比上次强了一点。写代码少有即时反馈,AC 是其中最实在的一种。

所以我们借这个名字:借的不是谁打败谁,是你和一个标准之间的距离——这道题的最好解法是什么,我这次的写法离它还有多远。标准在题目里,不在坐在你旁边的同学身上。

为什么要有这个项目

四条理由,都很具体,没有一条是「市面上的编辑器不够好」。

还有一句实话:这个项目一开始只是为了我们自己少踩点坑。后来发现有同一条坑的人在增多,就做成安装包发出去了。

它刻意不做的事

这一节比上一节更接近「承诺」,所以每一条都能在站内另一页被验证。

AI 用你自己的 Key

填一个 OpenAI 兼容的地址和自己的 API Key 才有 AI 教练:我们不是转发方,也看不到你的 Key。不填的话,编译运行一点影响都没有。

没有账号,没有服务器

不注册、不登录、不上传代码,遥测出厂就是关的。练习记录写在你自己的工程文件夹里,换机器拷文件夹就行。细节在隐私声明里逐条写着。

不搬题库

题面内容的版权归原题站与作者,Olympia 只是把你正在做的这道题显示在编辑器里。我们不抓取整站、不做题库镜像。

不带版本管理

git 扩展干脆没进安装包,所以这里是写题的地方,不是管仓库的地方。需要它的时候用别的工具,我们不假装这一项存在。

不带调试器

安装包里既没有 gdb 也没有 js-debug,侧栏也没有那个图标。训练时靠打印、跑样例和对拍找问题。真要单步调试,手册里写了怎么从扩展市场装一个——机房没网就办不到。

当前只有 Windows

Windows 10 / 11 x64。Linux 版本在计划中,移植环境已经就绪,等 Windows 侧的功能收敛之后启动;macOS 没有开发计划。发出去的每一版都有明确的体积和校验值,没有「大概多大」这种数字。

版本代号

往后的每一个版本,用古代竞技项目命名。代号写在发行说明里,不参与版本号——版本号负责「哪一版」,代号负责「这一版在跑什么」。

代号原意与用途
Stadion
στάδιον
一个运动场长度的短跑,公元前 776 年那一届唯一的项目。留给把基础跑通的那一版:装完能编译、能跑、能测。
Pankration
παγκράτιον
徒手综合项目,拳与摔都允许,考的是「什么都会一点」。留给功能面铺开的那一版:编译、判题、对拍、比赛、题面往一处收。
Hoplitodromos
ὁπλιτοδρόμος
穿着装备跑两个运动场,练的是负重下的节奏。留给背着历史包袱跑的那一版:比如把汉化和工作台改动重新对齐上游的一次大更新。

已经发出去的 v1.0.0 没有代号:它出厂的时候还没有这套约定,我们不追溯给它补一个名字。选下一个代号的规则写在仓库的 docs/12-version-codenames.md 里,也在源码仓库能翻到。

我们站在谁的肩膀上

Olympia 是 VS Code 的一个 fork,基于 Microsoft Visual Studio Code(MIT License),我们自己的修改以 GPL-3.0-or-later 发布。这不是客套:代码改在人家的工作台里,许可证就得跟着走,安装目录里也带着 GPL 全文和第三方组件清单。

出厂配色是 One Dark Pro(MIT,作者 zhuangtongfa);捆绑的编译器是 MinGW-w64 的 MSYS2 发行版(GCC 15.2.0),各自遵循原始许可证。「许可证与第三方组件」在 Olympia 侧栏的 AI 教练与帮助分组里,不用翻仓库。

还有一件事要说在前面:上游每更新一次,我们这套改动(含逐句原地改的中文文案)都要重新核对一遍。这件事不出现在功能表上,但它决定了版本之间为什么会有间隔。

源码与发行:GitHub 上是源码,Gitee 上的 Releases 挂安装包与 SHA256SUMS.txt,官网的下载按钮指向后者。

代码的竞技场,思想的奥林匹亚

装完,就打比赛。