LC Script in PHP File
Richard Gaskin
ambassador at fourthworld.com
Tue Nov 25 11:42:20 EST 2014
Andre Garzia wrote:
> I've just replied on another thread why FastCGI is not a good candidate for
> LiveCode in my humble opinion.
>
> As for Apache Modules, those things are on the way out. If we want LC
> Server to be taken seriously then it need to work with Apache and Nginx.
I like to imagine this in stages: if an Apache mod is easier to build,
perhaps it could be done first, maybe even as a community effort, with a
FastCGI implementation done later once the engine team has had more
experience delivering threading to us.
Kevin and I had a good talk yesterday about community initiatives
surrounding education*, and part of the discussion briefly touched on LC
Server.
Of course right now the core team at RunRev has their hands quite full
with the current lineup of items on the Road Map, but the value of a
multi-threaded LC Server engine is well recognized there.
From various discussions of debugging we're already aware of plans to
integrate a form of threading for that, at last separating the debugging
engine from the instance it's debugging.
By the time that's in place the engine team will have had many good
opportunities to explore useful ways threading can be applied to other
tasks later on, such as for Server use.
So yes, it's not possible to use FastCGI well with the engine as it is,
but the engine is an ever-evolving thing.
In the meantime, there's plenty we can do to move that along, mostly by
just creating demand for it.
Build lots of cool stuff with LC Server, build your audience, and
hopefully by the time you have an audience large enough to truly need a
FastCGI implementation we'll have one.
For now, both Kevin and I have been very impressed with the work of one
of their most recent hires, a fella you'll find in the forums by the
name of peter_b. He's been taking tests from Malte's Performance
Benchmarking Project there (see
<http://forums.livecode.com/viewtopic.php?f=67&t=22072>), and using
those to help guide the engine team for areas in which v7 performance
can be brought up to the level we had with v6.7.
Donald Knuth reminds us that "Premature optimization is the root of all
evil", and v7 just delivered a mind-blowingly complete implementation of
Unicode across the whole of the LC code base. Clearly it couldn't be
tightly optimized at the same time as it was first written, but efforts
are well underway to bring its performance closer to v6.7 right now.
Interestingly, there are already some new changes in v7 that are pretty
smart for optimization, like copy-on-write-only. As they continue to
find other ways to enhance performance without us needing to modify our
scripts, Kevin's pretty confident we'll see v7 performance where we want
it, possibly even faster over the long term than v6.7 is today.
And right now, unless you're running Twitter (and congrats if you have a
project that popular), CGI is pretty nice. It provides very clear
separation of processing and memory space, and the overhead difference
between multiprocessing and multithreading isn't as significant as one
might think.
In fact, on one server I had not long ago we had a FastCGI
implementation of PHP driving Drupal on the same server as a CGI-based
custom search engine made in LC - we were able to perform all the steps
needed to deliver search results in 1/3 the RAM and 1/5 the CPU time as
Drupal could deliver a page of static content.
So even with CGI today things are pretty good, and with both performance
in v7 being worked on now which will benefit CGI, and likely a FastCGI
version further down the road, it only gets better.
In the meantime, it would be super-cool to see more libraries and
frameworks in the community for this sort of thing. Right now we have a
great one from Ralf Bitter, RevIgniter, but just as the PHP community
has Drupal, Wordpress, Joomla, and others, I believe there's plenty of
room for lots of other toolkits to round out our options for delivering
dynamic content and services with LiveCode Server.
* Anyone interesting in teaching LiveCode or teaching with LiveCode is
strongly encourage to participate in the "Teaching with LiveCode"
section of the forums - as the community moves forward with more
resources for educators that'll be our main working group to bring it
all together:
<http://forums.livecode.com/viewforum.php?f=25>
--
Richard Gaskin
LiveCode Community Manager
richard at livecode.org
More information about the use-livecode
mailing list