On 25.03.2011, at 12:06, Torsten Bergmann wrote:
- why is it still hard to interface with the outside world from Squeak (is it a problem of current FFI implementation, the lack of callbacks, lack of pinned objects, ...) I doubt that it is a problem of Syntax, although I liked the way it was done in Smalltalk/MT and Smallscript:
IMHO it's just lack of interest. One of the reasons people choose Squeak is its "cross-platform-ness", so adding specific platform support rarely gets larger traction. But projects like Mars show it's possible, you just really need to want it :)
Example ST/MT:
WINAPI MessageBox: NULL with: result asString with: 'Can you do this in another language' with: MB_YESNO | MB_ICONHAND
Callback methods are in special method categories.
Example Smallscript/S#: User32::MessageBox(NULL,'Hello','World',0)
This has not much to do with FFI syntax itself. But *someone* created those classes. In Squeak, you would just need to create a "WINAPI" or "User32" class that provides all the functions.
That's how the OpenGL bindings work in Croquet, for example. As a user you just call the OpenGL functions, someone else took care of providing the FFI calls.
- Bert -