Smalltalk is a programming language released in 1972. One of many object-oriented languages based on Simula, it has been one of the most influential, as nearly every object-oriented language that came after it was influenced by Smalltalk.
As we know, computers are only able to interact with binary strings of symbols. For that reason, computer programs have to be coded in a binary language, which is also known as a machine language. However, binary codes are difficult for people to read, so directly programming in machine language is a lengthy process, and one that is prone to error. Complicating this even further is the fact that every type of computer system uses its own machine language.
Thus, early computing was painstakingly slow, as programmers had to write code in binary languages. Then languages, such as ALGOL, Fortran, COBOL, Pascal, and C were developed. These languages were considered problem-oriented because the programmers no longer had to write instructions in the language of a specific machine, but could instead write problem solutions in a language that made sense to them, perhaps using mathematical notations. These programming languages became known as higher languages.
In order for a program written in a higher language to be run on a specific computer, the code needed to be translated into machine language, a process that was automated through compilers. A specific compiler for each programming language and each type of machine was required in order for a program to be run on the machine.
Smalltalk operates a little differently. In the interest of avoiding the need to have a compiler for every type of computer that a program would be run on, the Java and Smalltalk programming languages use a machine-independent set of instructions. Programs are translated only into a quasi-machine language, regardless of which machine they will eventually be run on. For each type of machine, though, there needs to be a program that can interpret the quasi-machine language, creating a binary sequence that would be specific for the type of machine that it is running on. This program allows the computer to seem to understand the universal instruction set and, for that reason, this emulation of a computer system is known as a virtual machine, although they may also be called translators.
Although it was released under the name of Smalltalk-80, Smalltalk was first known as SmaViM, the capitalized letters forming the acronym, Smalltalk Virtual Machine. Created by the Smalltalk programming language, SmaViM is the virtual machine that can execute Smalltalk programs once they have been translated into byte code.
Smalltalk has always been, not merely a programming language, but a virtual machine and an integrated development environment (IDE). The IDE includes a modern GUI, which makes it easier for programmers to write Smalltalk programs, translate them, execute them, and perform debugging tasks. Today, there are multiple Smalltalk IDEs available from several sources, and they differ somewhat what they include and how they operate.
The central concept of Smalltalk is that of an object, which is why it is known as an object-oriented language. An object is always an instance of a class, and classes describe the properties and behavior of their instances.
Smalltalk is a pure object-oriented language. Unlike C++ and Java, there is no difference between values which are objects and values which are primitive types. In Smalltalk, primitive values (integers, booleans, characters) are also objects. All values are objects, while variables are not.
Two well-known variants of Smalltalk derived from the early Smalltalk-80 language. Squeak is an open-source implementation of Smalltalk-80, although it has since developed independently. The origins of VisualWorks go back to the first Smalltalk-80 implementation by Xerox PARC and now has both commercial and non-commercial versions. Other significant implementations of Smalltalk include Amber, Dolphin Smalltalk, GemStone/S, GNU Smalltalk, Pharo, Smalltalk/X, and VA Smalltalk.
Websites representing the Smalltalk programming language or any of its implementations or versions are appropriate for this category, as are any tools designed specifically for Smalltalk programming, tutorials, user groups, and other resources directly related to Smalltalk.
Categories
Pharo |
 
 
Recommended Resources
Formerly known as Jtalk, Amber is an implementation of the Smalltalk-80 programming language that runs on the JavaScript runtime of a web browser. Designed to enable client-side development using the Smalltalk programming language, its programming environment is known as Helios. Developed by the Amber Community, it is licensed under the MIT License. An overview, documentation, and an interactive tutorial is available, and viewers may try it in their browser.
https://amber-lang.net/
The largest commercial provider of Smalltalk in the world, Cincom offers both the Cincom ObjectStudio and Cincom VisualWorks, both of which are Smalltalk implementations. The company offers a Personal Use License version of both products, as well as an Academic Use License, for those who qualify. Otherwise, they may be obtained through a value add software license agreement or partnership with Cincom Smalltalk. Its products, services, customer service programs, and contacts are featured.
http://www.cincomsmalltalk.com/
CodeDocs is an educational platform that offers online tutorials and documentation for various programming languages and technologies, including Smalltalk, an object-oriented, dynamically typed, reflective programming language. Developed in 1972, Smalltalk holds a place in the history of computer programming, as well as in contemporary programming. Its history, influences, features, syntax, control structures, classes, and implementations are discussed here.
https://codedocs.org/what-is/smalltalk
GeeksforGeeks: Introduction to Smalltalk
Provided by GeeksforGeeks, an online platform providing resources for programmers, developers, and technology enthusiasts, much of which is free. This portion of their website provides an introductory tutorial for the Smalltalk programming language, including its object-oriented paradigm, language features, history and design, applications, and influences on other programming languages. Its content is sorted into categories, and coding examples are provided.
https://www.geeksforgeeks.org/introduction-to-smalltalk/
Headquartered in Oregon, the company’s products are concentrated on the advancement of Smalltalk technologies, and the company actively markets proprietary software based on Smalltalk, sponsors Smalltalk conferences and other events focused on the programming language. Its product line includes GemStone/S, GemBuilder for Smalltalk/VW, GemBuilder for Smalltalk/VA, GemBuilder for Java, GemConnect, and Visual Stat Display. Its products and services are highlighted.
https://gemtalksystems.com/
Available as a free download under a GNU General Public License or a GNU Lesser General Public License, GNU Smalltalk was developed by the GNU Project and initially released in 2003. Actively maintained and updated, any version may be downloaded, along with with the source code and supporting documentation. Online documentation, blogs, development notes, and a support wiki are available, along with Smalltalk enhancement proposals and other resources.
https://www.gnu.org/software/smalltalk/
The North Carolina company has developed VA Smalltalk, which is its flagship product and fully compatible with VisualAge Smalltalk, as well as WindowBuilder Pro, a tool that allows the user to interactively create, place, and edit user interface controls in a Smalltalk application, each of which are highlighted here, made available for downloading of a free trial version, or online purchase of the full product, as well as other tools. Its products, services, and support programs are highlighted.
https://www.instantiations.com/
Learn X in Y Minutes, Where X=Smalltalk
Included in a collection of concise and practical guides for various programming languages, each of which provides an overview of the language or topic, this is a guide to the Smalltalk programming language, in which everything is an object, including integers, classes, and stack frames. The basics of the language are set forth, including its syntax, and a quick-reference cheat sheet, and several code examples are provided, with links to additional online resources.
https://learnxinyminutes.com/docs/smalltalk/
Developed by Object Arts, Dolphin is an implementation of the Smalltalk programming language for Microsoft Windows. Known for its integrated development environment (IDE), the dialect included an integrated refactoring browser, a package browser, and a WYSIWYG view composer. Previously proprietary, Dolphin 7 has been released as open-source and is available for download. Dolphin 4, 5, and 6 may be downloaded from the site as well, but Dolphin 6.1 Beta is professional only.
http://www.object-arts.com/
RIP Tutorial: Getting Started with Smalltalk
Hosted on RIP Tutorial, an educational platform specializing in computer programming, an introduction and tutorial in the Smalltalk programming language is provided. Included in this tutorial are information about Smalltalk applications, the language's syntax, the source code for the traditional "Hello World" program, installation and setup instructions, and a guide to well-known FOSS implementations, commercial Smalltalks, and other Smalltalk dialects.
https://riptutorial.com/smalltalk
Smallscript - A Smalltalk-Inspired Scripting Language
Featured on Code Project, a platform for developers and programmers that provides various resources related to software development, programming languages, and technology. It serves as a hub where developers can share knowledge, collaborate, and learn from one another. This section of the site introduces a new programming language known as Smallscript, which draws inspiration from Smalltalk's minimal syntax, object-oriented nature, and functional programming support.
https://www.codeproject.com/Articles/5373567/Smallscript-A-Smalltalk-Inspired-Scripting-Languag
This website features information about Smalltalk and Squeak, a modern, open-source Smalltalk programming system. Squeak is a derivative and a descendant of Smalltalk, created by Dan Ingalls and his team at Apple Computer in the 1990s, while Smalltalk is a pioneering object-oriented programming language developed at Xerox PARC in the 1970s. Squeak code is generally compatible with other Smalltalk dialects, although there may be variations due to additional features or differences.
http://smalltalk.org/
Created in 1996, the Squeak programming language is a dialect of Smalltalk. The cross-platform, class-based, reflective, cross-platform language was derived directly from Smalltalk-80 by a group of Apple Computer developers, and continued by the same group at Walt Disney Imagineering, where it was intended to be used in internal Disney projects. Currently, it is supported by Y Combinator. Both Smalltalk and squeak are available under an open-source license.
https://squeak.org/