Snap! は子どもから大人まで、本格的なCS研究にも使えるプログラミング言語
Λ Snap – An inviting programming language for kids and adults for CS study

UC BerkeleyとSAPが提供するSnap!は、ブロックを組み合わせてプログラムを作るビジュアル言語。子どもにも扱いやすい「低い床」から、ファーストクラス手続きや継続といった高度な概念までカバーする「天井なし」の設計で、本格的なコンピュータサイエンス教育に使える。Wordleや3Dシミュレーション、ニューラルネットワークのデモまで、コミュニティによる多彩なプロジェクトが公開されている。
Snap! は、子どもにも大人にも広く親しみやすく、同時にコンピュータサイエンスの真剣な研究のためのプラットフォームでもあるプログラミング言語です。
HNでの議論
64- aspizu
Scratchは私が初めてプログラミングを学んだ方法です。それを使ってどんどん野心的なプロジェクトを作っていましたが、ある時点でエディタ自体が主な戦いの相手になりました。プロジェクトが約10,000ブロックに達すると、ひどく動作が重くなり、Scratchの限界を回避するためのエンジニアリングに多くの時間を費やすことになりました。
それが最終的にgoboscriptを作るきっかけになりました:https://github.com/aspizu/goboscript
私はScratchのおかげでキャリアを築いたプログラマーの一人で、今年、https://ente.com にソフトウェアエンジニアとして入社しました。Scratchは私にコーディングを教えてくれ、間接的には実際のエンジニアリングも少し教えてくれました。
- sinuhe69
SnapはScratchよりも表現力が高く強力になるように設計されています。しかし、デバッグが非常に苦痛だと感じます。たとえば、変数やブロックの名前を変更すると、呼び出し側に「穴」ができることがありますが、システムはエラーを報告できる場合もあれば、できずにサイレントに失敗することもあります。Snapは私の意見ではより不安定で、チームは既存の機能を磨いたり、システムをより堅牢で安定させたりするよりも、新機能を追加することに熱心なようです。
- Dwedit
タイプできない名前は問題になるだろう。
- andrewla
私はこのようなグラフィカルなプログラミング環境やScratchがあまり好きではありませんが、なぜそれらをそんなに魅力的に感じないのか、はっきりと言葉にできません。
大きな理由の一つは、ある程度はこれでプログラミングを学べることです。しかし、これでソフトウェアエンジニアリングを学ぶことは絶対にできません。
- stymaar
Scratchとの違いを知りたい人のために、aboutページに書いてあります:
> Snap!について
> Snap!(旧BYOB)は、ビジュアルでドラッグアンドドロップのプログラミング言語です。これはScratch(MIT Media LabのLifelong Kindergarten Groupのプロジェクト)を拡張して再実装したもので、自分自身のブロックを構築できます。また、ファーストクラスの[1]リスト、ファーストクラスのプロシージャ、ファーストクラスの継続[2]を備えています。これらの追加機能により、高校生や大学生向けの本格的なコンピュータサイエンス入門に適しています。