Page 1 of 1

good enough?

Posted: Mon Mar 26, 2012 7:57 pm
by berndg
I am pretty new to LC (not new to programming), and enjoy it mostly because LC is different. What I don't enjoy is the immature nature of the runtime code, or engine. This forum alone is full of reports about things that should work but don't. Based on my -so far- limited experience, there're a lot of such things. Check out my earlier post on image assignments to buttons (http://forums.runrev.com/viewtopic.php?f=7&t=11469) or look-up the comment section on 'moveStopped' in the dictionary, or.... the list may not be endless but is very long.

Seriously, folks. This simply is not good enough.

I like the tool and continue having a good play with it, but I'd appreciate if RunRev could focus on creating a solid cross-platform tool and runtime environment rather than chasing after iOS' latest whim.

Re: good enough?

Posted: Mon Mar 26, 2012 8:17 pm
by FourthWorld
In the example you linked to, changing the reference to the ID of the image seemed to resolve it, and since that's the only way I've ever assigned button icons it's always been good enough for me.

I've only been programming for 25 years, but in that short time I've worked with a fair number of languages and frameworks, including just about every xTalk ever made, and it seems all of them are chock full o' gotchas. There may be a perfect language out there, but I haven't come across it yet.

So on the core question, "Is LiveCode good enough", I can only say it's been good enough for me and my clients, and many other devs, to deliver cost-effective vertical-market applications that are enjoyed by many thousands of users.

Whether it's good enough for you may depend on your own preferences and what you need to do.

Re: good enough?

Posted: Mon Mar 26, 2012 9:24 pm
by Dixie
Seriously, folks. This simply is not good enough.
I am going to start off by stating that I am not going to make any apologies for what I am about to say… though before I begin to ruffle feathers, I will say that I am pleased that you are enjoying using liveCode and hope that you continue to do so...

You say that you enjoy it mostly because it is different… but different to what ?… Basic ?.. Yes!… C and derivatives of ?… Yes!… Pascal… mmm.. but it has inherited the methods of using handlers that Pascal introduced… It is a xTalk language that has its roots in Bill Atkinsons' HyperCard released to the Macintosh world to more than thunderous applause in '87, it is just a shame that the 'soft drink salesman' at the helm of Apple at the time did not realise how much fizz was actually contained within the HyperCard bottle… Along came 'SuperCard', another Mac-centric tool that grew to fill the gaps that HyperCard had left as Apple's interest in the software fell by the wayside… And then came 'RunRevs Revolution', not only an xtalk platform for the Mac, but for Windows and Linux as well… I really think that it was more than 'brave' to attempt, launching a new software package to support three different platforms, to write code once that would then run under three different Operating Systems… and not only did they do it, but did it very well, certainly as far as the Mac and WIndows platforms are concerned. ( I have to admit that I cannot talk about liveCode under Linux as I have never had a box on which to try it…)

The forum is indeed full of reports about things that should work but don't… but, If you read the complete threads of these reports you will see that in the majority of cases it is not that 'these things' don't work, but is usually because the author of the post has not understood the syntax he/she is trying to employ within their scripts… 90% of the time because they have have an aversion to looking up the syntax in the dictionary or have not been bothered to read the manual… a good example of this is a posting recently 'mouse down not good for mobile platform', take a read… the author, obviously new to liveCode just lashed out in his title, probably in frustration… There is even the 'odd' nut who treats the forum like his personal blog… switching between ranting about livecode's perceived short comings … "It don't work, me research tells me"… "It's no good for Android"… and his promises to abandon liveCode, saying, "I'm now deving ( whatever that means) with basic4Android"… but I laugh… as he keeps coming back…:-)

And what have liveCode introduced lately ?… the ability to develop for the iphone and Android platforms, again with the same simple philosophy of having one set of code that will allow your apps to run of the different mobile operating systems… I too was a little miffed that the Android development did not keep up with what was being offered for the iphone.. but hey, it takes time… and with the release of 5.5 you cannot deny that the two platforms more or less have parity… and I certainly don't think that Runrev have ventured down this road on a whim… far from it… it is the direction in which software development is moving…

So one set of code for Mac, Windows, Linux, iOS and Android… not bad, eh ?.. Oh, and I nearly forgot… why even think of php with the availability of .lc scripts ?

Not good enough !… No, it is more than good enough !… New to the platform ?… different to what you are used to ?… Give it a chance, if you have problems you will certainly get the answers you need, either here on the forum, or on the use-list… but please, don't run it down until you are more than a little 'au-fait' with the syntax and how to employ it…

Re: good enough?

Posted: Tue Mar 27, 2012 7:11 am
by berndg
Dixie wrote: ... Give it a chance, if you have problems you will certainly get the answers you need, either here on the forum, or on the use-list… but please, don't run it down until you are more than a little 'au-fait' with the syntax and how to employ it…
Fair point. I am investing time and money into giving LiveCode a chance.

This doesn't change my initial impression though, which is one of a lamentably immature product failing to deliver a great deal of its promises.

Re: good enough?

Posted: Tue Mar 27, 2012 9:21 am
by Mark
Hi berndg,

Probably, the best thing you can do is to write to support@runrev.com to tell them why you won't be a customer.

Kind regards,

Mark

Re: good enough?

Posted: Tue Mar 27, 2012 9:22 am
by bangkok
Dixie wrote:Not good enough !… No, it is more than good enough !… New to the platform ?… different to what you are used to ?… Give it a chance
I concur.

Look at what have been done in 2 years.

LiveCode is not static. It's moving forward. Like many (all ?) other software.

Let's take FileMaker Pro for instance. I started with version 5. Then 6, 7 (great improvement), 9, 10, 11... etc.

At each version, things were "missing". We were waiting for the next one. But hey, developpers need time to make things, right ?

I mean, who could pretend to have a perfect product, answering to every needs of every users, at one given moment ? To have a zero bug product ?

It doesn't make sense.

LC version 5.5 for instance gives -finally- a revamped text field object. They were talking about it since many years. Now it's done.

We should rejoice. I always rejoice.

2 years ago (or 3 ?) when they introduced Datagrids, i told myself "too complicated, i can't get my grip on"... now i use them a lot, and i love them. The release of the Server was a real revolution for me. But i don't care about iOS. But i do care about Android... Each of us can always find something to pick up in LC.

How will be LC in 2 years ? Better. Version 7 ? or 8 perhaps ? Which new features ?

That's the important point : LC must go forward. And it will (i hope !).

Re: good enough?

Posted: Tue Mar 27, 2012 5:56 pm
by jacque
berndg wrote:I am pretty new to LC (not new to programming), and enjoy it mostly because LC is different. What I don't enjoy is the immature nature of the runtime code, or engine.
Examples? I find very little I can't do with the engine.

Re: good enough?

Posted: Fri Mar 30, 2012 3:21 pm
by dunbarx
The xTalk paradigm, which resonates so well with many people here, just does not fit with others. Though I cannot see how anyone, and I mean anyone, would not see the miracle embodied in LiveCode, with some, it just does not. Those people need to return to ordinary procedural languages like C++, and Godspeed.

Everyone has their own comfort zone.

Most typical bashing and complaining smacks of frustration, as if a miracle was expected but failed to deliver; these are lost souls that either did not spend enough time to reach a "eureka" moment, or just aren't built that way.

Craig Newman

Re: good enough?

Posted: Sat Mar 31, 2012 10:52 am
by berndg
dunbarx wrote: Most typical bashing and complaining smacks of frustration, as if a miracle was expected but failed to deliver; these are lost souls that either did not spend enough time to reach a "eureka" moment, or just aren't built that way.
Not a miracle exactly, but it is true that expectations were raised high, and were not met. A few examples of things which I did not like - and your mileage may vary:

* Unhelpful error messages, no true strict compilation mode. There doesn't appear to be a method to detect calls to undefined methods, or incorrect calls, at compile time. Therefore, QA would need to execute a white box test where every code path has been traversed with all possible options - just in order to find what would be a compiler error in other languages. Not an acceptable basis for a quality product. (Edit) Just remembered the best term for what is missing is early binding(/Edit)

* Mediocre debugger. Very annoying, especially since debugging a scripted application can be more powerful, flexible, faster and richer, compared to debugging a traditionally compiled language. Features missing include conditional breakpoints, 'run to cursor,' 'set next statement,' etc.

* Runtime system unstable without apparent reason. I forget the exact sequence, but I observed effects like this: create a button and assigning an icon to it depends on the exact sequence of seemingly unrelated property assignments. Once I had it working (through trial and error, even after consultation with this forum), I added code that did nothing but get the imageData and put it straight back in again, and the button was grey again. This forum alone has many similar reports. It is true that I got it working in the end (and dare not touch it now), but the effects observed are clear evidence for the fact that something just isn't right in the engine.

* Bloated language. I like the simple beginnings of put x into y, but quickly the language became bloated. Almost every common word of the English language is a reserved keyword, and the grammar is not context sensitive. As a result, all my variables have to be called myValue or theColour or currentPosition, and gone is the natural language-like beauty. More so when you enter the realm of abstract things like XML: We're back with the ugly names common to all other development environments.

* Limited runtime kit. Common UI controls such as spin buttons, pane splitters or tree views appear absent (but I didn't research this thoroughly). Support for creating re-usable custom controls is practically non-existent. XML-support is a joke. DTD? Are you kidding me? No built-in Schema validator, no support for XPath queries - This is no XML support fit for life in the 21st century.

* revlets may work on a subset of the officially supported browser and platform combinations, with wind behind. Those that work also often crash, without a way to debug this. RR received crash reports but found them not enlightening. Some popular browsers and platforms not supported: No Linux, no Chrome, etc. iOS and Android native support is present, but those can't access a revlet-enriched web page. Who in their right mind would create a web based application with those limitations?

* Other aspects of professional development not supported / weakly supported / with unknown support levels. Those aspects include versioning, obfuscation or encryption of intellectual property

I thank you for reading this extract from my personal list of things which I don't like about LiveCode. For me, LiveCode is a nice play thing and an interesting experiment, but nothing more. I can only encourage all LiveCode enthusiasts to an open-minded review of the current state-of-the-art tools: Microsofts .NET platform, Adobe's AIR, Embarcadero's (formerly Borland's) tools. All of these play in a very different league indeed.

Re: good enough?

Posted: Sat Mar 31, 2012 10:52 pm
by jacque
Thanks, that gives me a better overview of your expectations. I agree much of that is missing. There are a few things in the list that LiveCode does support though, which you probably haven't noticed yet.

Conditional breakpoints are supported. Error messages can be deciphered (see the "errorDialog" entry in the dictionary for how it works, or use one of the plugins I can point you to if you like.) I'm not sure what "run to cursor" is, but you can run to the next breakpoint, and you can set those dynamically while debugging.

ImageData is a sort of specialty item that's intended for byte-level work. If the destination image conainer is not the exact same size as the source image, or if you change the bytes incorrectly, you'll get distortion. It sounds like that could have been the issue. But in general imageData isn't intended for simply moving image content; use the image container syntax for that ("put img 1 into img 2").

Support for custom controls is available as a feature of groups. Syntax was recently added to help with that.

Obfuscation and encryption of intellectual property is available by setting a password on the stack. Scripts and stack content are encrypted and scrambled when you do that, though of course the content (but not the scripts) will be viewable when the stack opens. When saved as a standalone app, nothing but screen is viewable. You can additionally prevent the stack from opening at all until a password is entered; that has to be scripted.

Some of your other points are quite valid. Revlets have lagged far behind, it's true. Tree views, spinners, etc. can be done but are not native objects. Pane splitters are very easy to script, but not native.

I can't really speak to the language-bloat comments. I've been at this so long it seems natural to me. I guess that part depends on what you're used to, and would be a subjective thing that no one could criticize.

I appreciate your write up though. It's helpful to see a newcomer's perspective. I hope RR will address some of this.