Jettisoning LCB?

All flavors welcome.
Forum rules
Be kind.
User avatar
richmond62
Posts: 4832
Joined: Sun Sep 12, 2021 11:03 am
Location: Bulgaria
Contact:

Jettisoning LCB?

Post by richmond62 »

As LCB can, at best, be described as a half-finished, largely undocumented thing I wonder how valuable keeping it is . . .

1. Maybe it should be 'completed' (what ever that really means).

2. Maybe a "Watch Out!" notice should be attached to it so that xTalk programmers do not lose an awful lot of time fossicking around down a dark rabbit hole.

3. Maybe it should be 'buried' to such an extent that although it is still 'there' it is inaccessible to end-users.

Certainly if OXT is to retain LCB it needs to be documented in such a way that end-users can learn how to use it just as quickly as one can learn xTalk.
https://richmondmathewson.owlstown.net/
User avatar
tperry2x
Posts: 3210
Joined: Tue Dec 21, 2021 9:10 pm
Location: Somewhere in deepest darkest Norfolk, England
Contact:

Re: Jettisoning LCB?

Post by tperry2x »

I know Paul very much wants to keep LCB in. I think what would be nice it's a stack that actually writes Livecode-builder syntax for you.
LCB syntax is a lot harder to follow than xTalk script. It's not C++ either. It's kind of in the middle. What makes it especially hard it's that it's a niche language (in what is already a niche IDE to be blunt), and the documentation for how to write anything in LCB is incomplete and not detailed enough. (At best)

We should really rename it XTB (xTalk Builder), and full, complete documentation with examples would be brilliant. As I mention above, perhaps we could have a stack that auto-creates LCB/XTB syntax from the user picking drop-down menus or options (or just a bunch of code presets would be a start).

Does the IDE do syntax hilighting and debugging for LCB(XTB) syntax at all?
User avatar
richmond62
Posts: 4832
Joined: Sun Sep 12, 2021 11:03 am
Location: Bulgaria
Contact:

Re: Jettisoning LCB?

Post by richmond62 »

XTB . . . erm.

"X Total Bull . . ."

I think that xTalkB is a better bet.
and full, complete documentation with examples would be brilliant
It would, but having done some sniffing around this is what I got:
-
Screenshot 2024-07-15 at 15.46.49.png
Screenshot 2024-07-15 at 15.46.49.png (44.3 KiB) Viewed 2462 times
-
On the web site of the company that invented LCB there is no real documentation.

What I do not understand is how the inventors of LCB thought users of LCB would proceed (let alone become competent users of LCB) without documentation.

The 'situation' re LCB documentation has come up again and again, and been mentioned by many, far more experienced computer programmers than me: and the result (like so much else) has been a dull thud.

A long, long time ago (1987) I walked into a bar in Stornoway and ordered a pint of beer, at which point the bar man replied in Gaelic (a language I do not understand): at which point I replied, "Ahm unco sair, but Ah disnae thole til the Gaelic." And he reponed, in English, "I don't understand you." So I repeated my reply in English, at which point he stated that he would not serve me as I did not understand Gaelic. When I replied (in English) that I had not had the opportunity to learn that language, and that was no worse than the fact that he did not understand my Buchan (Scots), said that the fact that I did not understand Gaelic was my fault.

You can probably understand how I felt.

The Scots word (which I cannot find an English equivalent for) is forfechan.

Now I feel rather like that re LCB as the "two barman" (Kev and Mark) are not treating me (or, seemingly, any one else) fairly.

Luckily, in Stornoway I just walked down the road to a hotel and had my drink there: not quite so simple with LCB.
-
carProb.jpg
carProb.jpg (96.77 KiB) Viewed 2455 times
-
No extra driving lessons needed. :lol:
https://richmondmathewson.owlstown.net/
User avatar
richmond62
Posts: 4832
Joined: Sun Sep 12, 2021 11:03 am
Location: Bulgaria
Contact:

Re: Jettisoning LCB?

Post by richmond62 »

Screenshot 2024-07-15 at 16.20.49.png
Screenshot 2024-07-15 at 16.20.49.png (445.77 KiB) Viewed 2453 times
-
The usual problem with the Dictionary: how the hell does one know the term one needs to look up?

https://forums.livecode.com/viewtopic.php?f=93&t=23580

Sorry, but this is even worse:
-
Screenshot 2024-07-15 at 16.28.30.png
Screenshot 2024-07-15 at 16.28.30.png (133.94 KiB) Viewed 2451 times
-
At least the LC 963 Dictionary gives us a list to scroll through.

