REAL Studio Web Edition (or The Son of Swordfish)

First, let me get this out of the way:  I am not a web developer.  My plate is more than full enough developing desktop applications and while I’d *like* to do some web apps, it’s just not in my realm of the probable at this point in my life.  However, I am pretty good at developing REALbasic applications that work well on Mac OS X and Windows (and throw the occasional Linux app in there too).

REAL Software announced today a new version of REAL Studio, called Web Edition, that will be released some time this Fall.  Internally, they called this product Barracuda.  If you know any history about REAL Software, they had an internal product named Swordfish that they announced at their annual developers conference in 2005.  It was never released because it was already obsolete soon after they announced it due to a variety of technologies like AJAX and JAVA and a number of other technologies.   So call this completely rewritten version the “Son of Swordfish”.

I spent three hours playing with an alpha build this weekend and my first impression of the product is good.  Since it’s an alpha build it has plenty of bugs but it is an interesting twist on REAL Studio and REALbasic.  This has the potential of being the first Rapid Application Development environment for web apps that doesn’t require an expensive server as these apps will run on any Apache server or web server capable of FastCGI (not all commercial hosts enable FastCGI on shared servers).

Existing users of REAL Studio will be instantly familiar with the editors and know how to get around.  Since web apps are unlike desktop apps in many ways, there are a number of new objects, classes, and controls that are for web apps only.  There are also some things, like the MsgBox function, that did not work for me but will probably work when it’s released.

Instead of the regular Application object, every REAL Studio web app has a new WebApplication object that handles the open, close and unhanded exception events.  New to the web app is the WebSession object which represents each user that is connected to your application.  It has Open, Close and Reloaded events which, as you can imagine, are similar to what you might do in the Application object in the desktop version since a desktop app supports one user at a time.

Instead of creating windows, you create web pages and you edit them in the web page editor.  It is much like the current window editor but has a new set of controls and new features to go along with it.

One of the first new features you’ll notice is the ability to do in-line editing.  There is a little editor icon to the right of most controls that when selected, brings up an editor for that control and masks out the other controls.  For some controls, like buttons, text fields and so on it simply changes the text you see on screen.  For more complex controls like the listbox, for example, you can add column headings and add default data into the listbox.

In some respects some of these features remind me of how ActiveX controls in Visual Basic 6 used to have their own editor and UI and for the most complex of controls this will be welcome as editing them through the properties list can be tedious.  For the simpler controls (like the button, label, etc) this new inline editor does the same thing as simply selecting the control and starting to type.

The page editor has tweaks on features that are better than the current Window editor such as visually aligning controls and showing spacing differently.  There are also a number of new controls that are pretty common in web apps today: Link which is a label that when pressed opens the browser to a new page; Search Fields which is a rounded TextField that keeps track of last values held; Segmented Button which is a row of buttons that can act like either radio buttons or check boxes.

There are a number of controls that have changed as well.  Pushbuttons are now WebButtons and Checkboxes are WebCheckboxes but act pretty much the same.  The StaticText object has been renamed to the WebLabel (which makes more sense to many developers coming from other languages).  Radio Buttons are no longer individual controls – they are now part of a group and you can specify their dimensions like a listbox (number of columns and rows).  I’m actually on the fence on this one since I see the value in it but could also see it biting me depending upon the complexity of the user interface in the project.

The first release will not come with a proper tab control, unfortunately.  This is disappointing, but you can easily overcome this limitation with a Segment button and using Container Controls.  Just like with the desktop app, I think Container Controls are incredibly powerful, and is a useful way to make complex, reusable ‘window-like’ objects.

Perhaps one of the bigger changes is the removal of the Canvas object.  This was done, I was told, because HTML5 has a canvas object and REAL Software did not want any confusion.  Instead we have the ImageView object which can accomplish many of the same things using its Picture property (the graphics object is gone).  The canvas object may return at some point, however.

One huge change is that in none of the controls or windows can you control the text characteristics or background colors you’re used to expecting in a desktop app.  For that, we now have Styles.  Adding a style is just like adding a new class or anything other object in REAL Studio and when you edit a style you have the ability to change the properties of Normal, Hover, Pressed, and Visited objects (this includes pages).  There, you can control the text properties, border, shadows, padding, corner radii, and opacity.

As you can imagine, this leads to some very interesting interactions that take very little code.  For example, you can create buttons that change color when you hover over them, or change opacity once you’ve clicked on them.  I suspect that this will be a huge deal in the long run as it makes very complex interfaces very simple.

