Livecode Content Management System
Richard Gaskin
ambassador at fourthworld.com
Mon Dec 4 13:12:03 EST 2017
Andre Garzia work:
> So far, most of our web efforts have been "PHP-inspired", as in our
> server engine behaves like PHP and our frameworks look and feel like
> PHP frameworks.
Thank you for bringing that up. There are a great many design decisions
with the LC Server CGI that do mirror the PHP model very specifically.
We don't see that devotion to PHP in the ways people use Ruby, Lua,
Python, or others on servers. Those languages are used in ways that
emphasize their own flavor. But with LC, the preoccupation with
mirroring the PHP model has given us a system that is in some ways
incompatible with the core language: You cannot run LC Server scripts
with the LC desktop engine.
There are workarounds for that, but I miss the original CGI solution
which let us use native LC script without requiring us to comingle it
within HTML. The current LC Server engine has been enhanced to allow
that, but in a way that unfortunately maintains its incompatibility with
the desktop engine: the original CGI solution was handler-based, and
used "on startup" as the entry point; the newer LC Server engine allows
you to have lines of code outside of HTML, but expects those outside of
any handler declaration. Odd, and unfortunate as it not only prevents
us from using that in the desktop engine but also introduces yet another
"sometimes" rule in a language otherwise consistent with its handler
declarations.
For these and other reasons I tend to use standalones for CGI work
instead of LC Server. Oh, the joys of emulating server behavior so
easily right on the desktop where I have all my tools and debuggers!
I've been tempted to refine and document the standalone method for
others, but it's still unclear to me whether there's enough growth in
using LC CGIs to warrant what would then be a niche of a niche, or
instead focus on tools to migrate LC systems to Node.js or others where
the ecosystem makes them an easy sell for stakeholders.
> ...PHP is not on the bleeding edge of web development anymore.
That is of course true, but I would caution against discarding ecosystem
for fashion. Being bleeding edge may be exciting for devs, but delivery
of a working system is the goal for stakeholders.
PHP may be old, but it's also competent, designed for a job it often
handles reasonably well. As #8 on the TIOBE Index, I don't see it going
away any time soon. When it does what you need, it can be a good
choice. And most needs are pretty modest.
> Any tool built today, in any language, with aspirations to be webby
> should be generating a PWA. Generating a simple barebones progressive
> web app (this is not your old progressive enhancement) boilerplate is
> quite easy.
> The new features such as WASM (which is implemented in all major
> browsers already), Service/Shared/Web Workers, and all the other APIs
> from the web platform are all awesome....
The browser is a very capable, flexible platform. The features you
outline there are wonderful enhancements that will move app development
forward very powerfully.
But not everything on the web is an app per se. Much of it is content.
Indeed, content is the focus of a CMS.
The distinction between a "web page" and a "web app" is subtle and not
universally agreed on, so I won't bother to attempt to define it here.
Suffice to assume that we at least all agree that there is a difference.
For a "web app", of course that will be driven by JavaScript; as the
only language included in all browsers, there is not choice in the
matter. We may translate from other things to JavaScript, and package
the JavaScript in different ways, and ultimately with interaction in a
browser it's JavaScript just the same.
For a "web page", I feel it's important to deliver content that can
render without JS dependency. In this era of rampant malware it's
becoming increasingly common for savvy users to keep JS blockers active,
turning them off only as needed on specific pages, and only specific
scripts. Tedious, but less so than restoring from backup after ransomware.
And tragically, many (most?) ad networks do little if any filtering for
malware in the code they deliver into your computer. They may complain
about JS blockers, but until they begin to take practical measures for
protecting recipients of their code, their networks are, in effect,
potential malware delivery systems. I look forward to the day when they
prove me wrong on that.
There are other reasons why JS blockers are increasingly popular, but
the result is something that's become important to me, and others who
have a vested interest in content delivery: we build content pages in
which JS is optional if used at all, so that the content which the user
came to read is always available, not dependent on JS.
So as much as I value APIs to deliver data without HTML formatting, when
the request comes from a browser I prefer to wrap the HTML before delivery.
There are tradeoffs either way, but for me the tradeoff that favors
security and quick rendering is a higher priority for content pages than
saving a few k in delivery time over modern fast networks.
The TL;DR relevant here:
We have many options available, and many different needs. Whatever Alex
finds as the best fit for the specific CMS he's aiming to build will
hopefully reflect less any fashion or trends or technologies among the
nearly infinite range at his disposal as it will reflect an
understanding of what constitutes an excellent UX for visitors of the
sorts of sites he's looking to build.
--
Richard Gaskin
Fourth World Systems
Software Design and Development for the Desktop, Mobile, and the Web
____________________________________________________________________
Ambassador at FourthWorld.com http://www.FourthWorld.com
More information about the use-livecode
mailing list