Hacker News 中文摘要

RSS订阅

Λ Snap:面向儿童和成人的友好编程语言,专为计算机科学学习打造 -- Λ Snap – An inviting programming language for kids and adults for CS study

欢迎来到 Snap!(Snap!)。Snap!是一种面向孩子与成人、广泛友好的编程语言,能够吸引不同年龄段的人接触编程。它同时面向儿童和成年人,提供容易上手的操作形式,使各类使用者可以在同一环境中动手尝试,编写并运行自己设计的程序指令,体验逻辑构建与代码执行的过程。

正文

Snap! - 自己动手构建积木

Snap! - 低门槛(展示花朵)

Image 8: OEIStreams thumbnail

Image 9: Wordle (Final Version) thumbnail

Image 10: vid maker thumbnail

Image 11: Unlock Game thumbnail

Snap! - 宽墙壁

Image 12: farbzentren thumbnail

Image 13: Ultrafast 3D Floor on snap thumbnail

Image 14: Tempo Terror thumbnail

Image 15: Memory Match: Meow Edition thumbnail

Image 16: Animation Project - Song: Its Raining Tacos thumbnail

Snap! - 无天花板

Image 17: snake thumbnail

Image 18: Mayos Kitchen thumbnail

Image 19: Cloud Platformer thumbnail

Image 20: Game thumbnail

Image 21: 2025to2026 thumbnail

欢迎来到 Snap!

Image 22: flappy bird thumbnail

Image 23: Battle in the rain thumbnail

Snap! 是一款对儿童和成人都十分友好的编程语言,同时也为深入研习计算机科学提供了平台。

立即运行 示例项目 学习 Snap!

精选

Snap!Con 2025 的项目

音乐

模拟

分形

探索更多合集

评论

讨论对 Snap! 的定位大体认可——它是 Scratch 的加强版,甚至被看作"带积木语法的 Scheme"——但分歧集中在两点:它究竟算不算够格的严肃编程入门,还是为表达力牺牲了稳定性与可用性;更根本的怀疑是,任何积木环境都只教得会编程,教不会软件工程。

认为 Snap! 是 Scratch 的加强版,够格做严肃的编程入门

  • 官方定位就点明了差别:第一类列表、第一类过程、第一类续延,让它足以承担高中与大学的计算机科学入门课(较多人)
  • 它也常被概括为"有 Logo 式易学、又有 Scheme 威力的积木语言",同时保留 Scratch 的舞台与海龟绘图,还跑在浏览器里;用它给小孩教 Scheme,比直接上文本编辑器容易得多(较多人) > Snap! 就是换了视觉积木语法的 Scheme,只是部分函数改了更好学的名字。(@DonHopkins)

认为 Snap! 脆弱难调试,团队重加功能、轻打磨

  • 改个变量名或积木名,调用处就可能留下"洞",报不报错全看情况,甚至静默失败;整体比 Scratch 更不可靠,团队看起来更急着堆新功能,而不是把已有部分做稳(较多人)
  • 有用户第一次尝试放置"播放指定赫兹声音"的积木,就在 Android Chrome 上撞上类型错误(少数人) > 改名之后调用处会出现"洞",系统有时报错有时默默吞掉。(@sinuhe69)

认为积木环境教得了编程,教不了软件工程

  • 图形化环境能让人学到编程,但完全学不到软件工程,这正是它让人提不起兴趣的根源(较多人) > 你能从中学到编程,但绝对学不到软件工程。(@andrewla)

认为画布式布局在项目变大后变成导航噩梦

  • 积木按创建顺序散落在画布上,往往毫无逻辑,找东西和把握全貌都很难,规模一大就成了导航问题;Snap! 对初学者比 Scratch 吓人,可等到它面向的大龄学生阶段,积木原本的优势又已经消失。有人建议引入更传统的 IDE 或文件式结构来组织代码块(较多人)

认为编辑器本身成了瓶颈,但这条路确实能带人入行

  • 有程序员从 Scratch 起步,项目做到约一万个积木后编辑器开始卡顿,大量时间花在绕开限制上,最终自己动手写了 goboscript,如今已入行做软件工程师(较多人) > Scratch 教会了我编程,也顺带让我学到了一点真实工程。(@aspizu)

认为大学一样有 NIH 综合症

  • 重复造轮子不是大厂专属,高校也同样热衷于自研而非采用现成方案(少数人)

认为更简单、更黏人的替代品才是真正对手

  • 有人带侄子玩 Scratch 和 Snap!,发现他们上的本地课程早已从 Snap 换成微软的 MakeCode,理由是更简单、孩子更买账(少数人)

有人直接反问现在还该不该教孩子编程

  • 该评论只有一句反问,未展开论证,但它反映出讨论中对儿童编程教育价值的一丝怀疑(少数人)

有价值的补充

  • Snap! 支持完整的键盘操作:看到作者 Jens Mönig 本人演示时才有人意识到,程序可以完全不碰鼠标地创建和编辑。
  • Snap!Con2023 上讨论过几类扩展:用积木定义语法与可参数化词汇表(例如描述植物的种子、根、茎、叶、花,再交给刺绣机或海龟绘图);Ken Kahn 则讨论把 ChatGPT 一类模型接进 Snap!,配合语音合成与识别编排角色对话,相关项目是 eCraft2Learn。
  • 块语言在 LLM 时代有结构性劣势:JavaScript 同时被人和模型熟知,而积木程序缺乏高效且忠实的文本表示,直接导出 XML 或 JSON 存档既浪费 token 又难被理解——模型并不像懂 JavaScript 那样懂存档格式。Snap! 可以借与 Scheme 的等价性做双向转换,但 Scheme 的普及度远不如 JavaScript;Logo 本质上是不带括号的 Lisp,解析时必须知道函数参数个数,存在歧义,做序列化不如 Scheme 合适。
  • 讨论里有人想用 Snap! 驱动 LEGO WeDo,以替代官方已废弃、连 iOS 应用都已失效的软件,但没有得到回应。
  • 一条通用原则被单独提出:凡是打不出来的名字,迟早都会成为问题。