Since there are a ton of things you could do with a web app and no possible way for REAL Software to cover them all, they have a virtual control called PageSource that lets you add pure HTML code, JavaScript, and others, and can be placed in any web page.  It has two properties, the code itself and the location.  You can place it in the Header, Before Content, or After Content.  I imagine that just like for plugins for desktop applications, there could be a market for HTML components for REAL Software web apps.

Placing and dealing with the code behind the objects is just like a desktop application.  In fact, it’s the same code for the most part.  Where things start to diverge is with dialogs.  In desktop applications you create a window and change it’s super to modal dialog or similar, and call it via code.  This was flexible and convenient but created a new window.  Many users have popup windows turned off so this won’t work.

To compensate, REAL Software created a web dialog class that doesn’t create a new window, it just shows up on the current window using some nifty AJAX.  Since the standard MsgBox method did not work in this alpha build I ended up creating my own web dialog and adding it to the page.  After you add it, it is displayed in a new list at the bottom of the window and can be access there.  Otherwise it acts similarly to how dialogs work now.

Debugging an app is easy as well.  Simply hit Run in the IDE and it compiles and runs the web app on the local web server.  It responds to break points and exceptions just like a desktop app and and allows you to interrogate application variables in the debugger.

I’m not sure if web apps will understand the concept of Reports in the first release or not.  If you need to display a report to the user, you could probably accomplish the same thing with a listbox that covers the entire page.

Currently, REAL Studio supports two types of builds.  The first is HTTP and the second is FastCGI.  FastCGI should be more efficient, but might not be for everyone if you’re on a commercial hosting service since many do not support FastCGI.

REAL Studio Web Edition apps work with Safari, FireFox, Chrome and Internet Explorer.  How far back this compatibility goes I’m not sure of at this point.  If you find a limitation, you can use the functions in the Session object to get the browser type, operating system, platform, etc and give corresponding messages.

The Session object also keeps track of the page state so your active web pages won’t be forgotten during a session.  This means that each page is ‘remembered’ which is a very nice feature.  So if you have a Customer page and an Invoice page and the user reloads the page or closes it and returns before the session ends it will load exactly where the user left off.  This is another one of the main features that I’ll like to see in action on a complex web app.

I spent less than a half hour converting a very small calculator application I had originally written as a desktop app.  I spent more time logging the minor bugs (I did say it was an alpha build, right?) I found than I actually did writing the web app.  I have no idea how long it would take to accomplish the same thing in php, Javascript, Ruby on Rails, or ASP.NET, but I suspect the answer is longer.  I’ll be curious to get a true web developers impression.

The one big question that remains is how easy it will be to deploy and install REAL Studio web apps on your server.  I looked up some documentation on my commercial host on how to install FastCGI apps and it did not appear to be for the feint of heart as it required going to the command line on the server.  At this point I do not think there is an option for Single-Click-to-Install.

The Web Edition will become part of the Enterprise Edition of REAL Studio and also as a standalone version for those interested only in web apps.  This addition to the Enterprise Edition really makes it worthy of the Enterprise moniker now.  The web app addition is scheduled to be released sometime this Fall.  With REAL Software’s rapid release plan that could mean either Release 4 or 5.

What do you think about this announcement?  Is your curiosity piqued?

