sadarahu wrote:I really wanted to like LC, but using it is like going against the stream. I wonder why LC has to be so different from the rest of the world ?
If LiveCode were just like some other language, why would anyone bother to undertake the expense of making it? It would be far simpler to just use the thing it would be copying. Never build what you can buy.
LiveCode exists
because it's different. It does indeed require an uncommon conceptualization and workflow, and in exchange it delivers uncommon productivity for a wide range of application development needs.
Just as an example: FORMS - in my opinion - have nothing to do with (what I called) forms. They are grids (or tables), so why some stupid designer decided to call it forms.
As the others here have noted, LiveCode has no object it calls a "form", and not surprisingly it refers to its DataGrid object as a "DataGrid".
The word "Form" doesn't appear anywhere in the IDE's Tools palette or menus from which objects are created, and is used only once in the IDE's Inspector as one of the two
styles the DataGrid
object supports, the other being "List". Both words seem reasonably well chosen to distinguish each style from the other, as the "Form" style of a DataGrid object allows each cell to contain an arbitrary layout of fields, buttons, and other controls, much as one would expect with a "form" in more common tools like VisualBasic.
To be honest I've nver seen something so confusing in the development environment. I was looking for buttons, fields, dropdown lists, radio buttons, etc. but all I find is refference to grid.
In every shipping version of LiveCode, to find buttons, fields, and other objects you need only look a few pixels away from where you found the DataGrid: in the Tools palette the DataGrid is the sixth icon down on the right side, and all of the icons surrounding it allow you to create the other objects you're looking for.
If the meaning of those icons is unclear you can hover the mouse over them briefly and a descriptive tooltip will appear.
You can also create new objects by choosing the descriptive label of an object type from the Objects->New Control menu.
To learn about the range of objects LiveCode offers and the messages and properties you can use with them, the Dictionary has a set of filters in its left pane for that.
The whole concept of grid/form seems to be insane and out of common sense. It is like pointing at car and calling it "bicycle".
Another metaphor might be to decide you want to test drive a car, and then climb into the back seat and express disappointment that the car is poorly designed because you can't find the steering wheel there. If the car's design is adventurous enough to use gull wing doors and you're in a rush to get in such a mistake may be understandable; LiveCode is very adventurous.
Every toolkit and language is different because it wouldn't be worth anyone's time to merely copy something that already exists. There are hundreds of great languages, each requiring a bit of a learning curve, and for developers experienced with something else each new language they pick up will also require an
unlearning curve. This is natural and to be expected, and LiveCode is no exception to the dynamic that occurs whenever we encounter something new to us.
If you've decided in advance that any language will be useful to you only to the degree that it's like another language, you'll save much time and frustration just using the one you already enjoy. Don't use Clojure if you want to write C++; Haskell is not without value just because it has almost nothing in common with Lua.
But if you're curious about learning what LiveCode may be able to do for you, the folks here can be enormously helpful in identifying how it's different from the languages you may be accustomed to, and how to get the most out of it.