欢迎大家赞助一杯啤酒🍺 我们准备了下酒菜:Formal mathematics/Isabelle/ML, Formal verification/Coq/ACL2, C++/F#/Lisp
Smalltalk
小 (→简介) |
小 (→图书) |
||
(未显示1个用户的28个中间版本) | |||
第6行: | 第6行: | ||
==简介== | ==简介== | ||
− | Smalltalk 发行于 1972年(50岁),开发始于 1969 | + | [[文件: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! | I like it... It’s nice and clean and simple and pretty. Nice stuff! | ||
第34行: | 第44行: | ||
[https://github.com/hernanwilkinson/LiveTyping Live Typing] Automatic Type Annotation for Dynamically Typed Languages] | [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 | ||
+ | |} | ||
==指南== | ==指南== | ||
第43行: | 第87行: | ||
*[https://github.com/OpenSmalltalk/ OpenSmalltalk] The cross-platform virtual machine for Squeak, Pharo, Cuis, and Newspeak. | *[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://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/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/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://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 方言和开源实现 | ||
第68行: | 第125行: | ||
==项目== | ==项目== | ||
*[https://github.com/svenvc/zinc Zinc HTTP Components] | *[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/seasidest/seaside Seaside web framework] | ||
*[https://github.com/ObjectProfile/Roassal3/ Roassal Visualization Engine] | *[https://github.com/ObjectProfile/Roassal3/ Roassal Visualization Engine] | ||
第128行: | 第186行: | ||
==图书== | ==图书== | ||
+ | *[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] | *[https://book.seaside.st/ Dynamic Web Development with Seaside] | ||
+ | *《The Art and Science of Smalltalk》 Simon Lewis Hewlett-Packard | ||
==开发者== | ==开发者== | ||
第137行: | 第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 | ||
第149行: | 第214行: | ||
==链接== | ==链接== | ||
*[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文档] |
2022年9月4日 (日) 09:46的最后版本
您可以在Wikipedia上了解到此条目的英文信息 Smalltalk Thanks, Wikipedia. |
Samlltalk
目录 |
[编辑] 简介
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,Java和Ruby等。90年代的许多软件开发思想得利于Smalltalk,例如设计模式、敏捷编程和代码重构等。
[编辑] 功能
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
[编辑] 对比
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 |
[编辑] 指南
- Smalltalk: A White Paper Overview
- Basic Aspects of Squeak and the Smalltalk-80 Programming Language
- GNU Emacs M-x package-install RET smalltalk-mode RET
[编辑] 虚拟机
- OpenSmalltalk The cross-platform virtual machine for Squeak, Pharo, Cuis, and Newspeak.
- Cog VM for Squeak, Pharo, Cuis, and Newspeak.Cog is the fastest virtual machine for Squeak and Pharo.
- Squeak Virtual Machine
- Pharo VM
- RoarVM - The Manycore SqueakVM
- RSqueak A Squeak VM written in RPython.RSqueak-App
[编辑] 实现
Smalltalk版本:
Design Principles Behind Smalltalk
SmaCC (Smalltalk Compiler-Compiler) SmaCC @ GitHub
Smalltalk 方言和开源实现
- GNU Smalltalk
- Pharo: 专注于现代软件工程和程序开发技术
- Squeak: 定位于教学
- Dolphin Smalltalk
- Cuis Smalltalk Dr. Geo update, Cuis port The Cuis-Smalltalk Book
- HaverOnCuis A Cuis based Smalltalk With Modules
[编辑] 商业版
Smalltalk商业版本发行商:
[编辑] 包管理
[编辑] 项目
- Zinc HTTP Components
- Amber A Web developer's best friend.
- Seaside web framework
- Roassal Visualization Engine
- MOOSE Platform for software and data analysis. Agile Visualization
[编辑] Objective-C
- Objective-C与SmallTalk
- Objective-Smalltalk is a programming language derived from Objective-C.
[编辑] C/C++
[编辑] Java
[编辑] Ruby
- GemStone Maglev Ruby 基于GemStone/S虚拟机的Ruby语言实现。
[编辑] Erlang
[编辑] 函数式
- Why is smalltalk not a functional programming language?
- HST is a Smalltalk implementation in Haskell
[编辑] Cloud
[编辑] 文档
- Introduction to Smalltalk
- Smalltalk-80 : hardware and software
- Introduction to Seaside
- A Meta Model Supporting Both Hardware and Smalltalk-based execution of FPGA Circuits
- Parallelism with OpenCL in Bee Smalltalk
- JavaScript for VW Applications
- Security on JIT VMs
- Inside AOStA
- Retrospective Seven VM Engineering Years
- Bee Smalltalk Runtime
- Enhancing SqueakNOS functionalities
- A little Journey in a Virtual Machine
- Sly and the RoarVM GitHub
- Runtime Bytecode Transformation for Smalltalk
- Inter-Language Reflection Inter-Language Reflection
- Open Aspects Open Aspects
- Towards Unified Aspect-Oriented Programming Towards Unified Aspect-Oriented Programming
- Towards aTaxonomy of Unit Tests Towards a Taxonomy of SUnit Tests
- Smalltalk in moodle Runtime Bytecode Transformation for Smalltalk
- Building run-time analysis tools by means of pluggable interpreters
- Multi Core Playground
- SOA – Benefits and Risks
- Seaside – A Multiple Control FlowWeb Application Framework
- Classboxes: A Minimal Module Model Supporting Local Class Extension
- German in 7 Million Shared Objects
- Smalltalk in Large-Scale Enterprise Architectures
- The making of Virtual Domino Topplings. VRML: Virtual Reality Meta Language
- Numerical Methods
[编辑] 图书
- 《Smalltalk-80: The Language and its Implementation》Adele Goldberg and DavidRobson
- Dynamic Web Development with Seaside
- 《The Art and Science of Smalltalk》 Simon Lewis Hewlett-Packard
[编辑] 开发者
[编辑] 用户
Smalltalk用户和成功案例:
[编辑] 教育
- Learn How To Program Learning to program the Smalltalk way
- How learning Smalltalk can make you a better developer
[编辑] 图集
[编辑] 链接
- Smalltalk官网
- Squeak下载和存档
- SmalltalkHub
- Smalltalk文档
- The World Of Smalltalk
- Smalltalk 101
- 为什么我喜欢Smalltalk?
- Randal Schwartz访谈:Ruby之根——Smalltalk王者归来
- Squeak:一个免费的多系统下运行的Smalltalk环境
- Viewpoints Research Institute design for learning, powerful ideas education.
- ANSI Smalltalk
- Squeak 和 Smalltalk-80 编程语言的基本特征