32 thoughts on “REAL Studio Web Edition (or The Son of Swordfish)

  1. Nice review. Very interesting video. The section about debugging makes me wondering about what would happen if the webapp is stopped for to long? I guess that the browser will issue a time out message. That would make debugging not that easier when dealing with hard to find bugs.

  2. Nice review an nice video. Thank you, lucky Bob.
    The debugging section in the video made me wonder about what would happen if the debug stop lasts to long for the browser? Will the browser issue a time out message? Or is there a mechanism used to make him wait the debugged app to resume?
    I’m asking that because sometimes debug stop can last more than a couple minutes, especially if you have to go up the calling chain hierarchy, or browsing some of the objects curently in memory. Having to reload the page won’t do no good when dealing with the hard-to-find bug species…

    Eric.

  3. The trick is to be able to find FastCGI hosting of binary apps at a reasonable price. FastCGI with script is one thing, but ISPs that allow binary apps generally insist on dedicated servers, etc.

    Also, I suspect the apps will have a non-trivial memory footprint.

  4. Bob, I just finished looking at the cPanel of Bluehost. It seems to me that once PHP Config is selected (under Software / Services), clicking one radio button (PHP5 (FastCGI)) and saving the changes is all that needs to be done. Have I missed something?

  5. I am wondering if we will be able to turn our RB desktop app project into a Web project easily, probably by a converted. What you know about this?

    • The only thing I’ve been told is that there is no window to web page converter for the first release. I don’t think it will take you too long to do it yourself, however, unless your windows are very complicated.

  6. Yeah – another platform for RS to maintain, troubleshoot and for us to find bugs in… Sigh…
    Being a developer myself I know that it’s more fun developing new stuff than fixing old stuff. I would have expected a released version of REAL Studio with working Cocoa before new versions are released… Looking through Feedback I see tons of requests that could have been fixed before moving the focus to RS Studio Web…

    As a webdeveloper myself, fluent in JavaScript and PHP, I am amazed that RS decided to roll their own UI. Looking at most JS libraries there are tons of adjustments for each browser that needs to be maintained and developed. I hope the skin is possible to change, the Mac OS X look may cause problems in some applications.

  7. @Mattias Sandstöm
    Since this is really a new Framework I don’t see it impacting Cocoa at all. Many of the things that are in the Page Editor will eventually make there way into other parts of REAL Studio as well.

    Sure, there are things I’d like to see them fix as well but from their perspective a new product is essential for growth. Desktop applications aren’t going away but web apps are definitely a growth area. I’ll cut them a little slack for being a little bold on this.

  8. :-( I wasn’t lucky enough to get an early preview!

    But this is amazing!! I expect the Web Edition will be far more useful to me than Cocoa support. I can’t wait to try it out.

  9. I’m curious about the compilation. Does this mean that an web-hosted application that needs a browser plug-in is generated? If so, this may not work as a web application on the iPhone or iPad. Am I interpreting this wrong?

  10. Thanks for the review. Very promising! I usually develop RB apps in symbiosis with web apps (php) and this is possible be new path forward. I will for sure buy it when available.

  11. No, no browser plugin required. It uses pure HTML5, CSS3, and JavaScript.

    @Mattias Sandstöm consider this, this new platform has the potential to attract tons of new customers. That means more revenue, means more engineers. Those engineers can be spread between the web and our existing platforms.

  12. 1/ Does FastCGI app need to installed in specific folder?

    2/ It appears that my webhost won’t allow an executable other than its own to run on their machine. And that’s the kind of restriction I can understand.

    3/ What thecnology is it using under the hood to communicate with the browser? Is it exclusively HTML, or does it include some javascript, or some other flavor?

    Eric.

  13. I think it sounds excellent, but the price tag is just too steep. I know HTML, CSS, and I’m getting pretty handy with PHP…this product wouldn’t be worth $600 to someone like me. How do they plan to get the web devs on-board?

  14. My concern is that with the limited resources that RS has, is this a good place for them to put their efforts ? I remember 13 or so years ago a company called Omnis Software (http://www.omnis.net/index.html?detail=overview) tried something similar with their ‘Web Client’ software and it never really amounted to much. I hope RS fare better, I personally would rather see them put the effort into further enhancing their superb development tool, REALbasic.

  15. Agreed that this is a waste of resources. They are spread way to thin as it.

    That last major release of RB broke databases for some, broke RBScript, broke build scripts, and included a broken version of Cocoa a year and a half after it was scheduled.

    Surely they should be focusing on quality of the existing platform, not adding incomplete new ones…

  16. @Thom McGrath
    I wish that would be. However, given X amount of resources spread over Y products, an increase in Y would mean either a) resources allocated will go down or b) X needs to be increased.

    I think there is a circle-reasoning in your argument;
    IF REAL Studio Web is a success, THEN RS can hire more engineers and THEN the quality of the other products will increase.
    Since you commit to a new (quite pricy at $599) product this means that resources needs to be poured into this to justify the high price and the engineers will be drawn from REAL Studio, at least initially, until the revenue from REAL Studio Web increases.

  17. This is WAY too expensive and what is worse, the yearly “TAX” which will make you pay and pay and pay forever. This business model may work but only for those who are developing RS apps and making money from them. Web developers who already use other free technologies and are looking into HTML5 and CSS3 will keep on that road. Maybe this is for hardcore RS developers who have not gone into web apps yet. PHP, JS, Ajax people will not pay all this money to have to learn a new language.

  18. @Bichuf
    I’ve got to agree, the price is very expensive but it’s the yearly tax that doesn’t make sense. On the Mac the RS competition is Xcode (Version 4 looks incredible) which is free. On all platforms the competition for this ‘Web Studio’ – they are all free also. Seems a strange move by RS.

  19. @Bichuf
    I think you have a valid point. How does REAL Software entice web developers into using it?

    However, if it makes a quality product in less time then equivalent technologies then it is worth the money. I don’t think learning a new language is a huge barrier since REALbasic isn’t *that* complicated – it (and the IDE for that matter) is designed with beginners in mind after all.

  20. @Bitchuf et al
    Is there a holy writh out there saying webdevelopment must be free?!? Look at how Zend is doing business for example.
    Personally I use the Sencha Ext JS library for all UIs on the web. It is pricy yes – $729 + $299/year but given the feature set, compatibility and support it is worth it for my business.
    It worries me more that RS’s resources are moving away from REAL Studio…

  21. @Bichuf
    Pardon my spelling – the mobile theme does not have the reply button and the pesky keyboard of the iPhone is way too small. :-(

  22. If your time has a value to it, then free tools are not always free. Free tools are only free if you can accomplish your goal in the same amount of time it would take with the tool you would otherwise have to pay for. If you try Web Edition and find that there is no productivity gain, then stick with the tools you have. But I think you will find that there is a HUGE productivity gain. I watched an experienced web developer do in 30 minutes what I can do in Web Edition in under 1 minute. That’s a big productivity gain. But no product is a sliver bullet for everyone. There will be those that get HUGE benefits from Web Edition and those that feel they don’t. Each developer should evaluate it with an open mind and determine if it makes sense as a tool for them.

  23. Hi Geoff.

    While I’m slightly concerned in the short term about the division of resources, I’ve concluded that this is still a good move. First of all, it shows that RS delivers on its promises (i.e., what Swordfish would have done, but better). Secondly, a slight delay of the Cocoa target (despite the promise of improvements that Cocoa brings) won’t hurt current users because the cessation of Carbon by Apple is not immediate. Cross-platform compilation is not affected at all. Most importantly, it could bring in income for RS that would allow the hiring of new programmers, new documentation writers, new QA/testing teams, etc. — all of which can only improve all of RS’s offerings and generate new users. Good luck!

  24. What timing. I was about to start a new web-application project and was just refreshing my PHP, JavaScript, HTML, SOAP, XML and CSS skills – things I had put away about 2 years ago when I moved onto REAL Studio. I am eagerly waiting for this to be released so I can use it for my project. As this is touted as a compiled web application, I am assuming this new toy to be able to access database backends and deal with real-time page element updates (AJAX stuff) without me having to break a sweat – right?

    Is it safe to assume that the web applications I create will work and function almost identical to the standalone applications I am developing today – only that it is contained within a web browser?

    This new Web Edition sounds very promising, release it now so we (I) can begin my project already. ;-)

  25. Thank you Bob for the review of Web Edition. It certainly looks interesting. I would be interested to see how iPhone users respond to the “old style” apps (without the new swipe gestures).

    I have tended to keep away from the web simply because of the HTML / CSS / PHP learning curve; and my experiences with web hosting keeps me using Dot Mac and iWeb to host my own stuff.

    The $500 to acquire a licence is not trivial, but entirely reasonable for a tool which has the potential to save many hours in development. At $50/hr, that’s just ten hours of work. And I have outlaid many more dollars on REALstudio / REALbasic since version 2.1.2 – all of which I consider money well spent.

    Once again, a good review. Thank you.

    Regards,
    Tony Barry
    Sydney, Australia

  26. Kuam :
    What timing. I was about to start a new web-application project and was just refreshing my PHP, JavaScript, HTML, SOAP, XML and CSS skills – things I had put away about 2 years ago when I moved onto REAL Studio. I am eagerly waiting for this to be released so I can use it for my project. As this is touted as a compiled web application, I am assuming this new toy to be able to access database backends and deal with real-time page element updates (AJAX stuff) without me having to break a sweat – right?

    Is it safe to assume that the web applications I create will work and function almost identical to the standalone applications I am developing today – only that it is contained within a web browser?
    This new Web Edition sounds very promising, release it now so we (I) can begin my project already.

    Correct. We don’t have support for some things in the first version such as menus, toolbars, tabpanels, and there are a few things that work differently but on the whole, you can create a web app in exactly the same way with exactly the same code as you do a desktop app.

  27. Tony Barry :
    The $500 to acquire a licence is not trivial, but entirely reasonable for a tool which has the potential to save many hours in development. At $50/hr, that’s just ten hours of work. And I have outlaid many more dollars on REALstudio / REALbasic since version 2.1.2 – all of which I consider money well spent.

    That’s a very sensible way to look at it Tony. If it saves you just 10 hours, it’s paid for. And regarding iOS, this is just the first release. We could in theory add iOS-specific controls to some future release. Check out http://www.openappmkt.com/ for example. It’s a web app of sorts but when you go to it on an iOS device, it acts very similar to a native iOS app.

  28. @Bob,
    the cookie name indicates that RB WE is indeed Barracuda (“Barracuda Session”).
    /Mattias

Comments are closed.