4

Snap! 使用笔记: 将 Snap! 用作个人计算环境

 1 year ago
source link: http://wwj718.github.io/post/%E7%BC%96%E7%A8%8B/snap-personal-computing/
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

Snap! 使用笔记: 将 Snap! 用作个人计算环境

2023-03-01

Snap-personal-computing.png

看待编程的视角

个人计算社区(一个观念社区而非实际社区)和主流软件领域的分歧是观念层面的, 技术差异只是观念差异的结果。主流领域认为编程是给计算机一组指令解决某些问题, 从这个角度看, 唯一有价值的东西是结果, 一个软件只有解决某个问题才有趣, 而编程本身不有趣, 因此它应该交给专业人士来做, 其他人最好可以忽视它。个人计算社区认为编程是一种表达和探索思想的方式, 软件开发的过程可以视为理解和记录知识的过程, 其结果顺便能够运行在计算机上。制作出软件与解决问题只是知识健全后的结果, 但不是最重要的结果, 个人借助计算机更好的思考才是。人是目的, 软件是强大思想的副产品。

选择 Snap! 的原因

采用个人计算视角之后, 我逐渐远离了主流计算机生态, 开始选择个人计算社区的编程环境, 以下是我采用过的一些个人计算环境:

  • Scratch
  • Pharo
  • Squeak
  • Etoys
  • Lively

最近,我开始将 Snap! 用作主要的计算/编程环境。

相比于我之前用过的个人计算环境, Snap! 有一些突出优点,以下我选择它的主要原因:

  • 运行在浏览器里: 由于浏览器正成为新的操作系统, 基于浏览器的系统有许多好处, 它能够免费得到整个生态努力的成果。由于 Web 生态的开放性, 能够轻松与其他事物互操作。
  • 从 Lisp 那里继承了处理列表的强大能力; 从 Smalltalk 那里继承了 liveness 的特质。
  • 出色的可扩展性: Scratch3.0 也运行在浏览器里, 我一度将其用作日常计算的环境, 但其可扩展性远不如 Snap!, 扩展 Scratch 是一件相当不愉快的事, 这与其糟糕的架构决策有关,我在这个分享里做了讨论。 Snap! 让我可以直接在最终用户环境里扩展它,而不是进入"下一层", 简单而愉快。
  • 新功能的更新和 bug 的修复, 都很积极, 有活跃的社区: 这是我选择 Snap! 而放弃 Lively 的原因。

当然, 选择 Snap! 另一个主要原因是, 我们在 Dynaverse 中使用它!

很早就知道 Snap!, 但一直没有深入了解, 深入了解后, 发现它出色程度远远超出我的预期! 这与我采用 MicroBlocks 的经历类似, 后悔三过其门而不入。

我认为目前最好的图形化硬件编程环境是 MicroBlocks, 而最好的图形化软件编程环境是 Snap! 。

日常计算/编程的需求

以下是我日常计算/编程的主要需求:

  • 探索 Dynaverse: Dynaverse 构建在浏览器里, Snap! 及其内置的JavaScript function 是非常棒的研究工具。
  • 系统编程: 与本地及远程操作系统交互, 为了达成这个目标, 我构建了 Python function
  • 探索数据: 我之前使用 Jupyterlab, Snap! 给了我更多的交互性,更少的心智负担。
  • 探索想法: 我之前喜欢在 Scratch 探索想法, Scratch 是探索和表达想法的绝佳媒介。在 CodeLab 的时候, 每当我想与同伴分享 idea, 总是习惯性地打开一个 Scratch 项目, 然后着手以可视化的方式展示想法。我目前依然保留这个习惯, 每当我模模糊糊察觉到一个 idea, 喜欢在 Scratch 里捕捉和探索它。甚至之前的演讲稿也是在 Scratch 制作的。最近我开始在 Snap! 里做这些事, 它比 Scratch 给予我更多支持。
  • 理解算法和数据结构: Snap! 是我目前发现的最佳游乐场! 我最近通过它克服了对递归的恐惧。 我也非常喜欢使用它向新手解释编程语言中的概念, 它让抽象的概念和计算的过程被看见, 极大地提升了可理解性。

文章作者 种瓜

上次更新 2023-03-01

上一篇 下一篇


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK