Smalltalk和许多程序设计语言不同,它不仅仅是一门语言。
1、一种面向对象的程序设计语言:它是一种面向对象的语言,包含语言的语法和语义。一些编译器可以通过Smalltalk源程序产生可执行文件。这些编译器通常产生一种能在虚拟机上运行的二进制代码。Smalltalk语言本身非常精炼。
2、一种程序设计环境:这里指的是一种提供许多对象的系统,而不是某种特殊的开发环境。和许多语言不同(包括C++),Smalltalk附带有一个巨大的、相当标准的类库。这些 类 使得开发Smalltalk程序的效率非常高。在其它语言(例如 Ada,C 和 Pascal )中通常被作为语言的一部分的功能(例如条件判断,循环等),在Smalltalk由特定的类提供。
3、一个应用开发环境(ADE):由于Smalltalk的历史原因,它具有一个非常优秀的高度集成、开放的应用开发环境。由于开发环境中的浏览器、监视器以及调试器都由同样的源程序衍生出来的,不同的版本之间也具有相当好的兼容性。此外,这些工具的源程序都可以在ADE直接存取。

Squeak是一个现代的,开源的,功能齐全的Smalltalk程序设计语言和执行环境。Smalltalk是一个面向对象,拥有动态类型和反射特性的程序设计语言,用来支持“人机共栖”这个“新的世界”的计算典范。像Lisp一样,它有影像式持久性(image-based persistence),所以通过语言本身能对所以任何事物进行修改(参见Smalltalk#反射)。

Smalltalk在面向对象编程和JIT及时编译等方面给行业带来了深远的影响。Squeak是在广泛开发项目中使用的工具,包括多媒体应用,教育平台和商业网络应用程序等。

Squeak被设计为高度可移植的,调试,分析和维护亦是如此,这是因为Squeak的虚拟机完全用Smalltalk编写的,Squeak的主页维护着免费的教程列表,Stéphane Ducasse则维持着大量Smalltalk和Squeak相关的在线书籍。现如今使用最广泛的,采纳了许多Smalltalk的设想的语言是Objective-C。

Scratch是一种基于Squeak、并由Squeak实现的可视化程序设计语言。通过让孩子们创建游戏,视频和音乐,达到教会孩子们一些编程概念的目的。

在Scratch中,所有的互动物体,图形和声音都能够很轻松的导入到新的程序,通过新的方式将其组合,通过这种方法,初学者能够很快的看到结果,并且有兴趣深入学习下去。

在Scratch社区中,已经开发和上传了超过100000个工程项目。Scratch是由MIT多媒体实验室开发的。

小结

最近要编写一个Scratch的改进版本,添加其他编程语言的支持以及和硬件交互,只好硬着头皮去查找相关资料,下载到Scratch源码后发现源码打不开,居然有记事本不能查看的源码。经过一番折腾才知道ide环境是squeak,但是squeak也无法打开Scratch镜像 image后缀的文件,一定是打开方式不对...

其实image镜像用Scratch软件可以直接打开(看说明不够仔细,没发现这个细节),但是打开也看不到什么具体的代码,跟程序运行的界面基本一样,只是界面可以拖拽删除(鼠标左键,右键,滚轮点出不同的菜单)。

在一段时间的使用后不得不承认,smalltalk是我见过的编程语言(C,C++,JAVA,C#,python,php,object-c)中最为面向对象的语言。可视化的编程(可以说是强制性的可视化编程),没有main函数(反正我没找着)。看来要重新认知OOP(面向对象编程)了,其他的暂时不敢多说,目前认识水平还不够。

ps:关于Scratch,squeak,smalltalk的介绍来自百度百科.

kissdestiny

2014-07-23

关于Smalltalk,squeak,scratch的学习体验相关推荐

  1. 《认知设计:提升学习体验的艺术》——学习者喜欢什么

    学习者喜欢什么 除了知道学习者想要什么外,你也需要了解他们喜欢什么.我的游戏设计师朋友同样提倡(主张)发现你的学习者的偏好(不同于爱好): --你能发现,如果我们专注于开发用户需要和喜爱的软件,本质上 ...

  2. 项目式教学:为学生创造沉浸式学习体验

    近日,笔者认真阅读了< 项目式教学:为学生创造沉浸式学习体验 >一书(中国人民大学出版社),对教师如何开展项目式教学有了清晰的认识.在阅读期刊网上下载的相关文章时,笔者留意到,我国的不少研 ...

  3. 《认知设计:提升学习体验的艺术》——小结

    小结 成功的学习体验并不仅仅是使学习者学习到更多的知识,更应让他们能够运用这些知识做更多的事情. 有些时候,学习者的主要差距在于知识层面,但更多时候知识和信息是次要问题,主要问题是应培养学习者的技能. ...

  4. 软件学院学习体验之三

    软件学院学习体验之三 进了大学以后,时常感到非常劳累,特别是当时间不受自己支配的时候.虽说时间理应是由自己掌控的,但是一些额外的事情却往往影响着我的日程安排.往往是当我想着或是做着一些我认为相当重要的 ...

  5. 《认知设计:提升学习体验的艺术》——差距在哪里

    差距在哪里 差距是你的学习者当前的起点和他们希望达到的终点之间的距离.其中一部分可能是知识上的差距,但从我们之前的讨论可以看出,其实还有其他类型的差距. 如果你能够认识这些差距,那么你就能够设计出更好 ...

  6. 猿辅导 android平板,如何为孩子学习提速减压?荣耀平板7携手猿辅导打造优质网课学习体验...

    当"鸡娃"家长面临孩子因学习压力影响睡眠时,该如何平衡两者之间的矛盾?3月25日,荣耀平板7联合猿辅导在线教育,举办了一场以"倍速学习力 带孩子甩掉拖延症"为主 ...

  7. 《认知设计》-提升学习体验的艺术

    最近看完了<认知设计-提升学习体验的艺术>这本书,不得不说里面有很多关于设计学习体验的知识.同时也了解到自己也有很多在学习上面的误区.值得推荐给大家看一看.先上思维导图 这本书的封面: 首 ...

  8. scratch项目学习计划

    scratch项目学习计划 项目名称:弹球游戏 项目周期:7月6日-7月24日 开发工具:scratch 开发环境:win10.scratch3.0 项目燃尽图: 学习项目于7月6日开始,每日按照项目 ...

  9. vivo分屏_科技怎样应用在生活中?vivo分屏+Jovi语音助手=高效学习体验

    学习,可以说是贯穿每个人一生的事情.它无关乎我们的年龄,无关乎我们所涉及的领域,只要我们在汲取知识,都是在向着更加广阔的领域前行.随着时间的推进,我们的学习方式也渐渐脱离了书本这单一的形式,网络查询. ...

最新文章

  1. python个人博客搭建说明书_技术分享|利用Python Django一步步搭建个人博客(二)...
  2. 调用settings中的常数
  3. bzoj3289 mato的文件管理
  4. 套接字选项SO_KEEPALIVE
  5. Java Web - 服务器中的过滤器和监听器
  6. Android开发之在Fragment和Activity页面拍照需要注意的地方
  7. linux系统原理是什么意思,Linux系统原理之整体概述
  8. qt linux 添加库文件路径,linux下qt使用第三方库的那些事
  9. html获取data-*值,html5 获取和设置data-*属性值的四种方法讲解
  10. 分析方法的基础 — 1. 拆分能力,分析师的第一技能
  11. CentOS8 安装 Docker
  12. 基于live555开发嵌入式linux系统的rtsp直播服务
  13. python产生二维复数_Python基础知识大汇总--从放弃到入门
  14. 运用c语言和Java写九九乘法表
  15. 实验吧Web-易-简单的sql注入之3(报错的sql盲注之exp)
  16. Vue —— 移动端添加 fastclick
  17. mootools-1.2.1-core.js在IE中显示不了图像翻页
  18. 海思平台Hi3796MV200芯片处理器介绍
  19. 厦门大学计算机学院控制系,厦门大学
  20. python爬虫之爬取拉勾网

热门文章

  1. 算法5:线性DP与区间DP
  2. 阿里云服务器(Windows)如何用苹果手机远程连接?
  3. Python 关于整除以及负数取余遇到的问题
  4. 【学习记录】【密码学】SM4分组密码算法
  5. FFmpeg命令行解析
  6. 【CNN】——矩阵乘法优化
  7. 【分享】成功将Thinkpad E40 0578M59更换无线网卡AR9280
  8. 图像卷积原理及运算方法
  9. 【办公自动化】基于Python开发的PDF批量转换-合并应用程序
  10. 华为数通笔记-ISIS基础