Externals API and Arrays

Are you developing an External using the LiveCode Externals SDK?

Moderators: FourthWorld, heatherlaine, Klaus, kevinmiller, robinmiller

Post Reply
n.allan
VIP Livecode Opensource Backer
VIP Livecode Opensource Backer
Posts: 153
Joined: Mon Mar 12, 2007 12:06 pm

Externals API and Arrays

Post by n.allan » Thu May 28, 2009 5:31 pm

Now that we have Arrays in runrev, does anyone know if they can be get and set with the externals SDK?

In other words are they REAL Arrays now that can be passed an array from an external or are they still "just a fancy list?"

Janschenkel
VIP Livecode Opensource Backer
VIP Livecode Opensource Backer
Posts: 977
Joined: Sat Apr 08, 2006 7:47 am
Location: Aalst, Belgium
Contact:

Post by Janschenkel » Thu May 28, 2009 8:03 pm

Nested arrays are sadly not supported at the moment, see entry 7933 in the Quality Center. They are aware of this limitation, and are planning to rectify it in one of the next releases.
Other than that, the arrays are still 'hashmaps' or 'dictionaries' or whatever you want to call them. But since Rev 3.0, we can nest them, rather than having to concatenate keys; one of the advantages is that we can now delete a nested array with a single line of script.

Jan Schenkel.
Last edited by Janschenkel on Thu Aug 13, 2009 5:20 am, edited 1 time in total.
Quartam Reports & PDF Library for LiveCode
www.quartam.com

DavidBurleigh
Posts: 19
Joined: Sun Apr 05, 2009 9:27 am

Nested arrays

Post by DavidBurleigh » Thu Aug 13, 2009 5:11 am

can you believe this. I have 2.9 and it doesn't support nested arrays. This product has been out for over 10 years - they support all kinds of stupid stuff like video, but they don't have the absolute basics; it's unbelievable.

what kind of moron builds a development system and doesn't immediately understand that nesting arrays is a necessity for an enterprise level application.

As powerful as this software is, it sure is lacking in A LOT of areas - especially in the documentation. I've been told that they have an online dictionary with code snippets that is only available to 3.5 and above. I love the way they screw the people who refuse to upgrade to a higher piece of shit, than living with the piece of shit they have now, until they are convinced it's worth spending the money on the upgrade. This Miller guy apparently knows nothing about marketing or software development; and I don't care how rich or smart he thinks he is, there are just too many fundamental problems with this software for it to be a real product to compete with the big boys. He's too bent on adding new features instead of fixing the stuff he has now - sounds like Microshit's business model.

Janschenkel
VIP Livecode Opensource Backer
VIP Livecode Opensource Backer
Posts: 977
Joined: Sat Apr 08, 2006 7:47 am
Location: Aalst, Belgium
Contact:

Post by Janschenkel » Thu Aug 13, 2009 6:02 am

Take a deep breath, David - while I understand your frustration, you have to realise the sad economic reality that software development has to cope with: constant pressure to not just refine your product but seriously extend and sometimes even completely overhaul it every couple of years.

When you have a small team, you can't work the miracles of a multi-national corporation with a few billion dollars in its coffers. In my opinion, RunRev manages to churn out quite a few additions with each version while tackling a good number of reported issues.

Always check before you buy, that the software does everything you need it to do. And be prepared to shell out for upgrades in order to get new features. RunRev doesn't have an alternate source of income to sponsor free lifetime upgrades for its products.

In the case of nested arrays, people got by just fine for years using delimited keys (think: "1234,FirstName" as a concatenation of the sequence number and the name of the column) and a few helper handlers for maintaining the array.

And think about it, looking at Revolution's ancestry: Mighty Apple's HyperCard didn't even have arrays at all. In fact, Revolution has a lot of features that HyperCard never had - colors, database access, socket communication, URL library, graphic/image/scrollbar controls, etc.

