Domain: fscript.org
Stories and comments across the archive that link to fscript.org.
Comments · 17
-
Re:cough HYPERCARD cough
Can you edit the user interface of a Cocoa application WHILE it's running? YES, but not exactly the way you could with Hypercard.
Please read the link provided, http://www.fscript.org/ and understand "F-Script can be dynamically injected into any Cocoa application. " I agree that Hypercard is a wonderful interactive tool as are traditional Smalltalk and modern scripting environments such as PyObjc with Interface Builder. Hypercard, to and even greater extent than REALBasic, is limited to low complexity interactive "script" environments. It just doesn't scale to full featured applications that must be developed by a team larger than 1 person. As already mentioned, many large key Apple and third party applications (in fact, pretty much all Mac applications these days) use Interface Builder.
It is worth noting that Cocoa makes OpenDoc unnessasary and that in the past, standard object embedding has been available with Cocoa: "Open Object Embedding (OOE) is Lighthouse Design's compound document standard. OOE allows you to seamlessly create word processing documents that contain elements from other applications, for example drawings, spreadsheets, equations and tables."
Jonathan Schwartz (Current President and CEO of Sun Microsystems) was co-founder of Lighthouse Design and sold Lighthouse Design to Sun in 1996. -
Re:cough HYPERCARD cough
I concede that HYPERCARD is/was an awesome user editable application development tool. Smalltalk is/was similar in the sense that every user of a Smalltalk application had the entire Smalltalk environment and the opportunity (if not skill) to change anything.
You might enjoy http://www.fscript.org/ and its object browser and object injection capabilities. In fact, f-script plus Interface Builder should make any HYPERCARD programmer who wants to make serious (user editable)applications simply ecstatic.
There are many interactive scripting environments today including Python, Ruby, Tcl, Perl, and more. You can even use Interface Builder with them. If user editable application logic is what you want, any of the scripting environments will suite you. http://pyobjc.sourceforge.net/ http://rubycocoa.sourceforge.net/doc/
However, Interface Builder absolutely DOES enable end users to manipulate any aspect of the user interface. If you have a Mac, open any of the Next Interface Builder (NIB) files for Cocoa applications from Apple or third parties in Interface Builder and edit away. Add, remove, rearrange any GUI components. Change the menus and short cuts, add menus, add new windows, change what objects do, enlarge fonts, create your own localization,... You can even add your own custom objects that didn't exist when the application was compiled into the mix.
In practice, people don't do this for three reasons:
1) They don't know they can
2) It is easy to break things or degrade the application's functionality (which was true of HYPERCARD as well)
3) Apple and some third parties cleverly remove the data.classes file from within the nib (a nib is actually a directory of files). However, you can re-introduce a blank data.classes from any source, and Interface Builder will let you open and edit the nib. You need to open the nib "files" with "Show Package Contents" http://www.macosxhints.com/article.php?story=20060 720091325592
References:
Add custom objects as end user: http://www.lorax.com/FreeStuff/TextExtras.html
Add localizations and changing nibs: http://developer.apple.com/documentation/MacOSX/Co nceptual/BPInternational/Articles/InternatSupport. html
http://groups.google.com/group/comp.sys.next.advoc acy/browse_frm/thread/bb63e0fdbc1a6ad4/18a92b75f44 ecf64?lnk=st&q=&rnum=1#18a92b75f44ecf64
http://groups.google.com/group/comp.sys.next.misc/ browse_frm/thread/a9961e36d73960c8/a60ebfdef5c355e b?lnk=st&q=&rnum=2#a60ebfdef5c355eb
http://groups.google.com/group/comp.sys.next.progr ammer/browse_frm/thread/fa4dd3e06dddfaec/3ac62f070 2daf32e?lnk=st&q=&rnum=9#3ac62f0702daf32e -
wow... how amazingly ignorant...
My point is, that NeXTStep / Cocoa is NOT among the wonderful user-editable software inspired by HyperCardCounter-examples of "wonderful user-editable software inspired by HyperCard"?
At this point, it's an old, obsolete architecture [...]Did you miss your parent's mention that iWork and practically all the other Apple-blessed apps are built with Xcode using Cocoa? How exactly is a framework currently in wide use producing great software "obsolete"?
It does not support run-time scripting and user interface building and customization like HyperCard and OpenDoc did.Just plain wrong... F-script. Allows run-time scripting of Cocoa apps.
Methinks ya need to get off the HyperCard horse. It was a toy. A very neat, powerful, interesting, creative toy, but still a toy. How many programming languages could be used w/ HyperCard? Can you give me examples of HyperCard applications of any significant complexity? I thought not...
Seriously, HyperCard isn't even in the same league as Cocoa w/ Xcode.... might as well come off it already... sheesh... -
Don't forget F-Script
Don't forget F-Script, which lets you write Cocoa applications in a Smalltalk-like language and environment.
F-Script is free and open-source. -
Other scripting environments
There are several other scripting environments for Cocoa, including bridges for Ruby, Python, Perl and Lua. AFAIK they don't have graphical tools like those provided by F-Script for playing with Cocoa objects.
-
Re:PyObjC?
F-script enables you to send messages to entire collections of objects at the same time. i.e. "> ArrayOfThings value" fires a value message to the array causing each object within the array responds to the message however it see's fit. When you get collections of arrays of objects takking to each other clever things can happen... http://www.fscript.org/documentation/OOPAL.pdf tim
-
Re:better solution
Smalltalk and Cocoa are a great fit. See F-Script.
-
Re:I want Smalltalk on OS X....
You might want to look at F-Script, which is a combination of Smalltalk and Cocoa Syntax is Smalltalk (including blocks etc.) and object model is Cocoa. Absolutely wonderful to play with Cocoa objects interactively.
-
Re:PARCPlace's Environment Beat It
F-Script is Smalltalk for Cocoa.
-
Re:If you're doing a small Cocoa app...
F-Script is a great scripting language for Cocoa.
-
Cocoa from various languages
Interesting, Cocoa can now be used from a bunch of languages. See this list. -
Re:First impertinent postOh and I'd much rather not use Objective-C for anything, I find it incredibly hard to read, and I know many languages.
That's exactly what I thought, until I started using it. The method syntax actually makes it more readable than most other languages. (Ugh, tried to paste examples but the lameness filter doesn't like it).
language neutral APIs are generally much nicer imho
You can write Cocoa apps in many languages, including Java, Perl, Python, Ruby, Smalltalk, and Lisp. -
F-Script for interactive Cocoa fun!
A nice complement to Cocoa Objective-C is F-Script, an interactive environment for easy exploration and scripting of Objective-C objects.
It's open source, graphical, easy to use and quite fun. -
F-Script
For Mac OS X have a look at F-Script. You can inspect a running program and call any method in that program and any method on any object in the Objective-C runtime. This should allow you to generate events or enter text in text fields, etc.
Of course this will only work for programs developed using Cocoa. Can't help you with Carbon apps. You might be able to write something using the Apple Event manager.
Last time I had to do this for Linux (and Gtk+) I had to roll my own.
-
F-Script
Another great way to interact with Cocoa apps is F-Script and F-Script Anywhere.
I know it's not exactly what the asker was looking for, but AS and Perl have already been discussed in detail. F-Script offers a different type of scriptability. -
Re:Do It Better?
I want to build a better matlab... I've been looking at f-script as a possible starting point. I'm learning Cocoa to try and see if I can do the plotting....
I think math toolkits need to be open source, otherwise the work you put into it is tied to the fortunes of a particualr company that either might not be around or decide to stop supporting what you need (like mathworks deciding to stop supporting macs). -
Re:I can tell you why *I* am not using Ruby.
An interesting language is F-Script, which is a smalltalk-like language with array-processing constructs like APL - so if you have an array of objects, it has an economical syntax for doing matrix operations consisting of messages on them.