runtime revolution

34
Runtime Revolution A tool for rapid application development Presented by David W. Brooks [email protected] Omaha ITC April 1, 2004

Upload: melyssa-simpson

Post on 02-Jan-2016

52 views

Category:

Documents


0 download

DESCRIPTION

Runtime Revolution. A tool for rapid application development Presented by David W. Brooks [email protected] Omaha ITC April 1, 2004. HyperCard. Developed by Apple in 1987, HyperCard was the first of a series of hypermedia applications. - PowerPoint PPT Presentation

TRANSCRIPT

Runtime Revolution

A tool for rapid application development

Presented by David W. Brooks

[email protected]

Omaha ITC

April 1, 2004

HyperCard

Developed by Apple in 1987, HyperCard was the first of a series of hypermedia applications.

ToolBook is the best known of the Windows hypermedia apps.

Dated

HyperCard 2.4 runs under Mac OS (System 9.2) Neither HyperCard nor Mac OS are still supported. Although a new Mac will run HyperCard, it does so by starting the ‘Classic Environment’ as a single thread and runs one such thread at a time.

Objects

Buttons (that bring about actions)

Fields (that hold text, data)

Cards

Backgrounds

Stacks (files)

Messages

GUIs operate by sending messages.

For example, when a mouse interacts with an object, there are several possible messages such as:

mouseEnter, mouseWithin, mouseLeave

mouseDown, mouseStillDown, mouseUp

Message Handler

The ‘programming’ in these systems involves writing something that ‘handles’ or responds to the message

For example, when a mouse button goes up, you might want the system to beep twice -- so the program or script would need to accomplish this task.

Sample Handler

on mouseUp

beep 2

-- pass mouseUp

end mouseUp

A script for an object consists of one or more handlers or functions.

Object Oriented Programming

Several characteristics usually are associated with object oriented programming. One of these is hierarchy

In a nutshell, messages can be passed up a message hierarchy seeking a handler. A message can be acted upon by a handler at one level, and then passed along for action by handlers further along in the stream

Revolution is object-oriented

• Revolution has a variety of objects

• It has messages

• It has a hierarchy

• Users can create objects

• Users can group objects

Transcript

The scripting language for Revolution is Transcript.

This language is very much like HyperTalk, the scripting language for HyperCard. It has about 3 times as much “stuff.”

Bottomline

You can build extremely powerful applications quickly using Revolution.

Web-Based cgisIn 1994, after the release of Netscape, my group changed emphasis from desktop applications to Web applications.

BUT, we used HyperCard as a back-end for our Web applications.

We serve about 7 G/month from a bottom-of-the-line iMac. We have 70-80,000 ‘hits’ on a midweek school day.

Goal

In 20-30 minutes, you can’t really demonstrate a complex piece of software.

My approach will be to describe how our operations work. We have now just about completely finished the conversion of one ‘course’ back ends from HyperCard into Revolution.

Usual Approach

Most programmers trying to do what we do use a scripting language (most often PHP) to take data in from a Web form, process it, and store it in a database (like MySQL). They generate responses based upon those scripts, the input, and the appropriate database components.

Parallel Revolution Approach

One does the same thing in Revolution. The difference is that you use the Revolution scripting language, Transcript, instead of PHP.

Alternative Approach

Current: Mac OS with HC

• WebStar 4.4 is the server software.• The action statement in the form is directed to HC.• WebStar generates an AppleEvent. HC detects this

event (with a handler).• Information is passed to HC.• HC scripts parse the info and process, creating

whatever responses are needed. • Responses go back to the sender through WebStar.

Proposed: OS X with RunRev

• Apache is the server software.• The action statement in the form is directed to

Runrev.• ACGI Dispatcher generates an AppleEvent.

RunRev detects this event (with a handler).• Information is passed to RunRev.• RunRev scripts parse the info and process, creating

whatever responses are needed. • Responses go back to the sender through Apache.

Why?

• Why do this? It’s slower.

• Doing it this way allows real (not virtual) copies of RunRev files to be opened so one can write to fields and save the data.

In my world of operations, this makes planning, development, and debugging much faster than when using either external files or databases.

Also

When dealing with a small amount of information, say records for 1000 students, the RunRev stacks easily can hold the data without other (external) files.

Work in Progress

This is obviously a work in progress. However, the reason it is taking a while is that we are learning how to make better use of the strength of the RunRev built-in tools. For example, when ‘stuff’ comes in from the Net, it comes in as a string with all spaces replaced by ‘+’ signs and all special characters encoded. We used to have to decode this stuff; now we can mae use of a built in function -- URLDecode.

Timing

Scripts need to be compiled -- and often are regarded as slow for that reason.

Once a script has been used by RunRev, it is compiled and runs very fast. Most of the operations we have tested so far take 0 or 1 ticks (sixtieths of a second) from the time to start and stop of the script.

Projections

We’re trying to garner support for a large trial of a learning strategy for high school chemistry. If we get this, we’ll serve all hs chemistry students in Lincoln, Omaha, Las Vegas (and Waverly).

There are 12,000 students involved -- so we need some serious throughput.

Images

Our Servers

Typical Course

HC (3/28/04)

HC Example

WebStar (3/28/04 -- 12:15 PM)

Hub (RR, replaces HC Home)

Course

Library Stack

Example Script

Questions

Trial copy from: http://www.runrev.com

Various pricings. A serious license is $1K/y, but a really good stand-alone copy of the application is ~$150.