On 2015-04-28 07:43, Richmond wrote:
Like me!

Is there any way to convert small LC scripts into the LC Builder language?

While the LC 8 DPs provide "a first look at LiveCode’s new “LiveCode
Builder” language", there is no
comprehensive guide to LC Builder . . .

. . . is there something like this lurking on a computer up at the
mothership in Edinburgh?

. . . is something like this going to be made available for those who
do not intuitively grasp
a new programming language on the basis of a few, fairly scanty examples?

Hi Richmond,

Although you can write a lot of LiveCode Script (LCS) programs in LiveCode Builder (LCB), it's not really practical to write a tool to automatically transform LCS programs to LCB. There are a number of reasons for this:

- the LCB language does work in quite a different way to Script; many programs in LCS just wouldn't be written in the same way in LCB. For example, LCB has a "List" type, which isn't present in LCS, but is incredibly useful.

- LCB is a lot stricter than Script in many respects; programs that take advantage of LCS's tolerant and forgiving nature would generate a lot of errors.

- currently, the LCB standard library is a lot smaller and far less incomplete than LCS's. For example, if you're running LC 8 on Windows, you currently can't even access files without either calling low-level platform C APIs (which you *can* do directly from LCB!) or calling into LCS. Many quick and useful LCS programs can't be written in LCB -- yet.

- at the moment the LCB virtual machine (the bit of LC8 that *runs* a compiled LCB program) is a bit slow. For many programs, you wouldn't get much of a speed-up from converting to LCB -- or it might even run slower!

All of those points sound really quite negative, but in reality LCB is very good and useful, and I am currently doing the *vast* majority of my LiveCode programming in LCB rather than using LiveCode Script.

Also, LCB is *really good* for writing widgets! LCB's graphics syntax is very easy to use, and a widget can render custom graphics far more quickly and efficiently than LiveCode's "traditional" method for drawing custom graphics. In LC 8, many parts of the IDE are now implemented using widgets, and the overall result is for a much more responsive and robust experience.

I really recommend reading these blog posts for examples of what can be achieved with LCB widgets (and how to create them):

  http://livecode.com/the-evolution-of-dragons/

http://www.bluemangolearning.com/livecode/2015/04/creating-a-busy-indicator-in-livecode-builder/ http://www.bluemangolearning.com/livecode/2015/03/creating-a-slider-widget/ http://www.bluemangolearning.com/livecode/2015/03/dawn-of-the-planet-of-the-widgets/

More internal blog posts are definitely on the cards -- I've been talking to some of the other people on our team about it this morning, and (as I understand it) there should be at least one LCB-focussed blog post coming out in the next week.

LCB can be used to write things that aren't widgets, too. It can be used to add functions and commands to LCS by creating extension libraries. Recently I wrote a complete JSON parser/generator in pure LiveCode Builder, which you can find here:

  https://gist.github.com/peter-b/b54ba5587af240589513

This library is significantly faster than the LiveCode Script "EasyJSON" stack (https://github.com/luxlogica/easyjson) -- but, alas, it is still much slower than Monte's mergJSON.

Hope some of that helps.

                                        Peter

--
Dr Peter Brett <[email protected]>
LiveCode Engine Development Team


_______________________________________________
use-livecode mailing list
[email protected]
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode

Reply via email to