putting RIA into Euphoria
- Posted by Thaddeus Quay <ThaddeusQuay at gmail.com> Jun 08, 2007
- 595 views
In http://www.listfilter.com/EUforum/m14305.html I mentioned a new direction for Euphoria, and that is, targeting Euphoria towards Rich Internet Applications, or RIA. I find it quite a coincidence that this acronym represents the last three letters in "Euphoria". I don't care for superstition, but what better way to say that it was "meant to be"? Anyway, Euphoria has been plagued, like many other languages, with the GUI problem, where it is difficult to make an application work the same, in a visually-appealing manner, across platforms. I am aware of the various solutions, as well as the fact that none of them are truly adequate. The one thing which pretty much everyone appears to have ignored, is that, despite their problems, incompatibilities, and general fickleness, web browsers make for a usable, although not great, cross-platform GUI. What I would like to see, are application servers, written in Euphoria, which act as proxies to the Internet, and which communicate with the user through web browsers. For example, I could have my own server, which is a Euphoria program and a database, running all the time. I would call up a web browser, whether on my computer, or on any other which is connected to the Internet. I type in the URL for my server, get the main page, type in a password, and am then presented with whatever I've specified as the default start page, which could be as simple as Google's main search page. I type some text in the search bar, my server brings back a results page, which could be from my own database, from the Internet, or a mix. Instead of search text, I could also type instructions, like I would at a dos/linux command prompt. The server would execute the instructions, against its database, by getting pages from the Internet, or a mix, and presenting a results page. In either case, the results could be text or images, either of which could have come from the local database, from the Internet, or generated by my server. On a more complex level, the server could generate Flash or Silverlight, thus providing a richer method of interaction. On an intermediate level, it would be quite acceptable to have the server generate a still image, for every interactive result, along with a client-side image map embedded in the HTML. Many types of applications could be ported by such means, although the resulting interaction wouldn't be quite as smooth as in standalone applications, such as when you need to scroll through a large document. However, creating such things using EuphoRIA would be far simpler than using AJAX, which can easily push browsers to their breaking point. Notice above my use of "EuphoRIA" to indicate a program written in Euphoria, which interacts with the user through a web browser, and which interacts with the Internet. The latter can easily be accomplished through the use of libcurl, or even more easily, through system calls to cURL. Additionally, EuphoRIA programs could be augmented by using URL-based includes, which would come from code that's put up in journal entries, in a system such as LiveJournal, where people can review and improve on the work. Mix the ideas of social networking, the Euphoria code archive, and Euphoria's micro-economy to create a vibrant community of developers, which generates quality code and whose peer-review is near-automatic, as demonstrated daily through people actually using the code in their own EuphoRIA systems. I wanted to make this more detailed, but I'm pressed for time. I hope that I've gotten across the basic ideas which could quickly and significantly increase Euphoria's visibility.