In fact that is a major criticism of your dictionary. :(
https://richmondmathewson.owlstown.net/
User avatar
tperry2x
Posts: 3210
Joined: Tue Dec 21, 2021 9:10 pm
Location: Somewhere in deepest darkest Norfolk, England
Contact:

Re: Jettisoning LCB?

Post by tperry2x »

That is a fair point. I've never tried to search for anything in 'builder' syntax because..., well WHAT am I searching for :lol: ?

You hit the nail on the head.

I simply never tried it.
But to be fair, not 'my' dictionary - I didn't write it, but the point is valid: it should show 'something'.
User avatar
tperry2x
Posts: 3210
Joined: Tue Dec 21, 2021 9:10 pm
Location: Somewhere in deepest darkest Norfolk, England
Contact:

Re: Jettisoning LCB?

Post by tperry2x »

LiveCode currently does not include a built-in editor for .lcb source files but, because they are plain text files, they can be written using any text editor. There are two forms of extensions that you can write: widgets, which are controls like the existing built-in controls (buttons, progress bars, etc); and libraries, which add new commands and functions to the engine.

Please see the LiveCode Builder user guide for information on how to write code in LCB.
Where is the
LiveCode Builder user guide
?

That's also a bit like saying, there's no point giving you a script editor because you can do that in a text editor. Yes, the same way you can also use a rock to hammer a nail in. But it's a lot harder.
User avatar
richmond62
Posts: 4832
Joined: Sun Sep 12, 2021 11:03 am
Location: Bulgaria
Contact:

Re: Jettisoning LCB?

Post by richmond62 »

It really doesn't matter whose dictionary it is, but with an old-fashioned dictionary I can at least browse through it.
-
Screenshot 2024-07-15 at 17.18.45.png
Screenshot 2024-07-15 at 17.18.45.png (787.07 KiB) Viewed 2439 times
-
The LC 963 Dictionary is only better in that respect: as there is no way learners can know terms in advance one has to 'stab' at random,
https://richmondmathewson.owlstown.net/
User avatar
tperry2x
Posts: 3210
Joined: Tue Dec 21, 2021 9:10 pm
Location: Somewhere in deepest darkest Norfolk, England
Contact:

Re: Jettisoning LCB?

Post by tperry2x »

I suppose it comes down to trawling through this kind of thing:
https://github.com/livecode/livecode/bl ... ference.md

At which point, most people might as well just switch to C++ anyway.
User avatar
richmond62
Posts: 4832
Joined: Sun Sep 12, 2021 11:03 am
Location: Bulgaria
Contact:

Re: Jettisoning LCB?

Post by richmond62 »

LiveCode Builder user guide
I feel that LCB is another of those people's projects that never got completed because they were always running hell-for-leather for the next "great thing": certainly when one comes across references to 'open language' and so forth, one cannot help wondering.

However, I do remember when my older son was aged 5 - 17 he was always starting 'clever' projects that never came to fruition. However MY SON grew up, so now, as Musical Director of the Latvian National theatre he completes all the projects he either initiates or his involved with (including a very impressive recording studio he built himself).

And the two words that really matter in what I just wrote are 'grew up'.
https://richmondmathewson.owlstown.net/
User avatar
richmond62
Posts: 4832
Joined: Sun Sep 12, 2021 11:03 am
Location: Bulgaria
Contact:

Re: Jettisoning LCB?

Post by richmond62 »

just switch to C++ anyway
I looked at C++ about 10 years ago, and as xTalk satisfies ALL my programming requirements, and being "permanently traumatised" by FORTRAN and PASCAL, I stuck with xTalk.

I regard LCB as a half-cock solution for a simple fact:

xTalk cannot be all things to all men, any more than C++ or Python can be. What xTalk is good for it is very good for: what it is no good for it is no good for.

The inventors of LCB, instead of "talking up" what xTalk is good for, decided to try and find a way to make it good for things it was never intended to be good for, and probably cannot be owing to its nature.

Thee, Me, and a large number of users of LC/OXT can compile a list of the things that xTalk is good for: and were you to ask me about doing something that xTalk is not good for, I would tell you to go away and find some other type of programming solution for your project.

The inventors of LCB may have actually worked out that what I have just stated is true to a certain extent, hence the recent mentioning of being able to make 'widgets' using LC/xTalk rather than LCB . . . although I fear that is another of their good ideas that was dropped as they started running into the no-code-robot-pie-in-the-sky quagmire they are currently stuck in.

You may now be beginning to understand why I suggested jettisoning LCB.

Were OXT to feature a way to make 'widgets' (a word that is so ambiguous it might be best to avoid it), as in new controls/objects, with OXT's native language (xTalk) and not LCB/XCB/xTalkBuilder/LGBTQ, and LCB be buried (it might have to still be 'there' lurking under the hood, for those existing LCB widgets to function), I feel that would be a great leap forward.

Although part of me wonders what the difference between an xTalk 'widget' and a collection of grouped controls might be.
https://richmondmathewson.owlstown.net/
User avatar
richmond62
Posts: 4832
Joined: Sun Sep 12, 2021 11:03 am
Location: Bulgaria
Contact:

Re: Jettisoning LCB?

Post by richmond62 »

I know Paul very much wants to keep LCB in.
OK, Paul, "pick a fight" with me. :)

