Recently, I've seen quite a few posts about putting Java support into Squeak or running Squeak via a Java VM. While discussing the particular case of interaction with Java, perhaps we should contemplate a larger question:
"To what degree should Squeak be embeddable and extendable?"
We may want to consider various interactions with other languages (e.g. Self, Python, Perl, Tcl-Tk, Rebol, Eiffel, C/C++, etc.). In Python, for example, embeddability and extendability are core concepts in the language design and Python gains considerable power from these mechanisms.
Squeak is already extendable, via C/C++. Should it be extendable by other compiled languages? What would this involve? Could Squeak be extended via other interpreted languages? What support would be needed in the class libraries to make Squeak's existing extendability more general?
AFAIK, Squeak is not yet embeddable. For what applications might embeddability be desirable? Can a Sqeuak image be somehow packaged as a component? What would be needed to make Squeak available to another language system?
I am curious about these questions, in particular, because many very serious programmers are now using scripting languages as glue to bind widely disparate technologies into united solutions to user needs. This trend towards scripting and interacting language systems seems very strong, today, and I'm wondering to what degree Squeak will be able to fit into a scripting-based picture of the future.
Ultimately, the question is whether Squeak should be isolationist, standing apart as a completely unique and self-sufficient environment, or cooperative, taking its place in a community of interacting languages.
Just musing,
/John Tobler
_______________________________________________________ Get Visto! Groups, event calendars, email, and more... Check it out @ http://www.visto.com/info
Squeak is already extendable, via C/C++. Should it be extendable by other compiled languages?
Any language that can be used to make the platform-appropriate form of DLL can be used to extend squeak. If your platform can make a DLL from BASIC, squeak can call it.
Could Squeak be extended via other interpreted languages? What support would be needed in the class libraries to make Squeak's existing extendability more general?
If there are defined, comprehensible APIs by which one can talk to these other systems, then squeak could use such APIs.
AFAIK, Squeak is not yet embeddable.
Not in the sense of being able to put an image in rom and run out of rom, no. I _think_ it is possible, but it would be easier to do with an OT based system.
What would be needed to make Squeak available to another language system?
That seems the trickier one to me. Calling _in_ to squeak always seems to be a harder thing to think about than simply calling out from squeak. Consider the following:- call out to some dll, which involves a callback to some function. The function is actually a wrapper that calls back into squeak. An error occurs in the squeak side of the call back. What happens? What if the callback has to be completed before the callout can complete and the callout was intended to get an OS event in order to..... etc. It can get painful.
tim
squeak-dev@lists.squeakfoundation.org