Notes from the REALWorld Conference
Volume Number: 20 (2004)
Issue Number: 4
Column Tag: Programming
by Guyren G Howe
Notes from the REALWorld Conference
REAL Software's first conference revealed exciting new directions
I just finished attending REAL World, REAL Software's first annual conference.
It was satisfying to meet with REALbasic developers from all over the world, and the official statements and product previews at the conference gave me confidence in the future of one of my favorite development platforms. Herewith, a grab-bag of observations from the conference.
Version 6 Early Preview
There were two particularly exciting revelations at REAL World. The first was an early look at Version 6.
Wow. What an improvement. An integrated IDE is among the greatest of user interface design challenges, because a computer program is a very complex structure, and the IDE needs to support the programmer in manipulating this structure in many different ways.
On top of this, REALbasic faces the challenge of working on different platforms with different user interface conventions. Worse, one of these is Windows, where the interface conventions are just broken.
While what we were shown is an early draft, it was quite clear what direction REAL is taking us. The new interface is a sort-of cross between Safari and iTunes. The default is an aggressively tabbed interface, starting from a Home tab akin to the current Project window. Everything you open comes up in a new tab by default, although you can opt for a new window, if you wish. REAL said they would like to give us options that would in sum turn this interface back into what we have now, if you didn't like the new style, but I thought it was great.
There were niceties everywhere, even in this early preview. The Project tab could be switched to an Icon view that doubled as a class browser (hooray!). The Window Editor provided a pasteboard area (akin to PageMaker), to which things could be shuffled while working on a window, and where non-control items could be placed, so they no longer clutter up the actual window. The code editor provided little bracket lines just outside the text, to show you where each block begins and ends, and you can click on the line to select the block. There were keyboard shortcuts to enter the End If when you typed an If. And on and on and on. It was amazing how complete even this preview seemed.
The new interface, in being much more like OS X or web browsers than the OS 9 Finder style we've seen so far is much more portable across platforms, because a browser-type interface has become universal.
It was further revealed that the IDE for Version 6 was being developed with REALbasic. This is wonderful news. This means that REAL software are testing their own product pretty seriously in writing it. It makes the programmers more productive, which is why I think we're seeing such rich capabilities in the new IDE. And it gives the programmers an extra incentive to add the kind of language features that will make such a product easier to write (robust introspection and a better object model spring to mind).
There were no substantial revelations about language features for Version 6, but since REAL Software has a full-time compiler guy, who seems very smart, and very interested in improving the language, and has essentially finished implementing all the features of the old compiler, we might see some interesting new features soon (the guy has to spend his time doing something). I certainly heard several developers talking with Mars (great name for a compiler wizard, don't you think?) about their desire for various language features.
A side note: if you thought the new Extends keyword in method declaration is an interesting feature, it turns out that it is syntactic sugar for a feature that has long been available in the new compiler: you could invoke any method as a message to its first argument, so:
A regular method call
MyMethod(x, y, z)
could until now just as easily be written
The same method call, as a message to its first argument
Who knew? In any event, you are now required to use the new Extends syntax before you can do this.
Unfortunately, a little experimentation reveals that Extends doesn't work quite as naturally as one might like. I was going to write a nice little debugging library by declaring the likes of a Log method that Extends Object. Then every class in the program would support a Log method call. Sadly, declaring a method Sub Log(x As Object, message As String) does not currently let you call Log("My cool message") from within an object; you would need to do me.Log("My cool message"). I mentioned this to Mars, and I hope he decides to add this little bit of rounding out for an interesting little feature.
The second exciting revelation at REAL World was a new product for writing CGIs in REALbasic. The product is known for now by its code name: Swordfish.
What little we were shown seems great: you drag web pages into the application, and the IDE provides the ability to script the controls in the pages using conventional REALbasic code. While this may introduce minor changes into the HTML of the page, almost all of the action is server-side. Done right, this strikes me as a very savvy play: the product should produce very fast, compiled server-side code. Existing REALbasic programmers are now web programmers with minimal extra learning, and folks wanting to write server-side code who don't know a suitable language will find REALbasic more approachable than the likes of Perl or PHP. I'm not sure how big this market actually is, but I'm sure it's big enough to support a product like this pretty well.
Oh, and before you ask, it will work with Apache or as a stand-alone web server. And REAL Software is "looking into" IIS.
The keynote briefly mentioned REAL Software's vision for the future. While it was mostly market speak, the part that was interesting to me was that they clearly intended to target handhelds and, interestingly, plugins (for Photoshop and the like). Swordfish was the first evidence, they said, of their desire to let us take our REALbasic skills "everywhere".
We were shown a clip of a mention of REALbasic on the Drew Carey show. This was just too freaky for words, and elicited quite a cheer from the crowd.
The Developers, and a Plug
I'd say there were 50 or so developers at the conference, quite a few from outside the US. The atmosphere was optimistic, and the diversity in the ways REALbasic is being applied by these people was fascinating. From in-house development for a medical research organization, to vertical applications, to games, simulators, educational software, utilities... It was all there. Encouraging that REALbasic has managed to be such a good tool for so many uses; I just hope the reach of the company doesn't exceed its grasp as REALbasic's ambition increases.
I found it interesting that many of the developers there clearly didn't have a computer science background, and that even some of the most experienced REALbasic developers didn't understand all of the generally useful important features in REALbasic (a number of developers there didn't understand or uses Interfaces, for example). This is not entirely surprising, as REALbasic has always been designed to be friendly to beginner programmers. Very often, it is the experts in a field who can write the best software, not professional programmers.
I will say this: if you are using REALbasic without such a background, REAL Software offers the Curriculum Project, a 30-lesson Computer Science course using REALbasic, which I wrote (search the REAL Software site for "Curriculum"). I am confident that it is an excellent way to round-out your understanding of how to use the REALbasic language to maximum effect.
The conference went for two days, with three seminars on each day. I'd like to have attended more seminars than I was able, and I heard good things about most of them. For my part, I came away with a new appreciation for the ease with which REALbasic can be used to manipulate QuickTime content, or to do REAL-time 3D graphics. The QuickTime sessions showed a simple application that nevertheless managed to replicate quite a bit of the functionality of iMovie. Something I didn't realize is that it is not necessary to have QuickTime Pro installed to use Quicktime to compress and edit movies -- it seems that all QuickTime Pro does is activate these extra features in Apple's Quicktime player. For my part, I now intend to develop a program to make it easier to work with the files I get from my ReplayTV.
The Developer Program
I heard a number of positive comments about the developer program. Everyone who commented said that they'd received useful referrals from the program. REAL Software mentioned at one point that they had difficulty at times finding developers for the referrals that they had available.
REALbasic Developer Magazine
It seemed that almost everyone at the conference subscribed to REALbasic Developer, and most of the presenters had written for it. I was given a free copy of the current issue, and it looks like an excellent investment in your REALbasic skills. Bi-monthly. http://rbdeveloper.com.
Printing: No news
I remain disappointed that REAL has made no official announcement of features to improve printing from REALbasic. On the other hand, as I pounded on this question with developers and REAL Software folks, dbReports was mentioned repeatedly as a good solution. I spoke with the developer of dbReports at the conference, and I hope to arrange a review soon.
Next Time: An Interview
Next month, I should be presenting an interview with Geoff Perlman, CEO of REAL Software.
Guyren G Howe works in artificial intelligence research, after years of work as a technical writer and developer. He is married with one child, is an Australian, and lives in Austin, Texas. Guyren has been working with REALbasic for several years. Most notably, he wrote the REALbasic Curriculum Project, an extensive computer science curriculum, for REAL Software (available from the REALbasic website).