Us and them? [was Re: Livecode Dictionary]
Richard Gaskin
ambassador at fourthworld.com
Thu Jan 24 03:36:07 EST 2019
Curry Kenworthy wrote:
> Richard:
> > Curry Kenworthy wrote:
> >> What people need most in the Script Editor is to view and edit the
> >> code itself smoothly, without jitters or delays
>
> > Not hard to make one. A frontScript trapping the editScript
> > message lets you do whatever you want.
>
> It's interesting when we take a comment out of context and spin it in
> another direction by treating it as a different request or problem! :)
Not my intention to take it out of context, but to broaden the context.
My suggestion of considering a custom SE isn't reductio ad absurdum.
It's far worse: I'm actually serious.
Here's where I'm coming from:
Maybe it's just because I was one of the last MC users, but Dr. Raney's
DIY encouragement never left me: "Let a thousand flowers bloom" he would
say of anyone with time and interest to fork and replace IDE components.
I kept using the MC IDE about a decade after Revolution first premiered.
Eventually I got tired of making my own GUIs for the new engine
features, so I started using LC IDE - but the script editor was too slow.
So I forked MC's, added line numbers (years before the LC IDE had line
numbers - we were all such savages back then <g>), and made it into a
plugin. Ken Ray also helped with some of the fork, and we used it for
another five years or so even after we switched from MC to LC so we
could use the other tools.
After the big Waddingham SE Overhaul things got a lot better, and the
balance of features vs performance became more favorable for me, esp. in
light of the work required to properly maintain a fork. So now I use
LC's SE.
There's a couple points with this:
1. People can and do make their own script editors.
Why not? It's text in a field. If we can't make a good text editor in
LC why are we even here? But after delivering a good many custom work
processors I came to believe -- and still do -- that LC can make an
excellent text editor.
Basic features aren't hard. It's modestly rewarding, and you learn a
lot about making text editors.
What I found, though, was:
2. It ain't the field slowing us down.
As far as I can tell, the LC field object is pretty responsive to input.
And MC is faster than LC. Given the same engine, the difference is in
the scripts.
So the good news is that fixing serious slowdowns require the one skill
everyone on this list has: LiveCode scripting.
I've spent enough time going through the LC SE code to know that I don't
enjoy it. No offense to the team; it just has layers of legacy stuff
and over time it's accumulated a bit of cruft, made more complex by the
demands of the audience for new features. I understand how it got that
way, and I appreciate it's ambitions. I just don't enjoy working on it;
it's a beast.
So if anyone were relying on me to fix the SE performance issue (and
there are many reasons we're all glad no one is relying on me for that),
I'd be inclined to write a new one from scratch instead.
It may be possible to design and build something with all the current
engine strengths and weaknesses in mind that could become more
satisfying than continually patching a complex legacy stack.
However...
...there's a reason the team patches rather than replaces. Replacing is
expensive. Done well would take tremendous time. Sure, a field with a
"Save" button takes only an hour, and a slightly more usable feature set
takes a day; but a productive set takes weeks; greatness would take months.
And even then, ultimately we may find ourselves left with the question:
Is it possible to deliver the feature set current SE users demand
without adding a performance hit?
I'm one of the lucky ones, because once I turned off the SE features
that seemed likely to slow me down, I no longer have a slow SE.
Accordingly, I'm happily making stuff for clients, and am not very
motivated anymore to work on a script editor.
But if this were bothering me, I'd either dive into the existing SE and
fix it, or write my own.
Life's too short not to have what we want.
> The wiki sounds like a neat project. Simplicity helps, and whether to
> locate it in the SE is a consideration. Besides performance, another
> issue is that the original proposal here was adding user comments back
> to the Dictionary.
Personally, I prefer dedicated tools. The MC SE slowed down a lot when
it was combined with the debugger. When I forked it I returned to a
editor separate from a debugger, each purpose-built for the task they do
(extra bonus points that a sufficiently discrete debugger can also be
used in a standalone).
Combining lots of functionality into one window contributes to
complexity, which often finds expression in performance, and can slow
maintenance work while increasing cognitive load for user and developer
alike.
For that reason, I'd prefer a wiki be in a layout optimized for reading,
leaving the script editor optimized for writing.
--
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