Smalltalk

来自开放百科 - 灰狐
(版本间的差异)
跳转到: 导航, 搜索
(虚拟机)
(图书)
 
(未显示1个用户的53个中间版本)
第1行: 第1行:
 
{{SeeWikipedia}}
 
{{SeeWikipedia}}
 +
 +
[[文件:Smalltalk-Balloon.jpg|right|Smalltalk]]
 +
 +
Samlltalk
 +
 +
==简介==
 +
[[文件:smalltalk-logo.png|right|Smalltalk]]
 +
 +
Smalltalk 发行于 1972年(50岁),开发始于 1969 年,[https://spectrum.ieee.org/xerox-parc The Story of Smalltalk]
 +
 +
*Smalltalk is a vision
 +
*Smalltalk has few concepts
 +
*Smalltalk is an environment
 +
*Smalltalk is a big system
 +
*Smalltalk as an [[operating system]]
 +
 +
Smalltalk 不仅仅是一门语言。Smalltalk-80 最初是作为一个完整的操作系统交付的,旨在运行在一台裸机上。Smalltalk-80 包含 virtual machine 规范。
 +
 +
I like it... It’s nice and clean and simple and pretty. Nice stuff!
 +
 +
— Alan Kay
 +
 +
Smalltalk 是 70 年代初期美国 XEROX 公司开发的,它不仅是一门编程语言,一个窗口系统,也是一个完整的编程环境,一个集编程、调试、运行和输出为一体的统一环境。
 +
 +
Smalltalk 创立了面向对象的思想并一直沿用至今。
 +
 +
Smalltalk is the consummate teaching language, Smalltalk is OOP done right.
  
 
The best way to predict the future is to invent it!  -Alan Kay
 
The best way to predict the future is to invent it!  -Alan Kay
第6行: 第33行:
  
 
Smalltalk对其它众多的程序设计语言的产生起到了极大的推动作用,主要有:[[C++]],C#,[[Objective-C]],Actor,[[Java]]和[[Ruby]]等。90年代的许多软件开发思想得利于Smalltalk,例如设计模式、敏捷编程和代码重构等。
 
Smalltalk对其它众多的程序设计语言的产生起到了极大的推动作用,主要有:[[C++]],C#,[[Objective-C]],Actor,[[Java]]和[[Ruby]]等。90年代的许多软件开发思想得利于Smalltalk,例如设计模式、敏捷编程和代码重构等。
 +
 +
[https://medium.com/smalltalk-talk/make-smalltalk-great-again-images-7cb21cd10623 Make Smalltalk Great Again]
 +
 +
==功能==
 +
Dynamically Typed + Live Environment
 +
 +
[https://docs.huihoo.com/smalltalk/Introductory-Squeak.html Basic Aspects of Squeak and the Smalltalk-80 Programming Language]
 +
 +
DynamicType (SelfType, ClassType, InstanceType)
 +
 +
[https://github.com/hernanwilkinson/LiveTyping Live Typing] Automatic Type Annotation for Dynamically Typed Languages]
 +
 +
Smalltalk 杀手级功能:
 +
*编程语言虚拟机机制
 +
*基于镜像(Image-based)的持久性
 +
*对象,一切都是对象,对象之间只通过消息进行交流(最纯粹的OO,也是最早的一个)
 +
*Live(实时)编程
 +
*先进的调试技术,如即时修改代码(on-the-fly code changes)
 +
*简单、不混乱(uncluttered)的 IDE 界面
 +
*特定领域语言([[DSL]])是 Smalltalk 唯一的工作方式,程序员必须使用对该领域自然的语言和符号来关注问题领域。
 +
 +
[[Lisp]], [https://medium.com/smalltalk-talk/lisp-smalltalk-and-the-power-of-symmetry-8bd96aaa0c0c Smalltalk, and the Power of Symmetry]
 +
 +
==对比==
 +
与 [[C++]]、[[Java]] 等语言的对比
 +
 +
[http://web.cecs.pdx.edu/~harry/musings/SmalltalkOverview.html Smalltalk: A White Paper Overview]
 +
 +
{| class="wikitable"
 +
|-
 +
! Smalltalk
 +
! Java/C++ 术语
 +
|-
 +
| instance variable
 +
| data member
 +
|-
 +
| instance method
 +
| member function
 +
|-
 +
| class variable
 +
| static data member
 +
|-
 +
| class method
 +
| static member function
 +
|}
  
 
==指南==
 
==指南==
 
*[http://docs.huihoo.com/smalltalk/Smalltalk-Overview.html Smalltalk: A White Paper Overview]
 
*[http://docs.huihoo.com/smalltalk/Smalltalk-Overview.html Smalltalk: A White Paper Overview]
 
*[http://docs.huihoo.com/smalltalk/Introductory-Squeak.html Basic Aspects of Squeak and the Smalltalk-80 Programming Language]
 
*[http://docs.huihoo.com/smalltalk/Introductory-Squeak.html Basic Aspects of Squeak and the Smalltalk-80 Programming Language]
 +
*[[GNU Emacs]] M-x package-install RET smalltalk-mode RET
 +
 +
==虚拟机==
 +
*[https://github.com/OpenSmalltalk/ OpenSmalltalk] The cross-platform virtual machine for Squeak, Pharo, Cuis, and Newspeak.
 +
*[https://github.com/OpenSmalltalk/opensmalltalk-vm Cog VM] for [[Squeak]], [[Pharo]], [https://github.com/Cuis-Smalltalk Cuis], and [http://newspeaklanguage.org/ Newspeak].Cog is the fastest virtual machine for Squeak and Pharo.
 +
*[https://wiki.squeak.org/squeak/1447 Squeak Virtual Machine]
 +
*[https://github.com/pharo-project/pharo-vm Pharo VM]
 +
*[https://github.com/smarr/RoarVM RoarVM] - The Manycore [[Squeak]]VM
 +
*[https://github.com/HPI-SWA-Lab/RSqueak RSqueak] A [[Squeak]] VM written in RPython.[https://github.com/HPI-SWA-Lab/RSqueak-App RSqueak-App]
 +
 +
==实现==
 +
[[文件:Pharo-logo.png|right|Pharo]]
 +
 +
Smalltalk版本:
 +
*[https://wiki.squeak.org/squeak/64 Smalltalk-80]
 +
*[https://github.com/codefrau/Smalltalk78 Smalltalk-78]
 +
*[https://wiki.squeak.org/squeak/989 Smalltalk-72]
 +
 +
[https://www.cs.virginia.edu/~evans/cs655/readings/smalltalk.html Design Principles Behind Smalltalk]
 +
 +
[https://medium.com/smalltalk-talk/smalltalk-choices-6c39d09a40e6 Smalltalk Choices]
 +
 +
[http://www.refactoryworkers.com/SmaCC.html SmaCC (Smalltalk Compiler-Compiler)] [https://github.com/SmaCCRefactoring/SmaCC SmaCC @ GitHub]
  
==方言==
+
Smalltalk 方言和开源实现
Smalltalk方言和开源实现
+
 
*[[GNU Smalltalk]]
 
*[[GNU Smalltalk]]
 
*[[Pharo]]: 专注于现代软件工程和程序开发技术
 
*[[Pharo]]: 专注于现代软件工程和程序开发技术
 
*[[Squeak]]: 定位于教学
 
*[[Squeak]]: 定位于教学
 
*[https://github.com/dolphinsmalltalk Dolphin Smalltalk]
 
*[https://github.com/dolphinsmalltalk Dolphin Smalltalk]
 +
*[https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev Cuis Smalltalk] [https://blog.drgeo.eu/2022/02/dr-geo-update-cuis-port.html Dr. Geo update, Cuis port] [https://cuis-smalltalk.github.io/TheCuisBook/index.html The Cuis-Smalltalk Book]
 +
*[http://haver.klix.ch/ HaverOnCuis] A Cuis based Smalltalk With Modules
  
 
==商业版==
 
==商业版==
第22行: 第118行:
 
*[http://www.cincomsmalltalk.com/ Cincom Smalltalk]
 
*[http://www.cincomsmalltalk.com/ Cincom Smalltalk]
 
*[http://www.instantiations.com/products/vasmalltalk/ VA Smalltalk]
 
*[http://www.instantiations.com/products/vasmalltalk/ VA Smalltalk]
*[https://gemtalksystems.com/ GemStone]
+
*[https://gemtalksystems.com/ GemStone] [https://docs.huihoo.com/smalltalk/esug/ESUG2019/03Wednesday/01-GemStone-Update.pdf GemStone/S 64 Update]
  
==虚拟机==
+
==包管理==
*[https://github.com/OpenSmalltalk/ OpenSmalltalk] The cross-platform virtual machine for Squeak, Pharo, Cuis, and Newspeak.
+
*[https://github.com/Metacello/metacello Metacello]
*[https://github.com/OpenSmalltalk/opensmalltalk-vm Cog VM] for [[Squeak]], [[Pharo]], [https://github.com/Cuis-Smalltalk Cuis], and [http://newspeaklanguage.org/ Newspeak].Cog is the fastest virtual machine for Squeak and Pharo.
+
 
*[https://github.com/smarr/RoarVM RoarVM] - The Manycore [[Squeak]]VM
+
==项目==
*[https://github.com/HPI-SWA-Lab/RSqueak RSqueak] A [[Squeak]] VM written in RPython.[https://github.com/HPI-SWA-Lab/RSqueak-App RSqueak-App]
+
*[https://github.com/svenvc/zinc Zinc HTTP Components]
 +
*[https://amber-lang.net/ Amber] A Web developer's best friend.
 +
*[https://github.com/seasidest/seaside Seaside web framework]
 +
*[https://github.com/ObjectProfile/Roassal3/ Roassal Visualization Engine]
 +
*[https://github.com/moosetechnology/Moose MOOSE] Platform for software and data analysis. [http://agilevisualization.com/ Agile Visualization]
  
 
==Objective-C==
 
==Objective-C==
第84行: 第184行:
 
*[http://docs.huihoo.com/smalltalk/esug/ESUG2000/Slides/virtualDominos/virtualDominos.html The making of Virtual Domino Topplings. VRML: Virtual Reality Meta Language]
 
*[http://docs.huihoo.com/smalltalk/esug/ESUG2000/Slides/virtualDominos/virtualDominos.html The making of Virtual Domino Topplings. VRML: Virtual Reality Meta Language]
 
*[http://docs.huihoo.com/smalltalk/esug/ESUG1999/NumericalMethods/Numerical-methods-web.pdf Numerical Methods]
 
*[http://docs.huihoo.com/smalltalk/esug/ESUG1999/NumericalMethods/Numerical-methods-web.pdf Numerical Methods]
 +
 +
==图书==
 +
*[http://stephane.ducasse.free.fr/FreeBooks/BlueBook/Bluebook.pdf 《Smalltalk-80: The Language and its Implementation》Adele Goldberg and DavidRobson]
 +
*[https://book.seaside.st/ Dynamic Web Development with Seaside]
 +
*《The Art and Science of Smalltalk》 Simon Lewis Hewlett-Packard
  
 
==开发者==
 
==开发者==
第92行: 第197行:
 
*[http://www.cincomsmalltalk.com/main/successes/ Cincom Smalltalk成功客户]
 
*[http://www.cincomsmalltalk.com/main/successes/ Cincom Smalltalk成功客户]
 
*[http://docs.huihoo.com/smalltalk/esug/ESUG2007/Thu/xM-at-SAP.pdf xM @ SAP]
 
*[http://docs.huihoo.com/smalltalk/esug/ESUG2007/Thu/xM-at-SAP.pdf xM @ SAP]
 +
 +
==教育==
 +
*[https://medium.com/learn-how-to-program/latest Learn How To Program] Learning to program the Smalltalk way
 +
*[https://techbeacon.com/app-dev-testing/how-learning-smalltalk-can-make-you-better-developer How learning Smalltalk can make you a better developer]
  
 
==图集==
 
==图集==
 
<gallery>
 
<gallery>
 +
image:Smalltalk-80-Cover-of-the-Blue-Book.png|Smalltalk-80
 
image:smalltalk-roadmap.png|路线图
 
image:smalltalk-roadmap.png|路线图
 
image:squeak-workspace.png|Workspace
 
image:squeak-workspace.png|Workspace
 
image:dolphin-smalltalk.png|Dolphin
 
image:dolphin-smalltalk.png|Dolphin
 
image:GemStone-Object-Server.png|GemStone对象服务器
 
image:GemStone-Object-Server.png|GemStone对象服务器
 +
image:Gtoolkit-importing-cpp-blueprint-ast.png|Glamorous Toolkit软件分析
 
</gallery>
 
</gallery>
  
 
==链接==
 
==链接==
 
*[http://www.smalltalk.org/ Smalltalk官网]
 
*[http://www.smalltalk.org/ Smalltalk官网]
 +
*[https://files.squeak.org/ Squeak下载和存档]
 
*[http://smalltalkhub.com/ SmalltalkHub]
 
*[http://smalltalkhub.com/ SmalltalkHub]
 
*[http://docs.huihoo.com/smalltalk/ Smalltalk文档]
 
*[http://docs.huihoo.com/smalltalk/ Smalltalk文档]
第116行: 第228行:
 
[[category:programming language]]
 
[[category:programming language]]
 
[[category:smalltalk]]
 
[[category:smalltalk]]
[[category:huihoo]]
+
[[category:Huihoo Foundation]]

2022年9月4日 (日) 09:46的最后版本

Wikipedia-35x35.png 您可以在Wikipedia上了解到此条目的英文信息 Smalltalk Thanks, Wikipedia.
Smalltalk

Samlltalk

目录

[编辑] 简介

Smalltalk

Smalltalk 发行于 1972年(50岁),开发始于 1969 年,The Story of Smalltalk

  • Smalltalk is a vision
  • Smalltalk has few concepts
  • Smalltalk is an environment
  • Smalltalk is a big system
  • Smalltalk as an operating system

Smalltalk 不仅仅是一门语言。Smalltalk-80 最初是作为一个完整的操作系统交付的,旨在运行在一台裸机上。Smalltalk-80 包含 virtual machine 规范。

I like it... It’s nice and clean and simple and pretty. Nice stuff!

— Alan Kay

Smalltalk 是 70 年代初期美国 XEROX 公司开发的,它不仅是一门编程语言,一个窗口系统,也是一个完整的编程环境,一个集编程、调试、运行和输出为一体的统一环境。

Smalltalk 创立了面向对象的思想并一直沿用至今。

Smalltalk is the consummate teaching language, Smalltalk is OOP done right.

The best way to predict the future is to invent it! -Alan Kay

Smalltalk,被公认为历史上第二个面向对象的程序设计语言,和第一个真正的集成开发环境(IDE)。

Smalltalk对其它众多的程序设计语言的产生起到了极大的推动作用,主要有:C++,C#,Objective-C,Actor,JavaRuby等。90年代的许多软件开发思想得利于Smalltalk,例如设计模式、敏捷编程和代码重构等。

Make Smalltalk Great Again

[编辑] 功能

Dynamically Typed + Live Environment

Basic Aspects of Squeak and the Smalltalk-80 Programming Language

DynamicType (SelfType, ClassType, InstanceType)

Live Typing Automatic Type Annotation for Dynamically Typed Languages]

Smalltalk 杀手级功能:

  • 编程语言虚拟机机制
  • 基于镜像(Image-based)的持久性
  • 对象,一切都是对象,对象之间只通过消息进行交流(最纯粹的OO,也是最早的一个)
  • Live(实时)编程
  • 先进的调试技术,如即时修改代码(on-the-fly code changes)
  • 简单、不混乱(uncluttered)的 IDE 界面
  • 特定领域语言(DSL)是 Smalltalk 唯一的工作方式,程序员必须使用对该领域自然的语言和符号来关注问题领域。

Lisp, Smalltalk, and the Power of Symmetry

[编辑] 对比

C++Java 等语言的对比

Smalltalk: A White Paper Overview

Smalltalk Java/C++ 术语
instance variable data member
instance method member function
class variable static data member
class method static member function

[编辑] 指南

[编辑] 虚拟机

[编辑] 实现

Pharo

Smalltalk版本:

Design Principles Behind Smalltalk

Smalltalk Choices

SmaCC (Smalltalk Compiler-Compiler) SmaCC @ GitHub

Smalltalk 方言和开源实现

[编辑] 商业版

Smalltalk商业版本发行商:

[编辑] 包管理

[编辑] 项目

[编辑] Objective-C

[编辑] C/C++

Smalltalk虚拟机大多由C/C++开发。

[编辑] Java

[编辑] Ruby

[编辑] Erlang

[编辑] 函数式

[编辑] Cloud

[编辑] 文档

[编辑] 图书

[编辑] 开发者

[编辑] 用户

Smalltalk用户和成功案例:

[编辑] 教育

[编辑] 图集

[编辑] 链接

分享您的观点
个人工具
名字空间

变换
操作
导航
工具箱