It would be 'jolly' if Fourthworld and Mark W. could get involved in this discussion as they, unlike me, actually make their 'bread and cheese' with xTalk.
https://richmondmathewson.owlstown.net/
User avatar
richmond62
Posts: 4832
Joined: Sun Sep 12, 2021 11:03 am
Location: Bulgaria
Contact:

Re: Jettisoning LCB?

Post by richmond62 »

LiveCode Builder is a variant of the current LiveCode scripting language
That strikes me as stating 'English is a variant of German'.

The implication is that it is just a matter of a moment's thought to move across to another close dialect, which seems disingenuous.
Unlike most languages, LiveCode Builder has been designed around the idea of extensible syntax.
Is that a fact? Well. let's see some examples of that.
C-style aggregates (e.g. structs) can now be accessed from LCB via the new aggregate parameterized type. This allows calling foreign functions which has arguments taking aggregates by value, or has an aggregate return value.

Aggregate types are foreign types and can be used in C and Obj-C foreign handler definitions. They bridge to and from the List type, allowing an aggregate's contents to be viewed as a sequence of discrete values.
That is really super: so let's think about what that entails.
Build apps using our visual development environment and our easy
to understand programming language that has no limits to what you can create.
https://livecode.com/

Aha: but, surely, to use LCB you have to have some sort of grasp of C and Obj-C (2 other programming languages that have a completely different design ethic behind them)?
The LiveCode Builder Virtual Machine is a infinite register machine with a high-level and verifiable bytecode.
My underlining.

I wonder who wrote that? Obviously some person who, possibly being good at computer programming, was a complete ignoramus about basic English grammar.

Not having touched anything except HyperCard, MetaCard, ToolBook, Visual BASIC, and Runtime Revolution/ LiveCode for 25 years that means absolutely NOTHING to me, and is NOT helpful in the slightest.

