Friday, October 09, 2009

What's Old Is New

So I was doing some surfing this week and I came across a product called Runtime Revolution. They claim to have some software that will:
Create outstanding applications yourself with a programming environment you can quickly understand. Achieve immediate results with a visual, drag-and-drop interface builder. Use English, the language you already know, to describe program logic. Deploy powerful cross-platform solutions without the huge learning curve of other development environments.
Well - being the geek that I am - I checked out their tutorials and videos, etc. I was looking at it and looking at it - and it seemed VERY familiar... turns out it is - it's HyperCard!!

Yeah, really, HyperCard! What the?!?

It seems that the passion for the product never died - and those Scottish coders (whomever they are) have been updating the products GUI capabilities while keeping all of the easy-to-use goodness and SmallTalk-based language basically intact.

The idea is that you can create extremely rich GUIs in a way that is MUCH easier than Flash, AIR, OpenLaszlo, etc. This thing runs (and can be edited) on Mac, Windows and Linux (Unix). It creates double-clickable applications for any platform - AND (using a browser plug-in) will work in the web - all with ZERO code changes!

Here's an overview of the features:
  • Author on your favorite operating system - Studio is available for Windows, Mac, Linux or Unix.
  • Create standalone applications for any platform with native appearance and behaviours
  • Fully-featured, English-like programming language with 1596 commands and functions
  • Extensible with code libraries and compiled externals you write yourself or obtain from third parties
  • Ability to automate system functions and "office" applications
  • Embedded web browsers.
  • Powerful libraries for manipulating Internet protocols, XML, compression, encoding/decoding
  • Your very own User Space with 10 MB free space to share your stacks online.
  • Integrated connectivity for ODBC, MySQL, PostgreSQL SQLite and Valentina databases**
  • Flexible chunk expressions, regular expressions, arrays, and sorting functions for manipulating data
  • Complete printing and reporting facilities for professional output
  • Ability to run as CGI process on web servers

At it's most basic: it's an IDE. You simply drag your control to the form ("card") and then attach code to any one of the 1,000,000 events that are exposed. There is a full even hierarchy - so while you can attach a script to an individual object - you don't have to. You can attach it to the card (form) or the "stack" (application).

You have 100% FULL control over EVERYTHING in the entire GUI:
  • Windows including: modal, non-modal, palettes, stay on top, min size, max size, drag and drop events, title bar controls
  • Transitions/effects
  • Alpha masking
  • Custom button appearance
  • Geometry editor - for telling it how to resize individual elements when the form is resized
  • Support for custom radio buttons (and checkboxes)
  • Grid editor
  • Rich text, inline html (WITH images), list boxes, data grids (with icon types, auto-sort, drag column order, etc),
  • Graphics containers - including QuickTime containers and image containers that support multiple graphics formats as well as built-in graphs
  • Native vector graphics that include gradients, splines, polygons, boxes, ovals, lines, text, etc.
  • Full visual menu editor that works for popup menus as well as application menus
  • Tab controls
  • Scrollbar objects
  • Web browser object
  • Groups of objects that can be dragged, edited and moved at runtime - including nested groups that all work independently of each other
  • Dialog "sheets" and slide-out "drawers" (Mac OS only)
  • Main window can be a CUSTOM SHAPE - based on a background image(!)
  • Named property "profiles" - for defining any (or all) of an object's properties and then switching them out (live) at runtime
  • Etc

In short - it's an extremely rich GUI builder that exposes all the events and types of things that you could ever want when building an application.

Yeah, but what about the code?

The coding language is an offshoot of SmallTalk - and is English-based.

put the height of field "Text" into myVar

put the width of image "My Image" + 17 after field "Values"

if item 1 of the location of me > zero then beep

set the loc of button "OK" to 32,104

set the name of field "Old Name" to "New Name"

select after text of field "New Name"

Yeah, it's fairly verbose - but very straight forward. You can do anything you want - including working with arrays, calling external plug-ins (written in C), pass events to individual objects, create functions, etc.

Oh yeah, and it's object oriented (all the properties of objects inherit the properties of objects higher in the hierarchy). For example - if you don't specify a background color for a field - it will take the background color of the card, or stack.

Yeah, but what about SQL stuff?

It supports ODBC - but also has native (direct access) connect to: Oracle, MySQL, SQLite, PostgreSQL, Valentina. It has a built-in query editor and you can "bind" field objects directly to database columns - so you don't have to write your own SQL for inserts/updates/deletes - it's all handled automatically.

Of course, you can also run your own queries and get your own datasets and do stuff with it (like you can in any other coding environment) - and you can dynamically change the binding on a field object at any time (at runtime).

You can create databases and table (and alter their schema) ON-THE-FLY - and you can programatically create new objects and bind them to your new table(s) at runtime(!!).

OK - so what's missing?
  • Automatic data broadcasting
  • Native HTML/CSS browser implementation (you have to use a browser plug-in)
  • Multi-developer (SVN/CVS) support
  • Runtime fees (the "Media" edition is free, "Professional" is $249 and "Enterprise" [allows native connection to Oracle] is $499). There are ZERO other fees.
This thing sounds VERY cool - and sounds like it will be a welcome addition to my toolbox!


ROCLASI said...

Hi Bob,

RunRev has been around as long as REALbasic (1997) and at the time I looked at both (RB being still pre v1.0, before REALSoftware took over the product).
Both are cross platform, connect to databases over ODBC or native, have no runtime licenses, is pluggable and all those nice goodies.
Though RB apps are desktop/server/console apps, not web-apps so RunRev scores a point there over RB.
REALbasic is also an OO language and is not as verbose as RunRev.
At the time I decided to go with REALbasic because they made better looking apps, i.e. they used the native widgets better than RunRev did. Not sure what the status on that is now.

Jon said...

Nice review, Bob. You definitely got my interest. I'm going to check it out.

Web Analytics