Smalltalk: Difference between revisions
(38 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
[[Image:SmalltalkBalloon.jpg|280px|right]] | [[Image:SmalltalkBalloon.jpg|280px|right]] | ||
An Object-oriented, dynamically typed programming language that was the main development language used by [[IBM]] for the creation of application and development software from the late | An Object-oriented, dynamically typed programming language that was the main development language used by [[IBM]] for the creation of application and development software from the late 1980s into the late 90s when [[Java]] took over. It is a simplification of [[Simula]] patterned on ''Euler'' (experimental [[Pascal]] predecessor) but features a dynamic typing system closer to [[LISP]] than to most of its [[Algol]] brethren and that has long been its Achilles heel, while simplifying programming somewhat it also causes a considerable execution slowdown in comparison to other languages in the Algol family. | ||
The Smalltalk language suffered great setbacks in that latter half of the nineties when almost all of the companies building tools for the language turned their attention to [[Java]] and either mothballed or discontinued their Smalltalk offerings wholesale, in more recent years | The Smalltalk language suffered great setbacks in that latter half of the nineties when almost all of the companies building tools for the language turned their attention to [[Java]] and either mothballed or discontinued their Smalltalk offerings wholesale, in more recent years the renewed interest in [[Eiffel]] has also contributed to an erosion of the Smalltalk mindshare, but the latter language has an even cleaner object orientation features and greatly improved execution speeds. | ||
== | ==OS/2 implementations== | ||
* [[ChapMan]] | Commercial: | ||
* [[Enfin Smalltalk]] | * [[ChapMan]] | ||
* [[ | * [[Enfin Smalltalk]] | ||
* [[ | * [[HP Distributed Smalltalk]] | ||
* [[Smalltalk/V|Smalltalk/V PM]] | * [[IBM Smalltalk]] and [[VisualAge Smalltalk]] | ||
* [[Smalltalk/V|Smalltalk/V PM]] | |||
* [[Versant Argos]] | * [[Versant Argos]] | ||
* [[VisualWorks]] | * [[VisualWorks]] | ||
* [[VisualAge Generator]] | * [[VisualAge Generator]] | ||
* [[Visual Smalltalk]] | |||
* [[Visual Smalltalk]] | |||
Open Source: | |||
* [[GNU Smalltalk]] | |||
* [[Squeak]] | |||
* [[Smalltalk | |||
* [[ | |||
=== | ===Add-ons and utilities=== | ||
Most Smalltalk add-ons are/were system specific and are therefore only listed on the page of the Smalltalk system that they support | |||
* [ | * [[ENVY/Developer]] - Commercial | ||
* [[ | * [[Sina/st]] - OO abstraction language - Open source | ||
* [[ | * [[Smalltalk Professional Debug Package]] - Commercial | ||
*SUnit - Testing framework - Open source | |||
*Synopsis - Automatic document creator - Commercial | |||
* [[VA Assist]] - Commercial | |||
* [[Versant Argos]] - Commercial | |||
* [[VOSS]] - Database/transaction/object persistence system - Commercial/open source | |||
* [[WindowBuilder Pro]] - GUI builder - Commercial | |||
=== | ===Class libraries=== | ||
* | * Indelv XML Library - Open source library under the [[Mozilla Public License]] - a VisualAge version compatible with OS/2 was supposedly available but the company actually never uploaded it to their site, neither the last 2.2 beta or the earlier 1.01, even though there were download links both of to them on their site for years. | ||
* [http://www.seaside.st/ Seaside] - Web framework - Works on some OS/2 Smalltalk's with a little bit of massaging. | |||
* [ | * TOPLink - Database connection/persistence classes | ||
* [[ | * [[WidgetKit/BusinessGraphics]] - Graphics library | ||
==== | ==DOS implementations== | ||
* [[ | * Digitalk [[Methods]] | ||
* Digitalk [[Smalltalk/V|Smalltalk/V DOS]] | |||
* [[GNU Smalltalk]] - Open Source | |||
* [[Little Smalltalk]] - Open Source | |||
* ParcPlace Smalltalk-80 - Commercial | |||
* PDST - Open Source | |||
* Softsmarts ST80 | |||
* [[Squeak]] - Open Source | |||
;Implementations that run under Win-OS/2 | |||
* [ | * [http://www.andreadrian.de/smalltalk/ Smalltalk Express] - Commercial, now freeware | ||
* [[Smalltalk/V|Smalltalk/V | * [[Smalltalk/V|Smalltalk/V Win]] - Commercial | ||
* [[ | * [[VisualAge Smalltalk]] - Commercial | ||
;Win-OS/2 compatible Smalltalk libraries and utilities | |||
* [ | * [[WidgetKit/BusinessGraphics]] - Graphics library | ||
* | * WidgetKit/Professional - Spreadsheet library | ||
* [[ | * [[WindowBuilder Pro]] - GUI builder | ||
==== | ==Java Implementations== | ||
* [ | * [http://www.bergel.eu/athena/?Athena Athena] - Open source - Based on SmallWorld, intended for embedding. | ||
* [ | * [http://bistro.sourceforge.net/ Bistro] - Open source | ||
* [[ | * [http://www.redline.st/ Redline Smalltalk] - Open source | ||
* Smalltalk/JVM - Commercial - Was intended to help you migrate code from Smalltalk to Java rather than as a development environment. | |||
* [[SmallWorld]] - public domain | |||
* Talks2 Smalltalk - Open source | |||
* VmxJava - Open source | |||
== | ==JavaScript Implementations== | ||
* [http:// | ''Open source'' | ||
* [http:// | * [http://amber-lang.net/ Amber] - A Smalltalk like language that compiles to [[ECMAScript]] | ||
* [ | * Clamato - A Smalltalk interpreter for ECMAScript | ||
* | * [http://ympbyc.github.io/LittleSmallscript/ Little Smallscript] - Another Smalltalk to JS compiler | ||
* [http:// | * [https://silversmalltalk.wordpress.com/ Quicksilver Smalltalk] - SmallTalk-80 compatible interpreter in ECMAScript | ||
* [http://bertfreudenberg.github.io/SqueakJS/ SqueakJS] - An interpreter that allows you to run [[Squeak]] Smalltalk inside a browser | |||
* [http://www.squeaksource.com/ST2JS/ ST2JS] - Smalltalk to ECMAScript converter | |||
== | ==Links and publications== | ||
For information on Smalltalk writings in print see the [[Smalltalk Bibliography]] | |||
* [http://esug.org European Smalltalk User Group (ESUG)] - Smalltalk related news, articles, wiki etc. | * [http://esug.org European Smalltalk User Group (ESUG)] - Smalltalk related news, articles, wiki etc. | ||
* [http://smalltalkhub.com/ Smalltalk Hub] - Open source hosting for Smalltalk related projects. | |||
* [http://ftp.gwdg.de/pub/languages/smalltalk/st.cs.uiuc.edu/Smalltalk/ Partial mirror of the old University of Illinois Smalltalk archive] - What is not there, including some of the research stuff appears to be gone forever. | |||
* [http://www.stic.st Smalltalk Industry Council (STIC)] | |||
* [http://www.world.st/ The World Of Smalltalk] - A Smalltalk site run by Geert Claes, there is little information in there any more but the [http://forum.world.st/ forum] is probably the most used Smalltalk forum historically. | |||
*USENET [news:comp.lang.smalltalk comp.lang.smalltalk] - fairly popular | |||
==Standards== | ==Standards== | ||
* Initial '''Smalltalk-72''' standard not implemented anywhere outside of Xerox | * Initial '''Smalltalk-72''' standard not implemented anywhere outside of Xerox. | ||
* '''Smalltalk-80''' | * '''Smalltalk-76''' standard is sparsely documented, the paper ''The Smalltalk-76 Programming System Design and Implementation'' by Daniel H. H. Ingalls | ||
* The '''Smalltalk-80''' standard is laid out in the book [http://stephane.ducasse.free.fr/FreeBooks/BlueBook/Bluebook.pdf Smalltalk 80: The language and its implementation] by Adele Goldberg and David Robson. | |||
* Draft of the [http://smalltalk.org/versions/ANSISmalltalk/ANSISmalltalkStandard_v1.9_199712_NCITS_X3J20_draft.pdf ANSI X3J20 Standard]. | * Draft of the [http://smalltalk.org/versions/ANSISmalltalk/ANSISmalltalkStandard_v1.9_199712_NCITS_X3J20_draft.pdf ANSI X3J20 Standard]. | ||
[[Category:Programming Languages]] [[Category:Smalltalk]] | [[Category:Programming Languages]][[Category:Smalltalk]] |
Latest revision as of 01:42, 5 October 2023

An Object-oriented, dynamically typed programming language that was the main development language used by IBM for the creation of application and development software from the late 1980s into the late 90s when Java took over. It is a simplification of Simula patterned on Euler (experimental Pascal predecessor) but features a dynamic typing system closer to LISP than to most of its Algol brethren and that has long been its Achilles heel, while simplifying programming somewhat it also causes a considerable execution slowdown in comparison to other languages in the Algol family.
The Smalltalk language suffered great setbacks in that latter half of the nineties when almost all of the companies building tools for the language turned their attention to Java and either mothballed or discontinued their Smalltalk offerings wholesale, in more recent years the renewed interest in Eiffel has also contributed to an erosion of the Smalltalk mindshare, but the latter language has an even cleaner object orientation features and greatly improved execution speeds.
OS/2 implementations
Commercial:
- ChapMan
- Enfin Smalltalk
- HP Distributed Smalltalk
- IBM Smalltalk and VisualAge Smalltalk
- Smalltalk/V PM
- Versant Argos
- VisualWorks
- VisualAge Generator
- Visual Smalltalk
Open Source:
Add-ons and utilities
Most Smalltalk add-ons are/were system specific and are therefore only listed on the page of the Smalltalk system that they support
- ENVY/Developer - Commercial
- Sina/st - OO abstraction language - Open source
- Smalltalk Professional Debug Package - Commercial
- SUnit - Testing framework - Open source
- Synopsis - Automatic document creator - Commercial
- VA Assist - Commercial
- Versant Argos - Commercial
- VOSS - Database/transaction/object persistence system - Commercial/open source
- WindowBuilder Pro - GUI builder - Commercial
Class libraries
- Indelv XML Library - Open source library under the Mozilla Public License - a VisualAge version compatible with OS/2 was supposedly available but the company actually never uploaded it to their site, neither the last 2.2 beta or the earlier 1.01, even though there were download links both of to them on their site for years.
- Seaside - Web framework - Works on some OS/2 Smalltalk's with a little bit of massaging.
- TOPLink - Database connection/persistence classes
- WidgetKit/BusinessGraphics - Graphics library
DOS implementations
- Digitalk Methods
- Digitalk Smalltalk/V DOS
- GNU Smalltalk - Open Source
- Little Smalltalk - Open Source
- ParcPlace Smalltalk-80 - Commercial
- PDST - Open Source
- Softsmarts ST80
- Squeak - Open Source
- Implementations that run under Win-OS/2
- Smalltalk Express - Commercial, now freeware
- Smalltalk/V Win - Commercial
- VisualAge Smalltalk - Commercial
- Win-OS/2 compatible Smalltalk libraries and utilities
- WidgetKit/BusinessGraphics - Graphics library
- WidgetKit/Professional - Spreadsheet library
- WindowBuilder Pro - GUI builder
Java Implementations
- Athena - Open source - Based on SmallWorld, intended for embedding.
- Bistro - Open source
- Redline Smalltalk - Open source
- Smalltalk/JVM - Commercial - Was intended to help you migrate code from Smalltalk to Java rather than as a development environment.
- SmallWorld - public domain
- Talks2 Smalltalk - Open source
- VmxJava - Open source
JavaScript Implementations
Open source
- Amber - A Smalltalk like language that compiles to ECMAScript
- Clamato - A Smalltalk interpreter for ECMAScript
- Little Smallscript - Another Smalltalk to JS compiler
- Quicksilver Smalltalk - SmallTalk-80 compatible interpreter in ECMAScript
- SqueakJS - An interpreter that allows you to run Squeak Smalltalk inside a browser
- ST2JS - Smalltalk to ECMAScript converter
Links and publications
For information on Smalltalk writings in print see the Smalltalk Bibliography
- European Smalltalk User Group (ESUG) - Smalltalk related news, articles, wiki etc.
- Smalltalk Hub - Open source hosting for Smalltalk related projects.
- Partial mirror of the old University of Illinois Smalltalk archive - What is not there, including some of the research stuff appears to be gone forever.
- Smalltalk Industry Council (STIC)
- The World Of Smalltalk - A Smalltalk site run by Geert Claes, there is little information in there any more but the forum is probably the most used Smalltalk forum historically.
- USENET comp.lang.smalltalk - fairly popular
Standards
- Initial Smalltalk-72 standard not implemented anywhere outside of Xerox.
- Smalltalk-76 standard is sparsely documented, the paper The Smalltalk-76 Programming System Design and Implementation by Daniel H. H. Ingalls
- The Smalltalk-80 standard is laid out in the book Smalltalk 80: The language and its implementation by Adele Goldberg and David Robson.
- Draft of the ANSI X3J20 Standard.