Squeak/Smalltalk 6.1 Release Notes
Squeak/Smalltalk unveils its 6.1 "Vanessa" release, a significant update after four years that refines its iconic live-coding environment with UI/UX improvements, advanced debugging, and core language enhancements. This release rekindles discussions among HN users about Smalltalk's fundamental influence on programming paradigms and its unique approach to software development. Despite the extensive changes, a persistent pain point for many remains the ongoing lack of robust high-DPI support.
The Lowdown
Squeak, the venerable Smalltalk environment, has launched its 6.1 "Vanessa" release, marking a substantial four-year development cycle that introduces over 1700 patches and 9000 method changes. This update focuses on modernizing the user experience, enhancing development tools, strengthening the core language, and improving system services, all while preserving Smalltalk's unique live-programming paradigm. The release notes themselves are interactive, allowing users to experience code examples directly within SqueakJS in their browser or a downloaded Squeak image. This release is dedicated to Vanessa Freudenberg (1972-2025), a key contributor.
Key highlights from Squeak 6.1 include:
- User Interface Overhaul: Significant improvements to Morphic, including a new tree browser for class and category navigation, the return of "Objectland" (Worlds of Squeak), and extensive enhancements for high-DPI displays, multilingual support, and general UI stability and performance.
- Advanced Development Tools: Introduction of a new tree browser for system categories, classes, and packages, alongside refined drag-and-drop capabilities. The debugger sees major upgrades with new "send until" and "run to here" commands, a byteCode mode for single VM instruction stepping, and improved handling of exceptions and processes. A new system profiler,
AndreasSystemProfiler, is also integrated. - Core Language Refinements: Expanded numeric facilities, support for non-local exits with values, and more robust promise handling. Significant work has been done on processes and scheduling, improving reliability in concurrent debugging. The compiler now allows sending private selectors to super and provides better parsing warnings and source range recording. The MethodMassage package for method dis/reassembly is now part of the core.
- Enhanced Collections and HTML Parsing: Numerous new conveniences for enumerating and modifying collections and streams, including new string utilities. HTML parsing is vastly improved for rich-text emails and clipboard content, with better handling of permissions, blockquotes, and whitespace.
- Modernized Files and Networking: Introduction of a preference to cache changes files in the image, allowing standalone executable images. IPv6 support is now enabled by default, and mail message rendering, SMTP client, and MIME document handling are all significantly improved. New Regex features include Unicode literals, character class escapes, and named/non-capturing groups.
- Robust System Services: Ephemerons are introduced for instance-based finalization, offering more reliable garbage collection for weak indirect cyclic dependencies. Clipboard interfaces are revised for better rich-text support from host systems, and system navigation queries are expanded.
- Version Control Updates: Installer and Monticello now support HTTPS repositories, and the Squot Git integration and Squeak Inbox Talk (email client) have received substantial updates.
This release represents a dedicated effort to both modernize and stabilize the Squeak environment, focusing on enhancing the developer's experience while upholding the platform's core principles of interactivity and malleability. It solidifies Squeak's position as a unique and powerful environment for deep system exploration and development.
The Gossip
Smalltalk's Enduring Epistemology
Commenters reflect on Smalltalk's profound influence on their understanding of programming, particularly object-oriented concepts, akin to how Lisp redefines language perception or Erlang concurrency. Some note Smalltalk's direct lineage to modern features found in languages like JavaScript (e.g., prototypes from Self). However, others question the direct comparison, highlighting JavaScript's fundamental differences in object models and message passing compared to Smalltalk's more pure object-oriented approach.
High-DPI Headaches
Despite the extensive list of improvements, a recurring theme is the community's frustration with the persistent lack of proper high-DPI display support. Users lament that the UI remains 'pixely and slow' on high-resolution screens, a problem that has reportedly gone unaddressed for at least a decade. While acknowledging that other Smalltalk dialects like Pharo are also working on graphical stack overhauls to tackle this, the current release still leaves many waiting for a crucial visual fidelity upgrade.