Naturally, there are things I don't like about their strategy either: rather than steaming ahead with one release every six months, I wish they'd provide new builds for the current version every month, cleaning up reported issues.

The company I work for maintains 3 branches for every product: the development branch (for future releases), the current structural branch (for functional updates) and the previous functional branch (for bugfixes). Which is no small feat with a development team of 20 and 9 products in the portfolio.

This means if we're fixing a bug, we have to do it three times, once for each branch (8.4.1, 8.5, 9.0); developing a new feature means we have to do it in two versions (8.5, 9.0) and sometimes figure out different solutions depending on the branch.

Under such circumstances, the simplicity of the forward-only releases will save RunRev a lot of money that they can invest in development of features as well as fixes. The only reason the company I work for, can afford to maintain up to 5 branches for some products (maintenance mode for 6.x and 7.x) is that customers pay us maintenace fees.

Sad as it is, it always comes back to money: pay the yearly update fee (or software assurance pack, whatever you want to call it) and you ensure that your supplier has a regular income, in return for which you get new features as well as fixes.

Jan Schenkel.
Quartam Reports & PDF Library for LiveCode
www.quartam.com

FourthWorld
VIP Livecode Opensource Backer
VIP Livecode Opensource Backer
Posts: 9837
Joined: Sat Apr 08, 2006 7:05 am
Location: Los Angeles
Contact:

Re: Nested arrays

Post by FourthWorld » Thu Aug 13, 2009 5:10 pm

DavidBurleigh wrote:can you believe this. I have 2.9 and it doesn't support nested arrays. This product has been out for over 10 years - they support all kinds of stupid stuff like video, but they don't have the absolute basics; it's unbelievable.
If you need video it's not hard to believe. ;)

As Jan noted, working around nested arrays hasn't been difficult for many of us shipping commercial products with Rev. But if you need video you need video, and about half the products we've shipped have been very video-intensive.

v2.9 was a fine version in its day, but that day was a couple years ago. It's not uncommon for software vendors to add new features at least annually, and the nested arrays you're looking for have been available for more than a year. Like any other publisher RunRev charges for upgrades but their upgrade fees are at least on par with industry norms, if not slightly better (compare to Adobe, for example).

And as you requested, in between v2.9 and 3.5 was 3.0 in which bug fixes were a major focus. They revamped not only significant portions of the code base for v3.0, but also their bug-tracking and testing tools and methods, with very strong results.

Sure, like all software there are still bugs in the code base, but given that Rev is far more akin to a virtual machine than any consumer app it may be more fair to compare Rev's bug count to OSes, a metric which strongly favors Rev. Suffice to say that v3.0 forward have been very stable and enjoyable to work with.

You can try out the current version for free. Check it out and see if you feel it's worth the upgrade fee.
As powerful as this software is, it sure is lacking in A LOT of areas - especially in the documentation.
I hear this often with many products, and while it's often a trade-off for publishers in terms of ROI I consider the desire for better documentation and other learning resource quite valid.

I would encourage you to keep posting your questions here, and if you have time to note how you tried to find the answer in the docs and where it came up short.

Writing good docs is a mysterious art, part cognitive psychology and part prognostication. All companies fail at it to varying degrees (Adobe makes a good example here too). But I feel it's critical for any company to take their docs seriously, and with your assistance there's much to be learned about how the mind of the new user works.
This Miller guy apparently knows nothing about marketing or software development
Software publishers large and small meet with unlimited advice, and it's understandably difficult to separate the wheat from the chaff. In such an environment few things influence as effectively as leading by example. Building a software company that's self-evidently more successful will prompt them, and a good many others, to want to learn how it was done. With such success influencing RunRev will be the least interesting thing that will happen.

There are at least a million software categories waiting to be defined; unlimited opportunities surround us.

Continued success -
Richard Gaskin
LiveCode development, training, and consulting services: Fourth World Systems
LiveCode Group on Facebook
LiveCode Group on LinkedIn

Post Reply

Return to “Building Externals”