waveforms + more rants about Rev as a dev. tool for the future
Richard Gaskin
ambassador at fourthworld.com
Thu Mar 25 14:39:42 EST 2004
jbv wrote:
> So these days the main question is (at least for me) : is it worth adding
> about 1,2 Mb (the Transcript engine) to a standalone, just to handle
> mouse events ? IOW, is it worth keeping Rev as the central dev. tool
> for an app, and why not used C librairies instead, and code the whole
> thing in C ?
Trivializing what the engine delivers as "just to handle mouse events"
seems unfair, overlooking the majority of what it does.
Exercise for the reader:
1. Boot your favorite C compiler and make button to select a folder,
filter out every file in that folder that isn't a Qucktime file, and
then display those QT file names in a scrolling list and have them play
when clicked on.
2. Then do that in Transcript.
I'd wager you'd save at least two orders of magnitude of your time doing
it in Transcript over your C version, with no perceived difference in
runtime performance.
3. Then make another version for another operating system -- the
benefits multiply.
:)
Sure, there are a good many specialized, computationally-intensive tasks
for which Transcript is not ideal, like modifying large binary data sets
such as audio files. For such vertical needs an externals API is
provided, so you can use Rev to handle the other 90% of your application
and spend your time on the things unique to your application.
Take a skim through the Transcript Dictionary and in addition to mouse
events you'll find:
- Extensive file I/O with binary and text modes, overwriting
or appending, and automatic conversion of line-endings to
and from platform-specific formats
- Windows Registry manipulation
- Mac AppleScript support
- Mac resource fork manipulation
- Built-in gzip compression and decompresion
- Built-in Base64 and MD5
- Image import, export, scaling, cropping, and rotation in
most popular formats, with options for controlling image
compression format and quality
- Automatic appearance changes for platforms (even better
in v2.2; rather beautiful in the new version)
- Robust omni-platform drag-and-drop support
- Automatic menu initialization and event handling, with automatic
changes in menu item placement appropriate to each target
platform
- Robust QuickTime playback support, all the way down to QTVR
node handling
- Audio recording and playback, with control over options for
source, codec, and quality settings
- Automatic conversion of a useful subset of HTML and RTF
formats for styled text manipulation, import, and export
- Command-line access
- Ability to launch external applications and other processes
- Built-in socket support, with library for handling FTP and
HTTP both synchronously and asynchronously -- with many
operations just one-liners
- One-line DNS lookups
- One-line access to OS file, folder, and color selector dialogs
- Robust and efficient hierarchically-structured arbitrary data
storage of both text and binary data in custom property sets
- XML parsing
- Text searching and substring manipulation
- Built-in color table selector objects and eye-dropper tool
- Automatic layout printing, and library for automatic paginated
text printing with header and footer
- One-line alias/shortcut creation
- Simple, robust, and flexible date and time manipulation, with
options for localized date formats, month names, etc.
- Robust omni-platform vector objects tools, with arrow heads and
markers provided automatically for easy chart-making and more
- Robust omni-platform paint tools, with magnify and more
- Built-in transition effects, and flexible access to QT's
transition effects
- Animation commands
- Automatic memory management, going far beyond mere garbage
collection
- And more....
Most of these are available with equal ease on all supported platforms,
a significant feat in itself.
All this for just 2MBs in a single, self-contained executable file with
no army of DLLs strewn all over the hard drive?
Seems like a bargain to me.
Sure, there is no button in the Rev IDE named "Design and Create
Application", so I still need to roll up my sleeves and cut some code.
But it's a nearly indescribably joy for me to focus on the people side
of software design, leaving the bit-counting for the VM, so I'm happy
for the relatively tiny fraction of my apps that I need to code myself.
> But really, for the last 12 or 18 months, I got the feeling that the
> market of multimedia developpement (and mostly the requests from
> clients for much more sophisticated functions) has evolved in huge
> proportions...
> In the same way, my own projects (for personal needs) can't be built
> anymore with Rev only...
That can happen, from time to time you may need things that are best
done in C. In many cases the optimal use of one's time will be letting
Rev handle the UI, file I/O, and other things it does well and easily,
and focus your efforts on the components unique to your application.
> And therefore I'm wondering whether Rev has (or can) evolved in the
> same proportions... Could it be that a peak could be reached (in the
> number of built-in features that could be added to the engine) in a
> more or less near future, and that we'd witness constant evolution
> in the market (and clients') needs, while we would be able to satisfy
> less and less requests with Rev alone ?
The biggest shift I've seen in the market in recent years is toward
Internet-savvy applications, at which Rev excels with nearly unequaled
grace.
This month's example: I'm working on an app for a client that needs to
allow a team of 20 medical professionals to edit multimedia content from
three continents. The system inolves both client and server components,
with an administration tool for the project managers to create and
modify user accounts, review status and changes, etc. The client needs
to run on both Win 2K, XP and OS X, while the server is running Linux.
Given the highly specialized audience, the UI had to be ultra-simple; no
off-the-shelf solution like WebDAV would have been unacceptable.
Moreover, the nature of the content editing tasks themselves needs to
support specific activities far beyond the scope of WebDAV, and be
integrated into a change-tracking system that allows the project
managers to identify and review changes easily (including a markup mode
that shows text revisions with strikethroughs and color to make deleted
and added content readily identified at a glace).
Given the multi-platform nature of the system C would have been much
more expensive than Java, and even crafting such a system in Java would
have been cost-prohibitive. While the product we're working on has a
proven track record and is quite profitable, the additional time needed
to support a Java-based workflow would have eaten at least two years'
gross margins, possibly more, requiring outside investment, killing any
amibitions for expanded marketing activities, and radically slowing
time-to-market.
Using Rev the entire system is funded out of existing sales, with the
company remaining in the black throughout the development of this new
system.
That's the sort of value proposition inherent in the Rev workflow that I
just don't see matched with other methods. And I see it again and again
with every product I work on.
--
Richard Gaskin
Fourth World Media Corporation
___________________________________________________________
Ambassador at FourthWorld.com http://www.FourthWorld.com
More information about the use-livecode
mailing list