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