惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
Tailwind CSS Blog
大猫的无限游戏
大猫的无限游戏
L
LINUX DO - 热门话题
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
雷峰网
雷峰网
aimingoo的专栏
aimingoo的专栏
博客园_首页
MongoDB | Blog
MongoDB | Blog
V
V2EX
GbyAI
GbyAI
量子位
Microsoft Azure Blog
Microsoft Azure Blog
有赞技术团队
有赞技术团队
G
Google Developers Blog
云风的 BLOG
云风的 BLOG
B
Blog
Microsoft Security Blog
Microsoft Security Blog
S
SegmentFault 最新的问题
O
OpenAI News
N
News and Events Feed by Topic
博客园 - Franky
爱范儿
爱范儿
Forbes - Security
Forbes - Security
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
V2EX - 技术
V2EX - 技术
Application and Cybersecurity Blog
Application and Cybersecurity Blog
N
News and Events Feed by Topic
N
News | PayPal Newsroom
Schneier on Security
Schneier on Security
Cloudbric
Cloudbric
Security Archives - TechRepublic
Security Archives - TechRepublic
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Recent Commits to openclaw:main
Recent Commits to openclaw:main
人人都是产品经理
人人都是产品经理
P
Privacy International News Feed
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
B
Blog RSS Feed
阮一峰的网络日志
阮一峰的网络日志
D
DataBreaches.Net
Last Week in AI
Last Week in AI
罗磊的独立博客
Spread Privacy
Spread Privacy
Recent Announcements
Recent Announcements
The Cloudflare Blog
Google DeepMind News
Google DeepMind News
AWS News Blog
AWS News Blog
The Register - Security
The Register - Security
Y
Y Combinator Blog
J
Java Code Geeks
I
Intezer

夜行人

回家路上 第一期的直播演示项目 震动检测器 正能量 在线参观CodeLab Neverland 发布 CodeLab Adapter 3.3.1 DynamicTable 之 纸糊方向盘 CodeLab DynamicTable: 一个可实施的技术方案 CodeLab Insight 发布 Alpha 版 情人节 Home Assistant 周报 && IoT 周报 (02) Joplin: 关注隐私的 Evernote 开源替代软件 浏览器的未来与 Web 传感器 Home Assistant 周报 && IoT 周报 (01) 百宝箱(01) 论自由 介绍 WebThings Home Assistant 周报 && iot 周报 (00) 百宝箱(00) 毛姆读书心得 传世之作 周末徒步 CodeLab Adapter ❤️ Jupyter/Python 航班 躲雨 夏令营途中 [译]思想--作为一种技术 The future of coding 美国之行 三门问题的程序模拟 从Python转向Pharo https://blog.just4fun.site/post/iot/iot-open-source-projects/ Python异步编程笔记 https://blog.just4fun.site/post/iot/iot-open-source-hardware-community/ 万物积木化开发者社区 CodeLab ❤️ Blender Scratch3技术分析之云变量 API(第7篇) [译]对管道(Pipes)的偏爱 [译]提出正确的问题比得到正确答案更重要 蓝牙设备与Scratch3.0 创建你的第一个Scratch3.0 Extension Scratch3技术分析之项目内部数据(第6篇) Scratch3技术分析之社区 API(第5篇) Scratch3技术分析之User API(第4篇) Scratch3技术分析之项目主页API(第3篇) Scratch3技术分析之静态资源API(第2篇) Scratch3.0、micro:bit与Windows7 https://blog.just4fun.site/post/iot/zerynth-vs-micropython/ 核聚变、方所与半宅空间 可视化编程为何是个糟糕的主意 codelab.club周末聚会 关于codelab.club '下一件大事'是一个房间 Hungry Robot - Eat everything 编程作为一种思考方式 今日简史 史蒂夫·乔布斯传 罗素自选文集 https://blog.just4fun.site/post/edx/tianjin-scratch-ai/ https://blog.just4fun.site/post/edx/richie-cms-openedx/ 徒步武功山 WebUSB与micro:bit 积木化编程与3D场景 夜宿武功山顶 scratch3-adapter接入优必选Alpha系列机器人 https://blog.just4fun.site/post/edx/video-migration-note/ scratch3-adapter重构笔记 https://blog.just4fun.site/post/edx/edx-community-members/ 两种硬件编程风格的比较 使用micro:bit自制PPT翻页笔 柏拉图对话集 scratch3.0 + micro:bit 七月电影放映计划 非营利组织的管理 Screenly--用树莓派让任何屏幕变为可编程的数字标牌 以最佳实践开始你的Django项目 micro:bit与事件驱动 为Scratch3.0设计的插件系统(上篇) OCR应用一例 近两年读过的一些好书 blockly开发之使用python驱动浏览器中的turtle(2) 牛顿新传 文学理论入门 逻辑的引擎 人生的意义 blockly开发之生成并运行js代码(1) blockly开发之hello world(0) micro:bit使用笔记 神器之Termux https://blog.just4fun.site/post/iot/micropython-notes/ Cozmo what is this Scratch的前世今生 下段旅程 我行在远方 爆裂 途中杂记 https://blog.just4fun.site/post/edx/open-edx-startup/ cozmo系列之入门 - 有性格且可编程的机器人 PaperWeekly开发笔记 创业二三事
Snap! 使用笔记: 将 Snap! 用作个人计算环境
种瓜 · 2023-03-01 · via 夜行人

文章目录

看待编程的视角

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

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

  • 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! 是我目前发现的最佳游乐场! 我最近通过它克服了对递归的恐惧。 我也非常喜欢使用它向新手解释编程语言中的概念, 它让抽象的概念和计算的过程被看见, 极大地提升了可理解性。

参考