[comp.sys.mac.hypercard] XCMDs do not give you access to the expr. power of C

mmwst1@unix.cis.pitt.edu (Michael M Wagner) (10/21/90)

XCMDs are widely believed to allow you to attach an arbitrary
piece of code developed in you favorite language to a hypercard
stack.  The few books that I have read on XCMD make no effort
to point out that this is not true and that there are many things
that you would like to do (like efficient file I/O) that are
not possible.

The source of the problem, as I understand it, is that XCMDs must
be attached to stacks as resources, *but* many language functions
cannot be used outside of applications.  In C these include a
large portion of the ANSI library (file IO, console, to name two
groups).


I'd appreciate any comments or solutions.

leonardr@svc.portal.com (Leonard Rosenthol) (10/25/90)

In article <51360@unix.cis.pitt.edu>, mmwst1@unix.cis.pitt.edu (Michael M
Wagner) writes:
> XCMDs are widely believed to allow you to attach an arbitrary
> piece of code developed in you favorite language to a hypercard
> stack.  The few books that I have read on XCMD make no effort
> to point out that this is not true and that there are many things
> that you would like to do (like efficient file I/O) that are
> not possible.
> 
> The source of the problem, as I understand it, is that XCMDs must
> be attached to stacks as resources, *but* many language functions
> cannot be used outside of applications.  In C these include a
> large portion of the ANSI library (file IO, console, to name two
> groups).
> 
> 
	It may be true that you can not use such things as the ANSI C library
from an XCMD - BUT YOU CAN get the full functionality of the ENTIRE Macintosh
Toolbox from an XCMD - and that is the power of XCMD's.  Hypertalk is a very
limited language, especially given its lack of MacToolbox support.  
	In order to improve that, Dan Winkler (I believe) came up with the 
idea of these  External Code Modules (XCMD/XFCN) whereby a programmer could 
extend the capabilities of Hypertalk.   These capabilities range from support
for popUpMenus to fullFeatured drawing/charting tools to communications 
facilities (serial, appletalk & TCP/IP) and everything in between.
	You will also find that most Mac programmer don't use a lot of the
ANSI C libraries, and use the toolbox instead.  So maybe I can't use the
console - but on a Mac, who'd want to?!!?

--
Leonard Rosenthol
Software Ventures Corp.
MicroPhone II Development Team