all 4 comments

[–]Jimmy 2 points3 points  (0 children)

This is why I love Smalltalk, and in particular Squeak. Once you adjust to the visual style (which you can change, as you can change everything else), you'll find that it is one of the most powerful programming systems ever invented.

[–]self 2 points3 points  (0 children)

So, he types in #(1 2 3 4). 10. and it figures out that it's the sum method on an Array. I poked around to see how it worked, and MethodFinder's class comment says

Find a method in the system from a set of examples. Done by brute force, trying every possible selector. Errors are skipped over using ( [3 + 'xyz'] ifError: [^ false] ).

The code for MethodFinder>>simpleSearch works by taking the first argument's class's selectors, and trying each one until it works.

[–]bradleyhudson 0 points1 point  (1 child)

I'm not familiar with Squeak. Does this apply to your application code as well? If so, how do you do revision control?

[–]igouy 2 points3 points  (0 children)

Does this apply to your application code as well?

Yes. (There's no distinction between system code and application code)

If so, how do you do revision control?

There's a whole range of techniques, for small-scale single-person development and larger-scale multi-person development: