Page 2 of 4

Re: LC vs Flutter

Posted: Thu Sep 23, 2021 7:16 am
by FourthWorld
There's a request for ternary operators in the LC bug DB. Some have written functions for it in LC Script.

If you like it it's handy. If not you can write tons of JS without ever using one.

Re: LC vs Flutter

Posted: Thu Sep 23, 2021 7:23 am
by Simon Knight
Had to be done :

Code: Select all

on mouseEnter
   set the backgroundColor of me to "blue"
   set the foregroundColor of me to "red"
   set the textdirection of me to "ltr"  -- the default
   put random(2) into tChooser
   if tChooser is 1 then
      put "Hello World" into me
   else
      put "Goodbye Cruel World" into me
   end if
end mouseEnter
To be fair I have read that Flutter/Dart uses its own UI widgets which means it is faster which is an advantage in certain circumstances.

Re: LC vs Flutter

Posted: Thu Sep 23, 2021 8:42 pm
by stam
Not an entirely fair assessment of flutter ;)

Ternary operator would be good to have in LC as well - it's fairly common.

You can write the same code in about half the length in LC - but that code in Fluter is the entire app - no binary resources, no creating a stack, adding labels etc. Plus you can set it up so any time you save the code it automatically updates the app in the simulator or your phone within a second or so, so rather than creating a graphical interface, you run the simulator and change the code, save and see the immediate result.

It's not so much that flutter seems weird - it's more that x-talk is vastly different to any other language out there ;)

Re: LC vs Flutter

Posted: Thu Sep 23, 2021 8:58 pm
by Simon Knight
Not an entirely fair assessment of flutter ;)
Not even close I'm sure, trust me I don't have a clue ;-)

I have tried to download flutter but the download fails at the moment. I'm curious by what your mean by the code being a complete application: does it just take over the whole screen or flutter window? Also what triggers the code to run ?

S

Re: LC vs Flutter

Posted: Thu Sep 23, 2021 11:04 pm
by bwmilby
stam wrote:
Thu Sep 23, 2021 8:42 pm
You can write the same code in about half the length in LC - but that code in Fluter is the entire app - no binary resources, no creating a stack, adding labels etc.
Not entirely accurate though. When you create a new project there are a few different files that are generated. Any graphics and such would be additional files too. I did manage to get through the first intro app and will say the hot reload is pretty cool. I still think that our live environment is a bit easier though.

Re: LC vs Flutter

Posted: Fri Sep 24, 2021 12:15 am
by stam
bwmilby wrote:
Thu Sep 23, 2021 11:04 pm
When you create a new project there are a few different files that are generated. Any graphics and such would be additional files too.
sure, but in the simple example above that's the entirety of what you produce - the rest is all produced automatically. No images included in the above app but would do in a normal app and you'd normally also produce multiple files (a file per widget/class) instead of bunching everything into one long script.
That long script has always bothered me btw!
bwmilby wrote:
Thu Sep 23, 2021 11:04 pm
I still think that our live environment is a bit easier though.
Absolutely - and not just a by a bit. LC has a much shallower learning curve; visual IDEs are more approachable (and i do wish a there was an official visual IDE for flutter), but more importantly LC provides many conveniences taken for granted. Try iterating a list of maps (an numerical array of associative arrays) and you'll appreciate the simplicity of livecode arrays and the each[] iterator ;)

But flutter does have many strong points - it's just a steeper hill to climb...

Re: LC vs Flutter

Posted: Fri Sep 24, 2021 12:37 am
by stam
Simon Knight wrote:
Thu Sep 23, 2021 8:58 pm
I'm curious by what your mean by the code being a complete application: does it just take over the whole screen or flutter window? Also what triggers the code to run ?
By complete application i mean from the creation point of view. Type that in, hit build and you're done. The full binary app is created. All graphical elements are created for you etc.
More complex apps will have more files. On mobile the app takes up your screen, not so on desktop.
In the simple example you post, the app runs on launch (no interactivity) - the main() function is entry point, and in this you run the runApp command by passing it your app (which is a widget)
The weird thing in flutter is that everything is a 'widget'. The app is a widget, as is the container (a layout element) and the text of the container. You basically build up 'widget trees'.

Very different mindset and not intuitive to LC users at all, but that's not to say it's not good - after all there are orders of magnitudes more flutter users than there are LC users. But there will be a steeper learning curve. Might be worth investing £10-15 in a udemy course to take the sting out of it.

If you're a long time LC user i think most other languages will pose similar challenges - LC is just too different (and the inverse is true as well, took me a long time to actually 'get' LC)

Re: LC vs Flutter

Posted: Fri Sep 24, 2021 8:29 am
by richmond62
took me a long time to actually 'get' LC
This was because you were not a 'virgin'.

In my Summer classes each year 'virgins' "get" LIveCode straight away and unquestioningly.

I believe this is because the use of the container metaphor is blatant in LiveCode.

https://philosophyandpsychology.wordpre ... -metaphor/

Those who have been 'violated' by jolly little things such as Java, Python and C# have a
much, much tougher time.

Oddly enough, with teenagers I tend to let them have some 'foreplay' with BBC BASIC, either
on my 2 BBC Micros or on a BBC emulator on a Linux box, and this does NOT seem to prevent
them "getting" LiveCode at all.

Please excuse the slightly "off" simile, but it does seem appropriate conceptually.

Re: LC vs Flutter

Posted: Fri Sep 24, 2021 11:56 am
by stam
richmond62 wrote:
Fri Sep 24, 2021 8:29 am
In my Summer classes each year 'virgins' "get" LIveCode straight away and unquestioningly.
Erm... that was exactly my point. Thanks for confirming ;)

To be explicit, being fluent with other languages made it easier to learn more of similar languages as although there are differences the overall structure is fairly common across these. Not so with liveCode - which was very different and it took a long time to learn a different way.

The point i was trying to make is that the inverse is also true; just because you're an expert in LC does not mean you can pick up Flutter or any other such language without a significant learning curve. So if you want to learn flutter you're going to have to invest time and effort.

Re: LC vs Flutter

Posted: Fri Sep 24, 2021 12:39 pm
by richmond62
The point i was trying to make is that the inverse is also true
Indeed.

Various ex-summer course kids of mine, having got reasonably far with LiveCode told me 2 things
when they started High School C# classes:

1. The theoretical stuff (conditional loops, switch statements, and so on) were VERY EASY to understand.

2. The syntax of the new language was sometimes a blocker because it did not resemble that in LiveCode.

Oddly enough, in 1993, cracking open a Macintosh computer and finding HyperCard, coming from
FORTRAN, BASIC and PASCAL, I found HyperCard refreshingly easy.

Re: LC vs Flutter

Posted: Wed Sep 29, 2021 9:25 pm
by richardmac
I trust Google about as far as I can throw my car.

Re: LC vs Flutter

Posted: Wed Sep 29, 2021 9:35 pm
by stam
richardmac wrote:
Wed Sep 29, 2021 9:25 pm
I trust Google about as far as I can throw my car.
No one 'trusts' google. But what's that got to do with this conversation?
Flutter/Dart is freely available and opensource. It has massive backing and support from both the community and google. You can use Visual Studio Code or Android Studio as your IDE.
You don't need to use any Google service to create apps with this. So 'trust' is neither implied or required.

Unless you mean trust that the platform won't remain free? (*cough*)

Re: LC vs Flutter

Posted: Wed Sep 29, 2021 9:48 pm
by FourthWorld
I once trusted Apple to deliver the HyperCard 3.0 they demoed at WWDC.

Today I trust no FAANG.

But for most of the tools I use, trust isn't a relevant consideration. A tool either does what I need at the moment or it doesn't.

Re: LC vs Flutter

Posted: Wed Sep 29, 2021 10:44 pm
by stam
It's a bit of stretch to say that because of a broken promise in 1996 you don't trust the whole company forever more...

Remembering that 1996/7 was the year Steve Jobs re-joined Apple and had to streamline their focus because they were truly a sinking ship and he managed to turn that around by focusing on the core business. Other victims of that time were openDoc and the Newton MessagePad the latter of which if i'm honest i lamented more than HC (even though my first programming experience was with HyperCard on system 6 - loved it!).

It's fascinating to read the history of HC but really in my mind, HC was losing the game as the world wide web came in 1994 onwards and there was no real insight at the time what this would mean for computing and for HC in particular. Bill Atkinson was quoted as saying
if I had only realized the power of network-oriented stacks, instead of focusing on local stacks on a single machine, HyperCard could have become the first Web browser.
(source: https://www.wired.com/2002/08/hypercard ... have-been/).
But this only serves to emphasise the lack of insight of what HC could have been... web browser? really? Think bigger! There was no real vision that would ensure the long term survival of HC.

Instead, HC was just viewed as a 'multimedia app' internally (with many notable exceptions externally sadly) which of course cannot compete with web technology really, HC's days were numbered.

It's easy to blame 'Apple' but really HC's demise was due to many circumstances and it's not hard to see how Apple chose to not fight a losing battle.

What it really needed was something like what LiveCode has become... but it's taken some talented individuals and 20+ years to get there...

Re: LC vs Flutter

Posted: Wed Sep 29, 2021 11:36 pm
by FourthWorld
stam wrote:
Wed Sep 29, 2021 10:44 pm
It's a bit of stretch to say that because of a broken promise in 1996 you don't trust the whole company forever more...
On the contrary, neither trust nor even blame are at all relevant to my relationships with vendors.

I consider that HyperCard moment, along with the moment it became clear SuperCard would never ship their Windows version, merely liberating.

After those experiences I live more simply, and run my business more effectively, with less blame on others and taking full responsibility for my own tooling choices:

If a product exists, it exists. If it doesn't yet exist, it doesn't exist.

I don't need to spend an ounce of mental energy on ideas that might or might not exist as actual tools at some possible future time.

Only things delivered to my hands where I can evaluate their fitness for the task I'm working on at the moment matter to me.

Ideas are just ideas; fun, but not tooling I can put to work. Intentions are often good, but intentions are not tooling.

So I use what exists, and ignore what doesn't.

Since then my business has grown, as have my relationships with my company's vendors.

As you said, what does trust have to do with this conversation about tooling options?

--

My concerns about FAANG are a separate matter, though admittedly I didn't clarify that earlier. Like many other netizens, and most legislators, I'm increasingly uncomfortable with having most of what happens on the world's Internet controlled by just five CEOs.

In all fairness, the "N" there may be a bit dated, since Netflix has shown itself it be a reasonably responsible steward of the data it collects and how it uses it in negotiating global media distribution. Twitter, however, remains a karmic cesspool of state actor psyops botfarms tolerated to keep perceived audience sizes appearing large for advertisers. So maybe "FAATG" would better reflect the current state of play.