What do we know about LC 10?
Mark Waddingham
mark at livecode.com
Fri Aug 31 07:27:25 EDT 2018
On 2018-08-30 21:42, Mike Kerner via use-livecode wrote:
> Mark tends to complain about the engine, but they also inherited the
> engine
> when they bought it from MetaCard. He has said that it is difficult to
> work on.
Heh - any complaints are more 'frustration' over the effort/time to make
significant changes rather than anything else.
Stability/robustnss wise it is actually pretty good - sure there are
edge cases it is not that great at but the majority of what most people
use all the time is rock solid. Interestingly, some of the edge cases
are being hit more than they ever used to - but I consider that a good
thing as it means people are pushing it much harder than it ever has
been in its history.
In terms of difficulty working on it:
- it comprises C/C++/Obj-C/Obj-C++/Java
- it grew very organically in the early days (less so since I've been
working on it)
- it has a great deal of hand-coded/replicated *almost* consistent but
not quite code patterns
- it has a language system meaning that changes must work for all
reasonably determinable use-cases
- it has a language system in which 10,000,000s of lines of code are
written, meaning that changes must not break existing code (and if they
do there has to be an exceptionally good reason to!)
- it has a GUI framework which must largely work the same in multiple
different windowing systems
- it has a large library of utility functions/commands
- it runs on 6 quite different operating systems
- it runs on 4 different processor architectures
So, yes, it is difficult to work on [ some might say exceptionally
difficult ;o) ].
The difficulty is not just because of the size/scale/structure of the
source but because the whole of what the engine is and must do puts a
huge number of constraints on what can be done (and what should be
done!) in any reasonable time frame.
Actually, I think I have now been the chief engineer on the engine for
longer than it was ever MetaCard (or even existed at all!). In that time
the source base has grown from around 150,000 code lines (+ 5,000
comment lines) to 475,000+ code lines (+ 50,000 comment lines). [ This
would be comparing v2.0 to v7.1 - I've not done a loc analysis on recent
versions - and doesn't include the LCS / LCB which we consider to be
engine source code ]. Upshot - I am ultimately responsible for the
greater part of what the engine is now regardless of what it was as
MetaCard.
Aside from any complaints I might make, I do still love working on it;
even though, as I get older, my enjoyment from writing
C/C++/Obj-C/Obj-C++/Java declines year-on-year.
Warmest Regards,
Mark.
--
Mark Waddingham ~ mark at livecode.com ~ http://www.livecode.com/
LiveCode: Everyone can create apps
More information about the use-livecode
mailing list