欢迎大家赞助一杯啤酒🍺 我们准备了下酒菜:Formal mathematics/Isabelle/ML, Formal verification/Coq/ACL2, C++/F#/Lisp
Smalltalk
小 (→图书) |
小 (→图书) |
||
(未显示1个用户的10个中间版本) | |||
第8行: | 第8行: | ||
[[文件:smalltalk-logo.png|right|Smalltalk]] | [[文件:smalltalk-logo.png|right|Smalltalk]] | ||
− | Smalltalk 发行于 1972年(50岁),开发始于 1969 | + | 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! | ||
第47行: | 第55行: | ||
[[Lisp]], [https://medium.com/smalltalk-talk/lisp-smalltalk-and-the-power-of-symmetry-8bd96aaa0c0c Smalltalk, and the Power of Symmetry] | [[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 | ||
+ | |} | ||
==指南== | ==指南== | ||
第65行: | 第96行: | ||
Smalltalk版本: | Smalltalk版本: | ||
− | *Smalltalk-80 | + | *[https://wiki.squeak.org/squeak/64 Smalltalk-80] |
− | *Smalltalk-78 | + | *[https://github.com/codefrau/Smalltalk78 Smalltalk-78] |
− | *Smalltalk-72 | + | *[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] | ||
第155行: | 第186行: | ||
==图书== | ==图书== | ||
− | *《Smalltalk-80: The Language and its Implementation》Adele Goldberg and DavidRobson | + | *[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 | ||
==开发者== | ==开发者== |
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 编程语言的基本特征