Realbasic on the web without plugins
Keith Clarke
keith.clarke at clarkeandclarke.co.uk
Fri Sep 23 03:49:46 EDT 2011
Thanks for the response and reminder of your post, Richard. I read the 'first edition' but now understand more of the fundamental differences between LiveCode and web concepts (which I know slightly, but not much better)! ;-)
I accept that there is far more to a web app than a set of forms, but then again, I don't see the need to map everything LiveCode to Javascript. Web apps tend to use MVC architectures or similar, so that developers can lock their intellectual property in the relative safety of the server. So, LiveCode Server would contain the main Model and Controller code and therefore most of the app wouldn't touch the client.
The LiveCode language isn't currently designed to manage web pages. However, it's flexibility means that it could be easily extended with the necessary objects and functions (either in the core functionality or via a library or external). Page controller functions could manage those cards to be rendered as pages, adding template capabilities, DOM, layout management, markup for the contained UI elements and support for Ajax calls.
See this Salesforce.com Visual Force Developer's guide to see how the Salesforce Apex language (analogous with LiveCode Server scripting) was exposed and extended for managing web pages http://www.salesforce.com/us/developer/docs/pages/index.htm IMHO LiveCode could be applied in a similar fashion to extend itself - indeed, this is the to do list!
As I see it, with LiveCode Server in the back-end - with LiveCode page management functions in place - the only elements that would need to be mapped to HTML/CSS/Javascript would be the UI. And we have that to do list, too, as it's the elements currently banned from an LC Sever stack!
So, if the LiveCode server stack contained cards (maybe in a designated 'pages' substack) that allowed UI components, the card UI controls could be associated with standard HTML blocks and CSS, with property mapping. Cards designated as pages could be complete 'LiveCode Pages' or divs to be rendered within pages of a web site managed outside of LiveCode.
OK, there would need to be some Javascript glue for static pages, but the basics that could be a generic LiveCode Javascript or jQuery library. And of course, once this support for static pages was in place, the real challenge of recreating the rich app experience of LiveCode 'moving UI parts' could begin.
However, meanwhile - and crucially - LiveCode developers could start delivering native LiveCode web apps into the Cloud and Enterprise space, where the browser plugin is generally not available.
Best,
Keith..
On 22 Sep 2011, at 15:39, Richard Gaskin wrote:
> Keith Clarke wrote:
>
> > But even if it isn't easy, if RunRev don't grasp the nettle on
> > this, developers who must deploy standards-based rich apps into
> > cloud and locked-down Enterprise environments will be forced
> > elsewhere, which would be a shame.
>
> I wrote about this last year:
> <http://lists.runrev.com/pipermail/use-livecode/2011-June/157979.html>
>
> Like too many of my posts that's a long one, but it represents pretty much everything I came up with that's relevant to the discussion, and I've been thinking about this a long time since two of my biggest projects are all about the web and are based in LiveCode.
>
> In short:
>
> There are two sides to this, client and server.
>
> On the server side RunRev has already provided what may be the most cost-effective solution for that with RevServer.
>
> But the client is a whole other game, fully immersed not only in a very different language but also in a deeply well-defined object model that, in many respects, bears little resemblance to LiveCode's.
>
> We use LiveCode because a good scripting language lets us build things more quickly than we could do in a lower-level language like C.
>
> But JavaScript is not a low-level language. It's almost as high-level as LiveCode, and as well integrated into the object model it supports as LiveCode is with its own.
>
> But the object models are very different.
>
> Attempting full translation of LiveCode to JavaScript would not be impossible, but very expensive. IMO, when you consider the limitations inherent in such a task, it's probably much more expensive than just learning JavaScript.
>
> That said, there are many opportunities for using LiveCode to generate some portions of the client-side experience for the web. A starting point was outlined here in 2006:
> <http://lists.runrev.com/pipermail/use-livecode/2006-June/083956.html>
>
> I haven't used the RB/web implementation, but I'd be surprised if it did full RB->JavaScript translation; my guess is that the server side is very much like RevServer and the client side is like the ToolBook approach I outlined in 2006.
>
> We can have that too, and we needn't wait for anything from RunRev - anyone with sufficient time and motivation can build this today.
>
> But somewhere along the way you'll eventually find limitations between what LiveCode can do on the desktop and what a translation to a different object model will be able to do on the web. There's more to apps than forms.
>
> And for those you'll want to use JavaScript.
>
> Fortunately, it's kinda fun to learn and there are orders of magnitude more resources for that than we have for all the things we've learned about LiveCode.
>
> Dive in, the water's fine.
>
> --
> Richard Gaskin
> Fourth World
> LiveCode training and consulting: http://www.fourthworld.com
> Webzine for LiveCode developers: http://www.LiveCodeJournal.com
> LiveCode Journal blog: http://LiveCodejournal.com/blog.irv
More information about the use-livecode
mailing list