Home > Software Development > F-Script Anywhere (and Mac OS X) are very cool

F-Script Anywhere (and Mac OS X) are very cool

April 21st, 2005

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.

Software Development

  1. April 21st, 2005 at 08:18 | #1

    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

  2. April 21st, 2005 at 08:44 | #2

    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…

  3. April 21st, 2005 at 13:40 | #3

    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.).

  4. April 21st, 2005 at 14:07 | #4

    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…

  1. No trackbacks yet.