Jump to content

Smalltalk: Difference between revisions

From EDM2
mNo edit summary
Ak120 (talk | contribs)
 
(59 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 1980's into the late 90's when [[Java]] took over. It is a development of [[Simula]] but features a dynamic typing system unlike its [[Algol]] brethren and that has long been its Achilles heel, while simplifying programming somewhat it also cases a considerable execution slowdown in comparison to other languages in the Algol family. The language has also suffered in the last few years due to most of the companies building tools for the language have turned their attention to [[Java]].
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.


==A list of OS/2 implementations of SmallTalk==
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.
* [[ChapMan]] - Commercial - Discontinued
* [[Enfin Smalltalk]] - Commercial - Discontinued
* [[GNU Smalltalk]] - Open source - Discontinued.
* [[Smalltalk/V|Smalltalk/V PM]] - Commercial - Discontinued
* [[Squeak]] - Open Source - Discontinued
* [[VisualWorks]] - Commercial - Discontinued
* [[VisualAge Smalltalk]] - Commercial - Discontinued
* [[Visual Smalltalk]] - Commercial - Discontinued.


====Add-ons and utilities====
==OS/2 implementations==
* [[ENVY/Developer]] - Commercial - Discontinued.
Commercial:
* [[Smalltalk Professional Debug Package]] - Commercial - Discontinued.
* [[ChapMan]]
* [[VA Assist]] - Commercial - Discontinued
* [[Enfin Smalltalk]]
* [[WindowBuilder Pro]] - GUI builder - Commercial - Discontinued
* [[HP Distributed Smalltalk]]
* [[IBM Smalltalk]] and [[VisualAge Smalltalk]]
* [[Smalltalk/V|Smalltalk/V PM]]
* [[Versant Argos]]
* [[VisualWorks]]
* [[VisualAge Generator]]
* [[Visual Smalltalk]]


====Class libraries====
Open Source:
* Indelv XML Libary - 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.
* [[GNU Smalltalk]]
* [http://www.seaside.st/ Seaside] - Web framework - Works on some OS/2 SmallTalk's with a little bit of massaging.
* [[Squeak]]
* [[WidgetKit/BusinessGraphics]] - Graphics library - Commercial - Discontinued
====Foreign libraries with Smalltalk bindings====
* [[Snappy]] - Compression lib. - Open Source - Current.


==A list of DOS implementations of SmallTalk==
===Add-ons and utilities===
* [[Smalltalk/V|Methods]] - Commercial - Discontinued
Most Smalltalk add-ons are/were system specific and are therefore only listed on the page of the Smalltalk system that they support
* [[Smalltalk/V|Smalltalk/V DOS]] - Commercial - Discontinued
* [[ENVY/Developer]] - Commercial
* [[GNU Smalltalk]] - Open Source - Discontinued
* [[Sina/st]] - OO abstraction language - Open source
* [[Little Smalltalk]] - Open Source - Discontinued
* [[Smalltalk Professional Debug Package]] - Commercial
* [[ParcPlace Smalltalk-80]] - Commercial - Discontinued
*SUnit - Testing framework - Open source
* [[PDST]] - Open Source - Discontinued
*Synopsis - Automatic document creator - Commercial
* [[Squeak]] - Open Source - Discontinued
* [[VA Assist]] - Commercial
* [[Versant Argos]] - Commercial
* [[VOSS]] - Database/transaction/object persistence system - Commercial/open source
* [[WindowBuilder Pro]] - GUI builder - Commercial


==A list of SmallTalk implementations that run under WinOS/2==
===Class libraries===
* [http://www.andreadrian.de/smalltalk/ Smalltalk Express] - Commercial - Discontinued - Now freeware.
* 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.
* [[Smalltalk/V|Smalltalk/V Win]] - Commercial - Discontinued.
* [http://www.seaside.st/ Seaside] - Web framework - Works on some OS/2 Smalltalk's with a little bit of massaging.
* [[VisualAge Smalltalk]] - Commercial - Discontinued.
* TOPLink - Database connection/persistence classes
* [[WidgetKit/BusinessGraphics]] - Graphics library


====WinOS/2 compatible Smalltalk add-ons, libraries and utilities====
==DOS implementations==
* [[WidgetKit/BusinessGraphics]] - Graphics library - Commercial - Discontinued
* Digitalk [[Methods]]
* [[WidgetKit/Professional]] - Spreadsheet library - Commercial - Discontinued
* Digitalk [[Smalltalk/V|Smalltalk/V DOS]]
* [[WindowBuilder Pro]] - GUI builder - Commercial - Discontinued
* [[GNU Smalltalk]] - Open Source
* [[Little Smalltalk]] - Open Source
* ParcPlace Smalltalk-80 - Commercial
* PDST - Open Source
* Softsmarts ST80
* [[Squeak]] - Open Source


==A list of SmallTalk implementations that run under Java==
;Implementations that run under Win-OS/2
* [http://www.bergel.eu/athena/?Athena Athena] - Open source - Current - Based on Small World (below) - intended for embedding.
* [http://www.andreadrian.de/smalltalk/ Smalltalk Express] - Commercial, now freeware
* [http://bistro.sourceforge.net/ Bistro] - Open source - Discontinued.
* [[Smalltalk/V|Smalltalk/V Win]] - Commercial
* [http://www.redline.st/ Redline Smalltalk] - Open source - Current
* [[VisualAge Smalltalk]] - Commercial
* Smalltalk/JVM - Commercial - Discontinued - Was intended to help you migrate code from SmallTalk to Java rather than as an environment to develop in/for.
* [http://web.engr.oregonstate.edu/~budd/SmallWorld/ReadMe.html Small World] - Open source - Discontinued.
* Talks2 Smalltalk - Open source - Discontinued
* VmxJava - Open source - Discontinued


==A list of SmallTalk implementations in JavaScript==
;Win-OS/2 compatible Smalltalk libraries and utilities
* [http://amber-lang.net/ Amber] - A Smalltalk like language that compiles to [[ECMAScript]] - Open source - Current.
* [[WidgetKit/BusinessGraphics]] - Graphics library
* [http://clamato.net/ Clamato] - A Smalltalk interpreter for ECMAScript - Open source - Current.
* WidgetKit/Professional - Spreadsheet library
* [http://ympbyc.github.io/LittleSmallscript/ Little Smallscript] - Another Smalltalk to JS compiler - Open source - Current.
* [[WindowBuilder Pro]] - GUI builder
* [https://silversmalltalk.wordpress.com/ Quicksilver Smalltalk] - SmallTalk-80 compatible interpreter in ECMAScript - Open source - Current.
 
* [http://bertfreudenberg.github.io/SqueakJS/ SqueakJS] - An interpreter that allows you to run [[Squeak]] Smalltalk inside a browser - Open source - Current.
==Java Implementations==
* [http://www.squeaksource.com/ST2JS/ ST2JS] - SmallTalkt to ECMAScript converter - Open source - Current.
* [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==
''Open source''
* [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
* [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://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


==Publications==
* David N. Smith: IBM Smalltalk: The Language - Paperback - 1995 - Benjamin/Cummings Publishing Company -  ISBN-13: 978-0805309089 - ISBN-10: 080530908X - In print.
* Johannes Brauer: Programming Smalltalk / Object-Orientation from the Beginning: An introduction to the principles of programming - Paperback – 2015 - ISBN-10: 3658068221 - ISBN-13: 978-3658068226 - In print.
* Alec Sharp: Smalltalk by Example: The Developer's Guide Paperback – 1997 - ISBN-10: 0079130364 - ISBN-13: 978-0079130365 - Out of print.
: Although usable as a generic SmallTalk tutorial, this book is made for the [[VisualWorks]] systems and almost bang right on the last release that worked on OS/2. OOP but easily available.
* Chamond Liu: Smalltalk, Objects, and Design - Paperback – 2000 - ISBN-10: 1583484906 - ISBN-13: 978-1583484906 - In print.
: By some considered the best SmallTalk introduction and tutorial currently in print.
* Timothy Budd: A Little Smalltalk - Paperback – 1987 - ISBN-10: 0201106981 - ISBN-13: 978-0201106985 - Out of print.
: Something of a classic, introduces the reader to the language and object-oriented programming in general, but also describes a SmallTalk implementation and originally came with a DOS SmallTalk interpreter based on the code in the book.
* Sherman Alpert, Kyle Brown and Bobby Woolf:  The Design Patterns Smalltalk Companion - Paperback – 1998 - ISBN-10: 0201184621 - ISBN-13: 978-0201184624 - In print.
* Adele Goldberg and David Robson: Smalltalk 80: The Language - Paperback – 1989 - ISBN-10: 0201136880 - ISBN-13: 978-0201136883 - In print.
* Adele Goldberg: Smalltalk-80: The Interactive Programming Environment - Hardcover – 1983 - ISBN-10: 0201113724 - ISBN-13: 978-0201113723 - Out of print.
* by Glen Krasner (Editor). Smalltalk-80: Bits of History, Words of Advice - Paperback – 1983 - ISBN-10: 0201116693 - ISBN-13: 978-0201116694 - Out of print.
* by Suzanne Skublics, Edward J. Klimas, David A. Thomas and John Pugh: Smalltalk With Style - Paperback – 2002 - ISBN-10: 0131655493 - ISBN-13: 978-0131655492 - Out of print.
* Kent Beck: Smalltalk Best Practice Patterns - Paperback – 1996 - ISBN-10: 013476904X - ISBN-13: 978-0134769042 - In print
* Patrick Henry Winston: On to Smalltalk - Paperback – 1997 - ISBN-10: 0201498278 - ISBN-13: 978-0201498271 - Out of print.
* Simon Lewis: The Art and Science of Smalltalk - "Textbook" binding – 1995 - ISBN-10: 0133713458 - ISBN-13: 978-0133713459 - Out of print.
* Didier H. Besset: Object-Oriented Implementation of Numerical Methods: An Introduction with Java & Smalltalk - Hardcover – 2000 - ISBN-10: 1558606793 - ISBN-13: 978-1558606791 - Out of print.
* Caleb Drake: Object-Oriented Programming with C++ and Smalltalk - Paperback – 1997 - ISBN-10: 0131037978 - ISBN-13: 978-0131037977 - Out of print.
* John R. Bourne: Object-Oriented Engineering: Building Engineering Systems Using Smalltalk-80 - Hardcover – 1992 - ISBN-10: 025611210X - ISBN-13: 978-0256112108 - In print.
* [http://www.squeakbyexample.org/ Squeak by Example] - Third edition - 2010 - Available as a downloadable [[PDF]] format file or as a softcover book, in French and Korean in addition to English. Written by Andrew P. Black, Stéphane Ducasse, Oscar Nierstrasz, Damien Pollet, Damien Cassou and Marcus Denker.
: Source code from the book can be downloaded [http://github.com/SquareBracketAssociates/ from here].
* Stephane Ducasse: Squeak: Learn Programming with Robots - Paperback – 2006 - ISBN-10: 1590594916 - ISBN-13: 978-1590594919 - In Print.
* Gene Korienek, Tom Wrensch and Doug Dechow: Squeak: A Quick Trip to ObjectLand - Paperback – 2001 - ISBN-10: 0201731142 - ISBN-13: 978-0201731149 - In Print.
* Mark J. Guzdial and Kimberly M. Rose: Squeak: Open Personal Computing and Multimedia - Paperback – 2001 - ISBN-10: 0130280917 - ISBN-13: 978-0130280916 - In print.
* Mark J. Guzdial: Squeak: Object-Oriented Design with Multimedia Applications Paperback – December 30, 2000 - Out of print
====Related articles====
* [http://c2.com/cgi/wiki?WhyIsSmalltalkDead Why Is Smalltalk Dead?]
* Alan C. Kay: The Early History of Smalltalk - ACM SIGPLAN Notices, Volume 28, No 3, March 1993.
* [http://c2.com/cgi/wiki?JavaVsSmalltalk Java versus Smalltalk]
====Tutorials and other learning material====
* Harry Porter: [http://web.cecs.pdx.edu/~harry/musings/SmalltalkOverview.html Smalltalk: A White Paper Overview] - An introduction and tutorial suitable for those with some experience with squiggly brace languages such as [[C]] or [[Java]].
==Links==
====USENET====
* [news:comp.lang.smalltalk comp.lang.smalltalk] - Fairly popular - Go to the [https://groups.google.com/forum/#!forum/comp.lang.smalltalk Google groups version] if your ISP does not offer USENET access or you are are in any other way newsgroup challenged.
==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:

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

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

Implementations that run under Win-OS/2
Win-OS/2 compatible Smalltalk libraries and utilities

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

Links and publications

For information on Smalltalk writings in print see the Smalltalk Bibliography

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.