免费编程练习场全导览:解析 free-programming-books 仓库 free-programming-playgrounds.md 中 50+ 技术分类的在线编程环境清单
本篇技术指南以开源仓库 free-programming-books 中维护的英文版《Programming Playgrounds》精选清单 more/free-programming-playgrounds.md 为主体,系统讲解"编程练习场(Playground)"这一资源形态的定义、清单的组织与维护规范,并全量复刻原文档 50 余个语言/技术分类下的所有条目,逐类给出挑选与使用建议。读完本篇,你将知道:哪些练习场适合可视化学习算法与 Git、哪些是官方出品的语言 REPL、哪些在线 IDE 可零安装编译运行 Java/Python/C/C++/C# 等主流语言,以及这份清单与仓库内交互式教程、问题集等姊妹清单的分工边界。
一、先理解"Playground"在本仓库中的定义与定位
free-programming-books 是一个收录"免费学习资源"的开放仓库,根目录 README.md 按资源形态把内容划分为 Books(图书)、Courses(课程)、Interactive Tutorials(交互式教程)、Playgrounds(练习场)、Podcasts and Screencasts(播客与录屏)、Problem Sets & Competitive Programming(问题集与竞赛编程)等大类,并声明每个文件均采用 CC BY 协议发布(见 LICENSE 与 README 末尾的 License 章节)。
针对本文主题,仓库给出了两条可直接引用的一手定义:
- 在根目录 README.md 的 "Programming Playgrounds" 章节中,官方描述为:"Write, compile, and run your code within a browser. Try it out!"(在浏览器中编写、编译并运行你的代码,直接上手试试)。
- 在维护指南 docs/CONTRIBUTING.md 中,作者对六类清单做了更严谨的区分:Playgrounds are online and interactive websites, games or desktop software for learning programming. Write, compile (or run), and share code snippets. Playgrounds often allow you to fork and get your hands dirty by playing with code.(练习场是用于学习编程的在线交互网站、游戏或桌面软件,支持编写、编译/运行并分享代码片段,通常允许 fork 后动手摆弄代码。)
值得注意的是,README 在同一处把 Playgrounds 单独成章列出,并给出三种语言分支:英文 more/free-programming-playgrounds.md、中文 more/free-programming-playgrounds-zh.md、德文 more/free-programming-playgrounds-de.md。也就是说,本文分析的 more/ 目录恰是这一资源形态的官方"入口"之一,与同目录下的 free-programming-cheatsheets.md、free-programming-interactive-tutorials-en.md、problem-sets-competitive-programming.md 一起构成了"书外学习资源"的完整矩阵。
读者定位建议:如果你只想"读"不想"装",去 books 找电子书;如果你想"跟着网页一步步做练习并由系统判定/指导",应去 Interactive Tutorials;如果你已经掌握语法、想零成本跑一段代码验证想法、分享代码片段或玩一个教学小游戏,本文介绍的 Playgrounds 就是正确的选择。
二、这份清单是怎么组织起来的:结构、排序与维护规则
阅读 more/free-programming-playgrounds.md 前,先了解它的"目录学"约定,能大幅提升检索效率。
2.1 顶层 Index 与分类锚点
文件开篇就是一个完整的 Index,按字母序列出所有分类并提供页内锚点跳转。除常规 Markdown 锚点外,为规避特殊字符(#、+、.)导致的锚点失效,原文档对 C、C#、C++、.NET 四个分类显式使用了 HTML 锚点(如 <a id="csharp"></a>C#),并在 TypeScript 下设有 Angular 子分类、JavaScript 下设有 AngularJS 子分类,两个子分类之间通过 See also 注释互相指引。本文后半部分的全量分类清单会原样保留这一节结构,方便你按图索骥。
2.2 排序、命名与格式规则(维护层面的"事实")
从维护文档 docs/CONTRIBUTING.md 可以确认以下约定,它们直接决定了清单的可读性与可信度:
- 全清单按字母序排列,且 GitHub Actions 会在 CI 中运行测试,专门"确保列表已按字母序排列、格式规则被遵守"(见 CONTRIBUTING "In a nutshell" 第 5 点);
- 层级约定:分类统一使用
###三级标题,子分类使用####四级标题;条目之间用无序列表; - 尽量署名:条目后常以
- 作者/维护方形式标注来源,例如- Programiz PRO、- Codepip、- Open Policy Agent; - 括号内注明使用前提:若访问需要注册或账号,用括号标注,例如 Grasshopper 条目标注 (Google account required),Glitch 系列条目标注 (Account requested, not required);
- 链接选择偏好:优先
https、优先权威来源(作者官网优于第三方站点)、剔除文件托管平台与短链(对应 more/free-programming-playgrounds.md 中各条目尽量落在各工具的官方域名上)。
掌握这些规则,你就明白为什么清单里同一语言会出现多个"Online Compiler"——它们通常来自不同提供方、界面与附加能力各异,属于"平行条目",应按需选择而非视作冗余。
三、如何挑选练习场:按学习场景选型(快速决策框架)
在进入全量清单前,先给出一套与清单内容对应的选型框架。下表归类依据完全来自原文档条目的实际形态,可作为快速决策的入口:
| 你的目标 | 推荐去哪个分类寻找 | 典型资源形态 |
|---|---|---|
| 看懂算法与数据结构在"动" | Algorithms、Git、HTML and CSS | 可视化站点、教学小游戏(Flexbox Froggy / Grid Garden / Learn Git Branching) |
| 不装环境,秒跑一段语法验证 | C / C++ / Java / Python / JavaScript 等语言分类 | 在线编译器/在线 IDE(JDoodle、Programiz、OnlineGDB、OneCompiler 等) |
| 玩官方/准官方 REPL,体验最新特性 | Go、Rust、Haskell、Elm、Svelte、Scala、Nim、V、OCaml 等 | 官方 Playground(如 Rust Playground、DartPad、Try Haskell) |
| 分享/协作一段前端代码 | JavaScript、HTML and CSS、React | 代码片段平台(CodePen、JSFiddle、JSBin、Plunker、CodeSandbox、Glitch) |
| 在真实环境练习运维技术 | Linux、Docker、Kubernetes、DevOps | 终端沙盒 / 在线实验环境(Play with Docker、OverTheWire 等) |
| 调试正则、查询图数据库等专项技能 | Regular Expressions、Gremlin、SQL、Redis、Rego | 专项练习台(Regex101、Gremlify、Try Redis、OPA Rego Playground) |
| 学习冷门/新兴语言与 DSL | APL、ColdFusion、Crystal、GDScript、Solidity、Scratch、V | 专门为小众社区搭建的 REPL 与在线 IDE |
两条使用提示:
- 留意括号备注。清单中标注
account required的资源需要账号;标注requested, not required的则只是"建议注册、可跳过";个别条目还注明技术特性(如 repl.it 条目注明 including a separate Java/Swing)。 - 同一工具多语言可用。例如 SoloLearn、OnlineGDB、Ideone、JDoodle、InterviewBit、Codepad、Programiz 在多处重复出现,代表它们是"跨语言练习场",用哪个入口取决于你当前想练的语言。
四、全量分类清单(按原文档结构复刻,共 50+ 分类)
说明:以下分类标题、条目名称、作者/维护方署名与括号备注均忠实继承自 more/free-programming-playgrounds.md。分类保持原文档的字母序与锚点名,条目附带一句中文使用导向,帮助你快速定位。各条目的可点击入口请直接查阅仓库原文件。
Algorithms(算法)
- Data Structures Visualization(作者 David Galles):以图形化方式演示常用数据结构的插入、删除与遍历过程,适合理解堆栈、队列、树、图等抽象结构的底层行为。
- The Algorithm Visualizer:把算法执行过程可视化的在线平台,适合边跑边看排序、搜索、图算法等每一步的状态变化。
- visualising data structures and algorithms through animation:通过动画演示数据结构与算法的在线站点,适合作为算法课程的辅助可视化工具。
APL
- APLgolf:面向 APL 语言的高尔夫式练习场,适合比拼最短代码。
- ngn/apl:浏览器中运行的 APL 解释器,适合快速验证 APL 表达式。
- TryAPL:APL 官方风格的在线试玩入口,零安装体验 APL 语言特性。
- TryAPL Mini:TryAPL 的精简/变体版本,适合轻量测试。
Assembly
- Command Challenge:以命令行闯关形式训练 shell 命令技能的练习场。
- Educational Visual CPU Simulator(作者 Renato Cortinovis、Nicola Preda、Jonathan Cancelli、Alessandro Belotti、Davide Riva,提供 JAVA/JAR 形式):可视化 CPU 仿真器,适合理解指令执行、寄存器与汇编底层原理。
- OverTheWire:以"战争游戏(wargame)"形式提供一系列安全/命令行闯关关卡,常用于练习 Linux 命令与系统安全基础。
Bash
- Terminus(MIT):在浏览器中模拟终端环境的 Bash 练习场,适合零基础熟悉命令行导航与文件操作。
C
- C Playground(Programiz PRO):Programiz 出品的 C 语言在线练习场。
- InterviewBit - Online C Compiler IDE:InterviewBit 提供的在线 C 编译器 IDE。
- JDoodle - Online C Compiler IDE:JDoodle 的 C 在线编译入口,适合快速运行 C 片段。
- Online C Compiler(Programiz):Programiz 的 C 在线编译器,内置示例与教学提示。
- SoloLearn:跨语言学习平台,支持在浏览器中编写并运行 C 代码。
C#
- C# Online Compiler(ScholarHat):ScholarHat 提供的 C# 在线编译器。
- C# Online Compiler(W3Schools):W3Schools 的 C# 在线编译入口,与它的 C# 教程配套使用。
- C# playground(Codeapi):Codapi 出品的 C# 练习场。
- OneCompiler:OneCompiler 的 C# 在线编译入口,界面简洁,适合快速试验。
- Online C# Compiler(myCompiler):myCompiler 平台上的 C# 在线编译器。
- Online C# Compiler IDE(JDoodle):JDoodle 的 C# 在线编译器 IDE。
- OnlineGDB:在线调试型编译器,支持 C# 断点调试,适合排错练习。
- Programiz - Online Compiler:Programiz 的 C# 在线编译器。
- SharpLab:面向 C# 的"反编译与 IL 查看"练习场,适合探究 C# 代码编译后的真实行为。
- SoloLearn:SoloLearn 平台上的 C# 练习入口。
C++
- C++ Shell:轻量 C++ 在线编译执行入口,适合快速验证 C++ 片段。
- Codapi:Codapi 提供的 C++ 练习场。
- Coding Blocks:Coding Blocks 的在线 IDE,适合做算法题与练习。
- Coding Minutes:Coding Minutes 的在线 IDE。
- Compiler Explorer:业界常用的"编译器资源管理器",可查看代码在不同编译器/优化选项下的汇编输出,适合研究 C/C++ 编译原理。
- InterviewBit:InterviewBit 的在线 C++ 编译器,常用于面试刷题。
- LabStack:LabStack 的 C++ 在线编译入口。
- OnlineGDB:OnlineGDB 的 C++ 在线编译与调试环境。
- SoloLearn:SoloLearn 平台上的 C++ 学习与运行入口。
ClojureScript
- Online Clojure IDE(JDoodle):在浏览器中运行 Clojure/ClojureScript 的入口。
- Web REPL:浏览器端 ClojureScript REPL,适合交互式试验函数式代码。
ColdFusion
- ColdFusion Fiddle:面向 ColdFusion 的代码片段试验台。
- TryCF:在浏览器中运行 ColdFusion 代码的练习场,适合老牌 CF 开发者验证脚本。
Crystal
- Compile & run code in Crystal(play.crystal-lang.org):Crystal 官方在线练习场,零安装编译运行 Crystal 代码。
Dart
- DartPad:Dart 官方出品的在线练习场,支持 Dart 与 Flutter 相关代码片段,是学习 Dart 语法的首选入口。
- Replit:Replit 的 Dart 在线运行环境,适合放在项目式工作区中练习。
DevOps
- DevOps Dream:以游戏化方式训练 DevOps 技能的平台。
- KodeKloud:提供实验型练习环境的 DevOps 学习平台,适合练习 Linux、Ansible、CI/CD 等实操。
Docker
- Online Docker Playground(LabEx):LabEx 提供的 Docker 在线实验环境,浏览器中直接练习容器命令。
- Play with Docker:Docker 官方社区提供的在线沙盒,可免费启动临时 Docker 主机,是练习 Docker/K8s 命令的经典入口。
Elm
- Ellie:Elm 语言的在线练习场,支持编译运行与包依赖引入。
- Try Elm!(elm-lang.org):Elm 官方"试一试"入口,适合首次接触 Elm 时体验。
Flutter
- Codepen(Flutter 主题模板):CodePen 上的 Flutter 模板专区,适合查看与改造 UI 示例。
- Flutter Studio:通过可视化拖拽生成 Flutter 界面的在线工具,适合练习 Widget 布局。
GDScript
- GDScript(gdscript-online):浏览器端运行 GDScript 的练习场,适合学习 Godot 游戏脚本语言语法。
Git
- Git-school:以可视化方式演示 Git 提交、分支等内部动作的教学站点。
- Learn Git Branching:通过闯关游戏学习 Git 分支与合并的交互式练习场(本仓库 Interactive Tutorials 清单 free-programming-interactive-tutorials-en.md 亦收录了同类资源)。
Go
- Go Playground:Go 官方在线练习场,支持分享代码链接,是验证 Go 片段的权威入口。
- Go-Vim:在浏览器中结合 Vim 键位编辑并运行 Go 代码的练习场。
- SoloLearn:SoloLearn 平台上的 Go 练习入口。
Gremlin
- Gremlify:Apache TinkerPop Gremlin 图查询语言的在线练习场,适合边写图遍历边看结果。
Haskell
- Try Haskell:Haskell 入门级网页 REPL,适合没有本地环境时体验惰性求值等特性。
HTML and CSS
- Bootstrap Builder(Layoutit):可视化拖拽生成 Bootstrap 布局的在线构建器。
- CodePen:全球主流的前端代码片段社区,支持 HTML/CSS/JS 实时预览与分享。
- CSSdeck:CSS 作品展示与试验平台,适合欣赏并改造纯 CSS 效果。
- Dabblet:轻量在线 CSS 试验台,界面极简。
- Flexbox Froggy(Codepip):用"喂青蛙"游戏闯关学习 Flexbox 各属性的经典教学游戏。
- Flexy Boxes:Flexbox 可视化调节工具,通过滑杆实时预览容器/项目属性变化。
- Grid Garden(Codepip):以"种萝卜"游戏学习 CSS Grid 的教学游戏,与 Flexbox Froggy 同作者系列。
- Grid Generator(LayoutIt):可视化生成 CSS Grid 布局代码的在线生成器。
- HTML-CSS-JS:提供 HTML/CSS/JS 在线试验与速查的综合站点。
- Learn advanced html and css(The Odin Project):The Odin Project 全栈课程中"高级 HTML 与 CSS"单元,含配套在线实践。
- Learn Intermediate html and css(The Odin Project):The Odin Project 课程体系中的"中级 HTML 与 CSS"单元。
- LiveCode:功能较完整的在线前端 IDE,支持多文件与实时预览。
- Online HTML / CSS Editor(CodeChef):CodeChef 的 HTML/CSS 在线编辑器入口。
- Online HTML Editor(Programiz):Programiz 的 HTML 在线编辑器,适合边学边试标记语言。
- Play Code:在线前端代码编辑器,支持自动补全与实时运行。
- SoloLearn:SoloLearn 的 Web/CSS 练习入口。
- Tailwind Play:Tailwind CSS 官方在线试验台,适合快速验证原子类组合效果。
Ionic
- StackBlitz(Ionic fork 模板):StackBlitz 一键生成的 Ionic 在线工程,浏览器内即可跑移动端混合应用。
Java
- Ada Face:Adaface 提供的在线 Java 编译器,适合面试代码测试场景。
- InterviewBit - Online Java Compiler IDE:InterviewBit 的 Java 在线编译器 IDE。
- JDoodle - Online Java Compiler Advanced IDE:JDoodle 的进阶版 Java 在线 IDE。
- JDoodle - Online Java Compiler IDE:JDoodle 的标准 Java 在线编译器 IDE。
- NextLeap:NextLeap 的 Java 在线编译器,面向编程练习。
- OneCompiler:OneCompiler 的 Java 在线编译入口。
- Online Java Playground(LabEx):LabEx 提供的 Java 在线练习场。
- OnlineGDB:OnlineGDB 的 Java 在线编译与调试环境。
- Programiz - Online Java Compiler:Programiz 的 Java 在线编译器,附示例代码便于入门。
- repl.it:老牌在线 REPL/IDE 平台,条目注明其 Java 环境还包含独立的 Java/Swing 支持,适合跑 GUI 小程序。
- SoloLearn:SoloLearn 平台上的 Java 练习入口。
JavaScript
- CodeHS:面向教学场景的 JS 沙盒(sandbox),适合课程中随堂实验。
- CodePen:前端代码片段社区,JS 与 HTML/CSS 联动的经典练习场。
- CodeSandbox.io:功能完整的在线 Web IDE,适合创建完整的前端/全栈项目。
- Esfiddle:轻量 ECMAScript 片段试验台,适合验证 ES 新特性。
- Grasshopper:Google 出品的移动端 JS 学习应用,条目注明 (Google account required),需 Google 账号登录。
- Hello Website - (Glitch):Glitch 一键创建的网页工程模板,条目注明 (Account requested, not required)——建议注册但非强制。
- InterviewBit - Online JavaScript Compiler IDE:InterviewBit 的 JS 在线编译器 IDE。
- JavaScript Online Compiler(Programiz):Programiz 的 JS 在线编译器。
- JSBin:老牌前端代码片段分享站,支持 HTML/CSS/JS 与 Console 面板。
- JSFiddle:经典前端试验台,常用于在社区提问时附上可复现的最小示例。
- Liveweave(作者 Amit Sen):面向设计师的 HTML/CSS/JS 实时编写工具。
- OneCompiler:OneCompiler 的 JavaScript 在线编译入口。
- PlayCode:支持即时运行与代码提示的 JS 在线编辑器。
- Plunker:前端原型与协作试验平台,适合快速搭建并分享可运行示例。
- SoloLearn:SoloLearn 的 Web/JavaScript 练习入口。
AngularJS(子分类)
原文档此处以
See also … Angular双向提示读者 AngularJS 与 Angular 是两套体系,别跑错入口。
- StackBlitz(AngularJS fork 模板):StackBlitz 一键生成的 AngularJS 在线工程,适合维护遗留项目时快速验证。
Kotlin
- Kotlin(play.kotlinlang.org):Kotlin 官方在线练习场,可运行标准库与协程示例。
- Kotlin Playground(developer.android.com):Android 开发者官网提供的 Kotlin 试玩环境,适合练习 Android 相关 Kotlin 代码。
- SoloLearn:SoloLearn 平台上的 Kotlin 练习入口。
Kubernetes
- Play with Kubernetes:免费在线 Kubernetes 沙盒,可临时启动多节点集群,适合练习 kubectl 与部署实验。
Linux
- Online Linux Terminal and Playground(LabEx):LabEx 提供的在线 Linux 终端练习场,无需本地虚拟机即可练命令。
Multiple Languages(多语言)
- CodeChef:CodeChef 在线 IDE,支持主流语言,与其竞赛题配套使用。
- GeeksforGeeks:GeeksforGeeks 在线 IDE,方便配合其海量题解练习。
- Ideone:支持数十种语言的在线编译/运行服务,适合跨语言快速验证。
- OnlineGDB:多语言在线编译+调试平台,是"要断点调试时"的通用选择。
.NET
- .NET Fiddle:在浏览器中编写并运行 C#/F#/VB.NET 代码的练习场,支持 NuGet 引用,适合验证 .NET API 行为。
Nim
- Nim Playground(nim-lang.org):Nim 官方在线练习场,零安装体验这门系统级新语言的编译与运行。
NodeJS
- Hello Node - (Glitch):Glitch 的 Node 快速启动模板,条目注明 (Account requested, not required)。
- Ideone:Ideone 的多语言服务中的 Node.js 入口。
- MDX Playground(mdxjs.com):MDX(Markdown + JSX)官方练习场,适合验证文档/博客组件语法。
- SoloLearn:SoloLearn 平台上的 Node.js 练习入口。
OCaml
- OCaml Playground(ocaml.org):OCaml 官网的在线练习场,适合体验类型推导与函数式特性。
- Try OCaml(try.ocamlpro.com):OCamlPro 提供的网页版 OCaml 交互环境。
Perl
- Perl(tryperl.pl):Perl 在线试玩入口,适合快速验证正则与脚本片段。
PHP
- Codepad(PHP 语言入口):Codepad 在线执行服务,支持以 PHP 模式运行代码。
- ExtendsClass:ExtendsClass 的 PHP 在线工具集入口,包含执行与调试能力。
- Online PHP editor(3v4l):3v4l 可对比 PHP 多个版本下的运行结果,是排查版本差异的利器。
- PHPHub:中文 PHP 社区提供的在线沙盒(sandbox)入口。
- PHPTester:轻量 PHP 在线测试工具。
- SoloLearn:SoloLearn 平台上的 PHP 练习入口。
Python
- Codepad(Python 语言入口):在线执行 Python 代码片段,适合快速验证。
- InterviewBit - Online Python Compiler IDE:InterviewBit 的 Python 在线编译器 IDE。
- Online Python:简洁的在线 Python 运行页面。
- Online Python Compiler(Programiz):Programiz 的 Python 在线编译器,附教程级示例。
- Online Python Compiler(Tutorialspoint):Tutorialspoint 的 Python 在线编译器。
- OnlineGDB:OnlineGDB 的 Python 在线编译与调试环境,支持断点。
- Pynative.com:Python 教程站内置的在线代码编辑器。
- Python Playground(Programiz PRO):Programiz PRO 的 Python 练习场,面向付费进阶功能(基础功能免费可用)。
- Python Trinket:Trinket 在线 Python 运行器,常用于教学嵌入。
- Python Tutor:把 Python 执行过程逐步可视化的经典教学工具,适合初学者理解变量与调用栈。
- Python.org Shell:Python 官网提供的在线 Shell,最"官方"的快速验证入口。
- Repl.it - NiceDualPoint:repl.it 上一个预设好的 Python 项目示例,可直接 fork 修改运行。
- SoloLearn:SoloLearn 平台上的 Python 练习入口。
- Try Python(作者 Jakub T. Jankiewicz):浏览器端 Python 交互环境,适合随手试语法。
R
- myCompiler:myCompiler 平台的 R 在线编译器。
- R-Fiddle:R 语言在线代码片段执行台,适合快速验证统计绘图脚本。
- Rextester:Rextester 的多语言服务中的 R 在线编译入口。
- SoloLearn:SoloLearn 平台上的 R 练习入口。
React
- CodeSandbox.io:创建完整 React 项目式沙盒的首选入口之一。
- Hello React - (Glitch):Glitch 的 React 快速启动模板,条目注明 (Account requested, not required)。
- jscomplete:面向 React 教学的在线 playground,适合跟练组件示例。
- PlayCode:PlayCode 的 React 在线编译入口。
- StackBlitz(React fork 模板):StackBlitz 一键生成 React 工程,秒级启动 Vite 开发服务器。
Redis
- Try Redis:Redis 官方提供的网页版交互教程,浏览器内直接敲 Redis 命令学习数据结构与命令语法。
Rego
- Rego Playground(Open Policy Agent):OPA 官方 Rego 语言练习场,适合编写与测试策略即代码(Policy as Code)规则。
Regular Expressions(正则表达式)
- iHateRegex(作者 Geon George):把正则"翻译"成通俗解释的可视化站点,内置 playground 逐字符高亮匹配,适合怕正则会话的初学者。
- Pyrexp(作者 Cyril Bois):Python 风格正则的在线可视化调试器,逐字符展示匹配路径。
- Regex Tester and Debugger Online - Javascript, PCRE, PHP(Dan's Tools):同时支持 JavaScript/PCRE/PHP 三种风格的正则在线测试与调试台。
- Regex101: build, test, and debug regex(作者 Firas Dib):社区公认好用的正则构建/测试/调试站,支持分步解释匹配过程。
- Regexper(作者 Jeff Avallone):把正则表达式渲染成铁路图(结构图)的可视化工具。
- RegExr: Learn, Build, & Test RegEx(GSkinner Inc.):支持学习资料、速查表与实时测试的正则练习场。
Ruby
- Codepad(Ruby 语言入口):在线执行 Ruby 代码片段。
- SoloLearn:SoloLearn 平台上的 Ruby 练习入口。
- TryRuby(try.ruby-lang.org):Ruby 官方风格的网页交互教程,浏览器内直接学习基础语法。
Rust
- Codapi:Codapi 提供的 Rust 练习场。
- Rust Explorer:可对比 Rust 不同版本/编译目标输出的在线试验台。
- Rust Playground(play.rust-lang.org):Rust 官方在线练习场,支持 Cargo 依赖与分享链接,是验证 Rust 代码的标准入口。
- Rustfinity:Rust 在线练习平台,以 playground 形式配套闯关练习。
RxJS
- StackBlitz(RxJS fork 模板):StackBlitz 一键生成的 RxJS 工程,适合验证操作符组合与响应式流。
Scala
- JDoodle:JDoodle 的 Scala 在线编译入口。
- Scastie(scastie.scala-lang.org):Scala 官方社区常用在线练习场,支持多文件与依赖,适合试验 Scala 2/3 特性。
Scratch
- Scratch.mit.edu:Scratch 官方创作平台,积木式编程,适合少儿编程与入门教学。
Solidity
- ETH.Build(作者 Austin Thomas Griffith):以可视化方式教学以太坊/智能合约底层(ABI、存储等)的互动工具。
- Remix IDE(ethereum.org):以太坊官方生态最常用的 Solidity 在线 IDE,可直接编写、编译、部署合约到测试网。
SQL
- Extends Class:ExtendsClass 提供的 SQLite 浏览器式在线工具,可在网页中建表查数据。
- Online SQL Editor(Programiz):Programiz 的 SQL 在线编辑器,内置示例表便于练习查询。
- Online SQL Editor(Tutorialspoint):Tutorialspoint 的 SQL 在线编译器。
- Oracle Live SQL:Oracle 官方在线 SQL 环境,可练习 Oracle SQL 与 PL/SQL,含官方教程脚本。
- Practice SQL:专注 SQL 练习的站点,提供分难度查询题目。
- SQL Server Online Editor & Compiler(OneCompiler):OneCompiler 的 SQL Server 在线编辑器。
- SQLFiddle:老牌在线 SQL 试验台,支持多种数据库方言,是验证建表与查询语句的经典工具。
- SQLite Online:浏览器内运行 SQLite 的在线工具,适合随手试验 SQLite 语法。
Svelte
- StackBlitz(Svelte fork 模板):StackBlitz 一键生成的 Svelte 在线工程。
- Svelte REPL(svelte.dev/repl):Svelte 官方 REPL,实时预览组件运行结果,是学习 Svelte 的标准入口。
Swift
- Online Swift Playground:网页端 Swift 运行环境,适合没有 Mac 时练习 Swift 基础语法。
- SoloLearn:SoloLearn 平台上的 Swift 练习入口。
TypeScript
- Playground(typescriptlang.org):TypeScript 官网的 Playground,可实时查看类型推断与编译产物。
- StackBlitz(TypeScript fork 模板):StackBlitz 一键生成的 TypeScript 工程。
- TypeScript: TS Playground:TypeScript 官网独立页面的 TS Playground 入口。
Angular(子分类)
原文档同样以
See also … AngularJS提示读者区分两个框架版本。
- Plunker:适合快速搭建并分享 Angular 可运行示例的在线平台。
- StackBlitz(Angular fork 模板):StackBlitz 一键生成 Angular 工程,是社区公认的 Angular 在线 Demo 首选。
V
- V Playground(play.vlang.io):V 语言官方在线练习场,适合体验这门新兴系统编程语言的语法与编译速度。
Vim
- Vim Adventure(作者 Doron Linder):把 Vim 键位教学做成冒险游戏,适合零基础玩家记忆移动与编辑命令。
- Vim Genius(作者 Vic Ramon、Rye Mason):循序渐进的 Vim 练习网站,适合按等级训练 muscle memory。
五、与同系列清单的分工:别把 Playgrounds 和 Tutorials / Problem Sets 混为一谈
在原文档所属仓库中,Playgrounds 只是"书外资源"的一部分。理解它与其他清单的边界,才能避免选错入口:
- Interactive Tutorials(交互式教程),见 more/free-programming-interactive-tutorials-en.md:按 docs/CONTRIBUTING.md 的定义,它是"让用户输入代码或命令并评估结果"的教学型网页(评估 ≠ 评分)。而 Playgrounds 更强调"写完、编译/运行、分享片段,鼓励 fork 动手改"。两者偶有重叠——例如 Try Haskell 同时被两个清单收录(可在 free-programming-playgrounds.md 与 free-programming-interactive-tutorials-en.md 中交叉检索到),Flexbox Froggy、Grid Garden、Learn Git Branching 这类"游戏化教学"资源同样横跨两处。
- Problem Sets & Competitive Programming(问题集与竞赛),见 more/problem-sets-competitive-programming.md:用于"通过解决难易不同的问题来评估编程技能",通常带判题与排名;Playgrounds 一般不做评判,只负责"跑起来给你看"。
- Cheat Sheets(速查表),见 more/free-programming-cheatsheets.md:提供语法速查,与 Playgrounds 是"查表"与"试跑"的互补关系。
因此,一套典型自学动线可以是:用 Cheatsheets 查语法 → 用 Interactive Tutorials 跟做并理解 → 用 Playgrounds 自由改写验证 → 用 Problem Sets 检验水平。
六、可靠性从何而来:这套清单的维护与质量控制机制
如果你想在文章或实践中引用这套清单,以下机制决定了它的可信边界(均可从仓库文档验证,不含任何推测性宣传):
- 人工审核 + 明确规则:docs/CONTRIBUTING.md 明确要求只收录真正免费的资源、优先权威来源、一律使用作者官网优于第三方站点、剔除 Dropbox/Google Drive 等文件托管平台与短链。
- CI 自动校验:CONTRIBUTING 与 README 均提到 GitHub Actions 会运行测试,确保列表字母序正确且格式符合规范(空行、标题层级、锚点等均有明文约束)。
- 锚点与署名惯例:特殊符号分类用 HTML 锚点保证跳转;条目尽量标注维护者/作者,方便读者评估资源来源;账号要求等使用前提用括号显式标注。
- 多语言平行维护:英文主清单与中文 more/free-programming-playgrounds-zh.md、德文 more/free-programming-playgrounds-de.md 平行存在,说明目录由社区持续维护,而非一次性产出。
使用边界提示:由于清单本质上是"经人工审核的链接目录",个别第三方服务(尤其标注 account/Google account 的条目,以及免费的在线沙盒)可能随时间调整策略;引用时建议回到 more/free-programming-playgrounds.md 核对最新入口,并以各资源官网的当前条款为准。
七、小结
more/free-programming-playgrounds.md 是 free-programming-books 仓库中一份高密度、经过社区持续维护的"免费编程练习场"索引:从 Algorithms、Git、Regular Expressions 等可视化学习区,到 C/C++/Java/Python 等主流语言的零安装在线 IDE,再到 Go/Rust/Elm/Svelte 等官方 REPL 与 Docker/Kubernetes/Linux/DevOps 沙盒,它覆盖了 50 余个技术主题、近 200 个可直接上手的在线环境。把它与仓库同目录的交互式教程、问题集、速查表配合使用,你就能在"零本地安装"的前提下完成从学语法、看演示、动手改到自我检验的完整学习闭环。
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0624
Hy4-previewHy4 preview 是由腾讯混元团队研发的新一代混合专家(MoE)旗舰模型。模型总参数量 770B,每个 token 激活 49B,主干共包含78层,第一层采用标准 FFN,其余 77 层均为 MoE 结构,每层包含 256 个路由专家与 1 个共享专家,每个 token 激活 top-8 路由专家及共享专家。主干之外原生内置 1 层 MTP(总参数量 10B,激活 0.7B)以支持投机解码。Python00
GLM-5.3GLM-5.3 与 GLM-5.2 使用相同的基座模型——所有提升均来自后训练。与 GLM-5.2 相比,它在复杂编程和长程任务上的表现显著提升。Jinja00
GLM-5.3-FlashGLM-5.3-Flash (320B-A18B),是GLM-5系列的首个原生多模态模型。320B总参数,能力超过GLM-5.2Jinja00
Spark-X2.5-4BSpark-X2.5-4B 旨在让强大的 AI 更实用、更高效、更易获得。在广泛日常任务中表现强劲,涵盖对话、写作、翻译、推理、编码、工具调用以及智能体工作流,并在同等规模的开源模型中取得领先成绩。Spark-X2.5 将面向效率的架构与最高 1M tokens 的原生上下文窗口相结合,并支持 200 多种语言。Python00
Spark-X2.5-1.7BSpark-X2.5-1.7B 旨在让强大的 AI 更加实用、高效且易于获取。这些模型在广泛的日常任务中表现出色,涵盖对话、写作、翻译、推理、编程、工具调用和智能体工作流,并在同等规模的开源模型中取得领先结果。Spark-X2.5 将面向效率的架构与最高 1M tokens 的原生上下文窗口相结合,并支持 200 多种语言。Python00