ambassador at FourthWorld.com
Sun Jun 2 16:05:00 EDT 2002
Kee Nethery writes:
> I've been following the Revolution lists because it is the closest
> thing available to Hypercard but I've been exploring all the
> alternatives because I've come to believe the dominate opinion that
> Hypercard and things like it, are not real programming environments.
This begs the obvious question: What defines a "real" programming
I don't mean to dis HyperCard, but there were a number of design decisions
that forced non-standard workarounds (e.g., what were they thinking with
that scroller widget palette while everything else Apple turns out uses
scrollbars?). Even with the few stacks laden with hundreds of dollars of
externals to get around such things, you need only drag a window and watch
its outline snap at 16-pixel increments to know what it was built with.
SuperCard took giant leaps to give folks the ability to make native-looking
apps, but the speed of the interpreter still posed some design limitations.
And then there's Revolution: I have an commercial app built with the Rev
engine, and it's so fast a magazine editor listed it as having been built
with C++. :)
That editor wasn't far off the mark. As my old pal Mark Hanrek used to
remind me, "It's all about where you place the dividing lines", determining
when to leave something up to the scripter and when to include it as
optimized machine code in the interpreter.
For example, the Transcript "split" and "combine" commands could be done
with scripting, but they're so commonly used that it makes good sense to
have those in the interpreter. The "repeat for each" construct is another
good example of smart dividing lines in language design.
As Osterhaut describes in his seminal paper, "Scripting: Higher Level
Programming for the 21st Century" (see
<http://dev.scriptics.com/doc/scripting.html>), most modern high-level
languages act as a sort of glue that connects optimized precompiled
routines. With such a perspective, clearly an advantage lies with those
languages that let you do the most work with the fewest scripted lines.
You intuitively discovered this for yourself with this observation:
> I sat through Geoff's presentation with some other folks at Apple's
> WWDC and then we sat through the RealBasic presentation. Geoff did an
> excellent job but the clincher for me was seeing the RealBasic demo.
> RealBasic just looked more complicated.
Looking at Fig. 1 from Osterhaut's paper, mentally substitute "Visual Basic"
with "RealBASIC", and "TCL" with "Revolution".
Perhaps the biggest obstacle to being considered a "real" programming
language is simply marketing. In spite of the beauty and power of HyperTalk
and its subsequent influence on the industry (it was the inspiration for
Visual Basic, which was first prototyped on a Mac using SuperCard), Apple
dropped the ball and botched a golden opportunity. Microsoft's investment
in VB shows how it could have been for Apple: strong investment in
evangelizing an OS-specific high-level programming system guarantees rapid
proliferation of apps for that OS.
Rev takes this proposition a step further by giving us true platform
independence. Only Java lets you develop and deploy GUIs on as many
platforms, but Java runs much slower and has an order-of-magnitude longer
RealBASIC enjoys a perception of viability not entirely of their own making:
by riding on the coattails of Microsoft's unmatched investment in
popularizing VB, the program is in the enviable position of being able to
leverage the huge infrastructure and community assets of the VB world (for a
good discussion of why this is critical for product adoption see Geoff
Moore's book "Crossing the Chasm"). As a thought experiment, imagine where
any of the BASIC flavors would be today if it weren't for Microsoft.
Meanwhile, if you look past the marketing and focus on results, on what a
tool lets you deliver relative to your effort, as you've discovered
Revolution provides a very strong return on investment.
Fourth World Media Corporation
Custom Software and Web Development for All Major Platforms
Developer of WebMerge 1.9: Publish any Database on Any Site
Ambassador at FourthWorld.com http://www.FourthWorld.com
Tel: 323-225-3717 AIM: FourthWorldInc
More information about the Use-livecode