Fascinated by Snobol's unique string-centric nature and pattern matching capabilities, the author decided to learn the language. They found its table-driven implementation particularly intriguing, inspiring them to explore implementing a similar structure for a different language. This led to the creation of a small, experimental Forth interpreter written in Snobol, showcasing how Snobol's pattern matching could effectively parse and execute Forth code. The project served as a practical exercise to solidify their understanding of Snobol while exploring the underlying mechanics of language implementation.
The Jupiter Ace, a British home computer from the early 1980s, stood out due to its use of Forth as its primary programming language instead of the more common BASIC. While Forth offered advantages in speed and efficiency, its steeper learning curve likely contributed to the Ace's commercial failure. Despite its innovative use of a then-obscure language and compact, minimalist design, the Jupiter Ace ultimately lost out in the competitive home computer market, becoming a curious footnote in computing history.
HN commenters discuss the Jupiter Ace's unique use of Forth, some appreciating its educational value and elegance while others find it esoteric and limiting. Several recall fond memories of using the machine, praising its speed and compact design. The limited software library and RAM are mentioned as drawbacks, alongside the challenges of garbage collection in Forth. The unconventional keyboard layout and the machine's overall fragility are also discussed. One commenter notes the irony of its Sinclair connection, being designed by former Sinclair employees yet failing where Sinclair succeeded. A few comments delve into the technicalities of Forth and its implementation on the Ace, while others lament its ultimate commercial failure despite its innovative aspects.
MilliForth-6502 is a minimalist Forth implementation for the 6502 processor, designed to be incredibly small while remaining a practical programming language. It features a 1 KB dictionary, a 256-byte parameter stack, and implements core Forth words including arithmetic, logic, stack manipulation, and I/O. Despite its size, MilliForth allows for defining new words and includes a simple interactive interpreter. Its compactness makes it suitable for resource-constrained 6502 systems, and the project provides source code and documentation for building and using it.
Hacker News users discussed the practicality and minimalism of MilliForth, a Forth implementation for the 6502 processor. Some questioned its usefulness beyond educational purposes, citing limited memory and awkward programming style compared to assembly language. Others appreciated its cleverness and the challenge of creating such a compact system, viewing it as a testament to Forth's flexibility. Several comments highlighted the historical context of Forth on resource-constrained systems and drew parallels to other small language implementations. The maintainability of generated code and the debugging experience were also mentioned as potential drawbacks. A few commenters expressed interest in exploring MilliForth further and potentially using it for small embedded projects.
Summary of Comments ( 12 )
https://news.ycombinator.com/item?id=43951885
Hacker News users discuss the original poster's experience learning SNOBOL and subsequently creating a toy Forth implementation. Several commenters express nostalgia for SNOBOL, praising its unique string manipulation capabilities and lamenting its relative obscurity today. Some discuss its influence on later languages like Icon and Perl. Others debate SNOBOL's performance characteristics and its suitability for various tasks. A few users share personal anecdotes about using SNOBOL in the past, including applications in bioinformatics and text processing. The discussion also touches on the differences between SNOBOL and Forth, with some commenters expressing interest in the poster's Forth implementation.
The Hacker News post titled "I learned Snobol and then wrote a toy Forth" generated several comments discussing various aspects of Snobol, Forth, and programming languages in general.
Several commenters reminisced about their experiences with Snobol, often highlighting its unique pattern-matching capabilities. One user fondly recalled using Snobol on a mainframe in the 1970s, emphasizing its power for text processing tasks that would be cumbersome in other languages. Another commenter pointed out the educational value of Snobol, particularly in understanding different programming paradigms. Its distinct approach, they argued, broadens one's perspective beyond more conventional languages.
The discussion also touched on the influence of Snobol on other languages, with one commenter mentioning its impact on Icon and SL5, highlighting the legacy of its pattern-matching features. The concise and expressive nature of Snobol's syntax was also praised, with one user contrasting it favorably to the perceived verbosity of Perl.
The connection between Snobol and Forth, as mentioned in the title of the post, also drew comments. One user questioned the perceived relationship, prompting the original poster to clarify that learning Snobol inspired them to explore other unique languages, leading them to Forth. This sparked further discussion about the contrasting philosophies of the two languages.
Some commenters expressed curiosity about the specific implementation of Snobol used by the original poster, including Catspaw Snobol and the Vanilla Snobol4 implementation. This led to a brief exchange about the availability and portability of different Snobol versions.
Beyond the specific languages, the conversation broadened to encompass the value of learning "weird" or less mainstream languages. Several commenters argued that exploring such languages can significantly expand a programmer's understanding of different programming concepts and approaches. This sentiment was echoed in a comment suggesting that languages like Snobol and Forth encourage a deeper appreciation for the underlying mechanics of computation. The thread also briefly touched on the practical applications of Snobol, with one commenter mentioning its use in bioinformatics.