Livecode Server capabilities and future plans

Bringing the internet highway into your project? Building FTP, HTTP, email, chat or other client solutions?

Moderators: FourthWorld, heatherlaine, Klaus, kevinmiller, robinmiller

Post Reply
lvgio
Posts: 5
Joined: Wed Jun 11, 2014 12:03 am

Livecode Server capabilities and future plans

Post by lvgio » Wed Dec 10, 2014 6:44 am

I'm a designer, beginner web developer , I work mostly designing and tweaking wordpress sites for clients.

I've been playing with Livecode in my spare time and I find it uber-awesome.
I have a few ideas to create my own software. A challenging project, and Livecode is in my sights.
...life is too short to be learning three programming languages and five frameworks every year. And Javascript beyond Jquery is ugly imho.

I would like to ask the question. How good is Livecode server for web apps?
You guys have some tutorials for cloud/database apps but nothing I would consider....a strong presentation of its capabilities.

-Can you build a Twitter clone?
-A groupon clone?
-SMS messaging app?
-A livecode web framework...social logins and all that fun stuff.

-Can I rely on it if a build an app with a client and a server side for an organization to deliver
educational material to 10k+ students?

-Will it be fast, reliable, what are the numbers performance-wise compared to other languages?

I'm not critisizing the platform or trolling. I want Livecode to be that tool and want to know of any web apps out there of significant size. I know there's some examples like that of the U of Vienna and KLM. I guess i;m looking for anything more recent and to learn about your future plans for livecode server.


Thanks

Gio

FourthWorld
VIP Livecode Opensource Backer
VIP Livecode Opensource Backer
Posts: 9842
Joined: Sat Apr 08, 2006 7:05 am
Location: Los Angeles
Contact:

Re: Livecode Server capabilities and future plans

Post by FourthWorld » Wed Dec 10, 2014 4:14 pm

LiveCode Server is a CGI application that runs under Apache. As such, just about anything you'd expect to do with any other CGI (Perl, Python, PHP, etc.) could be done with LiveCode Server.

SMS is a special case because, while there are a few SMS-over-HTTP libraries out there, it's normally not done over HTTP. Doable, but will take some research.

Groupon and other aggregation sites are at their core two separate systems: a spider crawls various sources to acquire and index the data, feeding that to a DB which the public web system provides access to. While it's a bit of work to write a good spider in any language, it's definitely doable in LiveCode. The public access side is more straightforward, and LiveCode provides interfaces for a wide range of DBs, including SQLite, MySQL, PostgreSQL, and even Oracle, and within the community folks are building interfaces for CouchDB, MongoDB, and other non-SQL DBs like LiveCloud (see http://livecloud.io/ ).

One of the key questions that comes up with server systems is "Does it scale?", and while it's not often welcome the only real answer is "No, because ultimately nothing scales." Every system goes through phases of growth in which it outgrows its earlier implementation. It starts with load balancing, moves on to sharding, and if the growth continues it'll ultimately mean writing an entirely new data storage system and/or HTTP daemon.

For example, Twitter would be impossible to make with any off-the-shelf tools available on the planet. Twitter has outgrown all available tools, so much of what they use today has been purpose-built specifically for that project, from the modified HTTP daemon all the way down to the graph DB. Google's needs are so mind-bogglingly large that they had to go one step further and write their own file system.

When designing a server system the key is to anticipate practical traffic levels and design for those. If a startup were to custom-build a DB system just because they might need it one day, they may never launch and would certainly have lower ROI than just using available tools. We use what we have to do what we need to do right now, and as long as we're aware of potential growth needs down the road we can factor our code smartly and wrap it in well-designed APIs that allow us to change the backend without altering the client.

So looking at the more practical aspects of scaling, I have one server running a set of LiveCode CGIs alongside a Drupal CMS. Our Search CGI needs to do a great many steps to parse the input, dive into multiple indexes, collate the results, rank them, and then wrap them in HTML to send back to the client, while all Drupal needs to do is request a few DB records to stuff 'em into an HTML template. On that system we found our CGI was able to deliver search results in 1/3 the RAM and 1/5 the CPU time as Drupal required to assemble a page.

CGI often gets a bad rap for achieving concurrency through multiprocessing rather than multithreading. But the differences between the two are not so great as one might think (which is one reason why NginX isn't multithreaded), and multiprocessing is much simpler to program for.

Chances are that just about anything you want to build can be built well with LiveCode Server. If scaling becomes an issue that's a great problem to have, and solvable through a wide range of options.
Richard Gaskin
LiveCode development, training, and consulting services: Fourth World Systems
LiveCode Group on Facebook
LiveCode Group on LinkedIn

Post Reply

Return to “Internet”