What is cool about Squeak?
Last updated at 12:06 pm UTC on 31 March 2017
Easy Access to the Computer
- Squeak offers the average programmer easy access to basic services of the computer.
- Memory access is offerred via a rich, uniform programming model.
A Uniform Programming Model
- Objects and Messages
- Everything is an object in Smalltalk including number, string, character, code blocks, and even classes.
- Message sending is the fundamental metaphor for requesting an object to carry out its operation.
- No special constructs are needed such as control flow statements like other languages because everything is a message send.
- Same operations such as browsing a class, finding implementors of a method, finding senders of a method, executing and inspecting code fragment, can be applied to text in any place.
- Every text area understands Smalltalk code.
- Squeak is not just a language, but a whole environment in itself.
- Squeak is a live system, so there is no need for lengthy recompilation and restart. Anything you modify will be compiled and take effect immediately.
- The "image" preserves the exact-state of all objects. Save-and-exit with the debugger up, restart later and resume debugging exactly where you left off, instantly.
- Squeak is a decendent of Smalltalk-80, and is written in Smalltalk itself. Squeak's Interpreter, Parser, and Compiler are written in either Smalltalk or Slang (a subset of Smalltalk) which makes it extremely easy to debug and extend.
- Native code is generated by Smalltalk code
- VM is bit for bit identical across OS and Hardware, unlike JVM and some others
- Source code for every class is browsable and modifiable including all the kernel classes.
- Squeak includes a very powerful Debugger which lets you examine each stack frame, send message to each object in the frame, and restart the operation easily.
- Inspector allows you to examine and query live objects in a separate window as the program is run or debugged.
Many cool and revolutionary ideas were conceived from the Smalltalk community:
These platforms and frameworks allow sophisticated applications to be written