F-Script is similar to Smalltalk, but the two aren't meaningfully compatible.
- No version of F-Script reads the ANSI standard changes format, so right off the bat, you're in for some changes.
- F-Script does not have the Smalltalk class hierarchy; instead, it wraps the Cocoa class hierarchy. There are nontrivial differences here:
- Method names differ. As a random example, Smalltalk's
copyFrom:
becomes Cocoa's substringFromIndex:
.
- Classes differ.
String
and its friends are replaced with NSString
.
- The metaclass hierarchy is totally different. Major classes like
Behavior
are totally missing from F-Script.
- F-Script 1 did not allow you to define new classes at all; F-Script 2 fixes that, but the format of class definitions has no similarity to the Smalltalk ANSI standard, and is incompatibile with that chosen by the closest practical analog, GNU Smalltalk.
- F-Script adds array comprehension operators by adding syntax that is not in the Smalltalk standard, nor honored by any other Smalltalk implementation in practice. The syntax it picks collides with the way that traditional Smalltalk implementations identify points.
And that's just off the top of my head.
I know that F-Script and Smalltalk look simliar, but, to co-opt George Bernard Shaw, they are two languages divided by a common syntax. Once you begin to work in both for any length of time, you'll immediately experience the depth of their irreconcilable differences.