Many long years ago I learnt BASIC: in fact I spent quite a lot of the summer holidays down on the beach, with no computer (I didn't have one at home either) getting to grips with it with an exercise book and a pencil and a book a bit like this one:
-
BASIC.jpg
BASIC.jpg (152.82 KiB) Viewed 2427 times
-
And that is something near what we require (admittedly probably either as a PDF, or as something inwith the IDE).
https://richmondmathewson.owlstown.net/
FourthWorld
Posts: 442
Joined: Sat Sep 11, 2021 4:37 pm
Contact:

Re: Jettisoning LCB?

Post by FourthWorld »

tperry2x wrote: Mon Jul 15, 2024 2:26 pm I suppose it comes down to trawling through this kind of thing:
https://github.com/livecode/livecode/bl ... ference.md

At which point, most people might as well just switch to C++ anyway.
Bingo

Builder attempts two roles, and they're quite different:

1. Replacing externals as the way to interface with OS APIs.

2. Replacing groups to make custom controls like the DataGrid..
.
Re #1: To work with low-level APIs you already need to be very comfortable with the code and conventions that drive them, as you've noted. But with Builder you lose the advantage of being able to actually use any examples provided by API/OS vendors. Externals get the job done for the type of developer doing that job.

Re #2: As the DataGrid exemplifies, custom controls using groups and behaviors have been a useful thing for a long time. The Before and After handler calls were added to support building custom controls with groups, and the main Script engine is well understood to produce more performant code than Builder. Even that company is now backpedaling on this usage, resuming work on packaging group-based custom controls using Script.

oxTalk/LC Script is a capable but obscure language. Builder has some nice ideas, but IMO not enough to warrant replacing existing means to the two problems it attempts to solve. And it's even more obscure, multiplying cognitive load by being as unlike other languages as Script is, but also incompatible with Script itself, so code written for one cannot be used in the other.

In the early design days of Builder I lobbied as ardently as I could to continue on the paths already established, with externals and groups, rather than undertake the massive and perpetual expense of a new method to accomplish those goals. Designing, building, refining, documenting, and maintaining a whole other language is a HUGE commitment to additional ongoing expenses.

I was unsuccessful at the time, but the company has since at least returned to half of that with "Script Widgets". The DataGrid remains the most widely used custom control; it predates Builder, made entirely with Script, showing the way for any other custom control, as even the Builder inventor is now returning to.

All that said, I know Paul is among the relatively few xTalkers who use Builder, enjoys it, and has made useful things with it.

If I ran the circus (and I recognize I don't), I would just leave it alone, available for those who already use it, but not promote it in any way that commits precious resources to any additional work on it.

There are soooooo many other high-value objectives to pursue, and neither this project nor the proprietary variant can easily afford to spend much more on Builder than the considerable resources it's already consumed over the years.
User avatar
tperry2x
Posts: 3210
Joined: Tue Dec 21, 2021 9:10 pm
Location: Somewhere in deepest darkest Norfolk, England
Contact:

Re: Jettisoning LCB?

Post by tperry2x »

Essentially this ^ and what Richmond has said. I'd just leave it be and leave it as it is.
Not cover it up or bury it further, but just leave it there for those who want to play with it. "For the rest of us" (to coin a phrase) we can just carry on with xTalk scripting and getting the engine sorted.
User avatar
tperry2x
Posts: 3210
Joined: Tue Dec 21, 2021 9:10 pm
Location: Somewhere in deepest darkest Norfolk, England
Contact:

Re: Jettisoning LCB?

Post by tperry2x »

I should also mention, the dictionary that myself and TerryL have most recently been working on:
builder.png
builder.png (212.11 KiB) Viewed 2412 times
Does show the LC builder syntax, if that's of any help to anyone.
User avatar
richmond62
Posts: 4832
Joined: Sun Sep 12, 2021 11:03 am
Location: Bulgaria
Contact:

Re: Jettisoning LCB?

Post by richmond62 »

So, are you going to give us that better dictionary 'yesterday' or hug it to your chests?

At the moment, when I get stuck in OXT Lite I fire up LC 963 just to use the Dictionary . . . :cry:
https://richmondmathewson.owlstown.net/
User avatar
tperry2x
Posts: 3210
Joined: Tue Dec 21, 2021 9:10 pm
Location: Somewhere in deepest darkest Norfolk, England
Contact:

Re: Jettisoning LCB?

Post by tperry2x »

richmond62 wrote: Tue Jul 16, 2024 7:59 am So, are you going to give us that better dictionary 'yesterday' or hug it to your chests?
I'm not sure I follow you. The one in this picture is available (and has been available) for a while.
User avatar
richmond62
Posts: 4832
Joined: Sun Sep 12, 2021 11:03 am
Location: Bulgaria
Contact:

Re: Jettisoning LCB?

Post by richmond62 »

Ah, so is that the one currently wrapped up in the IDE?

If it is my previous criticisms still hold.
https://richmondmathewson.owlstown.net/
User avatar
tperry2x
Posts: 3210
Joined: Tue Dec 21, 2021 9:10 pm
Location: Somewhere in deepest darkest Norfolk, England
Contact:

Re: Jettisoning LCB?

Post by tperry2x »

richmond62 wrote: Tue Jul 16, 2024 9:33 am Ah, so is that the one currently wrapped up in the IDE? If it is my previous criticisms still hold.
The 'Quick Dictionary' - (not the one in your screenshot). Can you confirm if you've got the checkbox turned on in the preferences for the Quick Dictionary?
This seems to work fine as far as my testing here. TerryL has been doing a good job of fixing various parts of the script on it. Feel free to create your own though.
User avatar
richmond62
Posts: 4832
Joined: Sun Sep 12, 2021 11:03 am
Location: Bulgaria
Contact:

Re: Jettisoning LCB?

Post by richmond62 »

After lunch . . .

Once OXT Lite 'crystalises' its interface there needs to be comprehensive documentatio about all its features, options, and what have you.
https://richmondmathewson.owlstown.net/
Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest