F-Script Anywhere (and Mac OS X) are very cool
F-Script is a Smalltalk dialect for Mac OS X. Clearly, many in the Mac community are already aware of F-Script, since it won an Innovators Award in 2003. I’d imagine many are always aware of F-Script Anywhere, which allows you to attach F-Script to any Mac OS X program. I wasn’t aware of this until yesterday, so I just had to say “wow! that’s cool!”.
Using F-Script Anywhere, you’ve got an object browser that you can use to poke around at the various objects in a running program, sending messages and getting responses back. Within a couple minutes of download F-Script Anywhere, I was able to send JavaScript commands to my running Safari window. Mac OS X has the coolest software architecture around.
Speaking of the Mac OS X software architecture, Apple has an open source package called Core Foundation Lite, which provides a number of the base classes used in Cocoa development. I knew that Mac OS X’s kernel was open source, but I didn’t realize that some of the framework code was also open source. CFLite is still quite low-level, but it is a way to move some code between platforms.


Are you aware PyObjC also has this sort of capability? Not sure about the browsing feature, but certainly the injection side of things:
http://svn.red-bean.com/pyobjc/trunk/pyobjc/Examples/00ReadMe.html
I played a little bit with PyObjC’s injection yesterday but was having some trouble with it. I’m sure I’ll play with it some more later.
I don’t think it has the same kind of browsing feature that F-Script does, though. Give it a whirl and you’ll see what I mean…
objc.inject is a facility to perform injection, not an environment to play with… however, in svn anyway, there are examples for both injecting a class browser and injecting an interactive interpreter.
As for CFLite, it’s C code, so they’re not classes. CFLite is some of the code used in the underlying implementation of some of the Foundation classes (CFString, CFNumber, etc.).
When I said “playing with” objc.inject, I meant doing nothing more than running test.py on the couple of examples and trying to see what happens. As opposed to more serious experimentation…
I’ll have to take a look at the new stuff you have in svn. Sounds very cool. I’d certainly rather work with a Python interpreter than F-Script (since I know Python, but not Smalltalk).
Thanks for the clarification about CFLite. I hadn’t noticed that that package was all C, which makes sense given that CoreFoundation is C (something I hadn’t noticed until earlier today, as I’ve been peering out from my Python-insulated world). As you can tell, I’m still learning the parts of the system…