Why is the syntax of Bistro different from Smalltalk?
The design of Bistro was driven by some very specific goals. Foremost among these are: • Compile Bistro code to standard Java class files. • Maintain the simplicity, expressiveness and readability of Smalltalk. • Support the ANSI standard Smalltalk behaviors where possible. • Support seamless integration with existing Java classes. • Support primitive methods written in Java . • Optimize messages to untyped receivers as much as possible without modifications to the Java VM. • Optimize messages to typed receivers, including typed variables, arguments, and casted receivers. • Provide mechanisms for porting Smalltalk code to a Java runtime environment. Goals 1 and 2 were the primary factors I had to keep in balance during language design. They provided a constant tension for many decisions. Goals 2 and 6 drove the design of the syntax for Bistro messages and methods. Goals 3 and 4 drove the development of the initial class library supplied with Bistro. Goals 5 and 7 provided support for i