1

Snap! 使用笔记: 从 Scratch 进入 Snap! 的时机

 1 year ago
source link: http://wwj718.github.io/post/%E7%BC%96%E7%A8%8B/from-scratch-to-snap/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

低门槛、宽围墙、高天花板 – 《终身幼儿园》

如果你是一位编程新手, Scratch 或许是最好的选择。 Scratch 拥有庞大的社区、友好的社区文化, 以及丰富而优质的学习资源。

Scratch 团队对于引入新功能非常克制, 这保持了 Scratch 的简单性, 对新手非常友好; 但也付出了代价: 没有持续迭代优化和解决一些棘手问题,以至于社区里许多老用户不满。

如果你是重度 Scratch 用户, 经常撞到 Scratch 的天花板, Snap! 可能是你下一步的理想选择。

Snap! 保留了 Scratch 的低门槛(比 Scratch 要高一些)和宽围墙,但试图拆除 Scratch 的天花板

在 Scratch 里想要的东西

作为 Scratch 重度用户, 在 Scratch 里编程时, 你有时可能会想要下列这些东西:

  • 暂停/恢复程序
  • 支持调试(断点积木)
  • 自定义舞台大小
  • 支持函数返回值
  • 携带数据的广播积木
  • 使克隆体可见
  • 与网络交互
  • 可编程的角色服装
  • 增强自定义积木(更多类型(reporter…)、下拉菜单、输入类型、指定类别…)
  • 原地更换积木
  • 强大而简单的可扩展机制
  • 自省和元编程能力

Scratch Addons/turbowarp 以 hack 的方式实现了愿望清单的一部分, 但限于 Scratch 的架构设计, 有些愿望可能永远无法实现(诸如 嵌套列表, 会破坏兼容性)。

Snap! 实现了上述愿望清单的所有条目,以及更多你一旦使用就会觉得哇塞的功能 !

如果你正在做以下这些事情, 你的头可能在 Scratch 的天花板上磕的有点疼:

  • 试图理解 Scratch 社区里的大型游戏: 难以理解,代码可读性差, 背后的原因是 Scratch 缺少合适的结构来组织代码和进行抽象,导致了代码杂乱难读。
  • 制作大型项目(诸如一部动画片): Scratch 不支持暂停和恢复程序, 这导致你经常需要一遍遍从头播放项目来进入 bug 中, 此外,你也无法进行单步调试
  • 在 Scratch 里学习和复现一些复杂算法: Scratch 的列表不支持嵌套,这导致许多数据结构难以制作; Scratch 的自定义积木是 command 类型(没有返回值), 这也造成了许多限制。
  • 你想编写插件来扩展 Scratch 的能力(像我之前在CodeLab Adapter里做的事情): 在 Scratch “下一层” 编写 JavaScript 代码非常臃肿、低效, 最要命的是没有乐趣! 这是 Scratch3.0 糟糕的底层设计导致的(Scratch 初代代码要比 Scratch3.0 优秀许多,让人费解)

如果你恰好在做这类事情,或许正是从 Scratch 进入 Snap! 的好时机。


Recommend

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK