I’m very pleased today to introduce to you our brand new Feature Exchange platform. The primary goal of this exchange is to bring you the features you want in LiveCode when you want them. I’ll describe how the exchange works in a moment. First, a little context.
We’re now very much on the home stretch in relation to the previous crowdfunding campaigns. LiveCode 8, the first release that represents the outcome of what we’ve truly been aiming at with all this effort, is now about to go into the refinement phase. To that end, we just announced a Global Jam to help you to move your applications to LiveCode 8 and work with us in our quest to make 8 truly great for YOU. We’ll take the time we need to refine the 8 release and doing that properly is going to be critical to ensuring the experience is a delight. That point notwithstanding, from an effort perspective the road ahead is far smaller than the effort behind. We’re open source. The refactor is done (never again!). The first version of LiveCode Builder with widgets is shaping up very well. Cocoa is done. Resolution Independence is done. We have the first initial build of HTML5. The new multi-platform drag-drop browser widget will be going into an 8.0 DP build any day now. There are a handful of remaining stretch goals that we’ll mostly be taking care of over the 8.x series using our new LCB widget capabilities.
Like most software projects, it has all taken longer than we hoped. However, we know the 8 series is awesome and well worth the wait. Our goal now is to look for ways to maintain the momentum we’ve established. We have a larger team that is now experienced in developing our platform and you have a long list of things you’re clamoring for us to add to the platform. The world is moving forward rapidly and we need to ensure we keep up and continue to provide a platform that meets your needs. We are also determined to find ways to put as much as we possibly can – the vast majority of everything we do – dual licensed into the Community Open Source edition of LiveCode.
How it Works
Feature Exchange is an opportunity to make all this happen. It is a simple idea. We’ll post smaller development projects up for funding. Everything that gets funded through our public Feature Exchange will go into all editions. We’ve done crowdfunding in the past, but this is different in a few ways.
First of all, this is not for long term projects that involve refactoring and lead times well into the future. Instead, it is for projects that we can slot rapidly into our engineering schedule, starting within days or weeks of each campaign close (we’ll indicate lead times on each page). Secondly, each campaign will be short: just 7 days. That allows us to figure out what you want, plan quickly, schedule engineering, and get a good flow of activity going. Next, each page will be for a single feature. We’ll post details of what is included in each one and you can choose if you want to fund it. Finally, we’ll be aiming to create sustainability by making each feature a little profitable in its own right. Past crowdfunding campaigns have been about our long term vision and, while they raised a great deal, they have needed to be heavily supported and subsidized from other sources. Instead, with Feature Exchange, we’re aiming that for every hour we spend adding a feature, it will cover at a minimum another hour of time to be spent on the completion, refinement, and maintenance of current releases (at present, the 8 series and last few Kickstarter goals). Finally, we’re not going to be offering a long list of rewards. Instead you’ll get all the benefits of having the new feature and we’ll add your name to the credits whenever you back something.
We’ll propose features for the Exchange based on our engineering priorities and on the feedback we get from the community. In addition, any Business License customer can propose a feature to be added to the exchange right away by asking us for a quote and then agreeing to pledge 25% of the value of that feature. This is a major benefit, as it helps you to get the features you need in the platform on a timescale to suit you and at the minimum possible cost.
On occasion, we will run a private Feature Exchange to just our Indy and/or Business customers for a feature that will only go into those editions. In those cases, we will heavily subsidize the feature. And there will be cases where we build new features or additional functionality on top of existing features for Proprietary editions by funding the development exclusively ourselves internally. However, our goal remains to develop the majority of features for all editions, including Community, and Feature Exchange lets us do that far more often than we would be able to afford to otherwise. Remember, once it’s in the Open Source edition, it’s in it forever.
Feature Exchange is, of course, an experiment. In an Open Source environment, we’re looking at funding LiveCode in a slightly less traditional way with a mix of licensing and this kind of funding project. Provided we get a good percentage of our campaigns funded, then we can view it as a way to regularly, rapidly, and sustainably add the features you all want while spreading the cost and, thus, keeping it affordable for everyone. If it goes well, we’ll perhaps post a handful of features every few weeks or months (depending on project size, demand levels, and engineer availability). If not, we’ll have to go back and consider other avenues or scale back our operation slightly and lose some momentum.
First Features
The first four feature items are ready to fund now. We are funding the following:
Remote Debugger
A complete rework of the debugger to allow debugging a standalone application on any platform. For example, you’ll be able to deploy to your mobile device, then step through your scripts as you interact with it running. Want to set a breakpoint and debug those native iOS or Android device specific features that don’t run in the IDE? Remote debugging will make this easy.
While we’re in there, we’ll take the opportunity to clean up all the issues we know about in the current debugger, making it completely separate from your app and, thus, able to debug the various edge cases that it currently doesn’t work so well with. For example, the current debugger can adjust field or window focus, changing the behavior of some scripts. With remote debugging that will be a thing of the past.
We chose this feature because it’s one of the most frequently requested features and we think it will be a real boost to developer productivity across our entire community. For more details on what is included and to back this project, see the project page here.
64-Bit Mac Support
As time moves forward, the viability of 32-bit Mac applications is diminishing. Certain features are not available to 32-bit applications (such as MapKit), and third-party offerings are gradually removing support for that architecture (the CEF browser being the most notable). In order that LiveCode keep pace with Mac development, it is important that the engine be transitioned to 64-bit on Mac.
A 64-bit Mac version of LiveCode would have the following benefits:
Performance: we observed a 10-15% performance increase in the Linux engine after transitioning to 64-bit – particularly in graphics rendering.
Longevity: by removing antiquated APIs, we can ensure that the LiveCode engine will continue to function well as the Mac platform evolves.
Assurance: the Mac App Store periodically changes its submission requirements. By ensuring we are 64-bit compliant, it ensures that we can keep pace with any changes in policy.
Modernity: updating the multimedia APIs to use the newest ones available on Mac will ensure that this important aspect can continue to be supported well and completely.
Learn more and back this project here.
IPv6 Support
By adding support for IPv6 to the LiveCode engine, we future proof support for accessing the internet as well as ensuring LiveCode applications can be deployed in any location regardless of whether they have IPv4 based network infrastructure or IPv6 based network infrastructure.
Learn more and back this project here.
PostgreSQL SSL
PostgreSQL is a client-server RDBMS, which the LiveCode platform has long supported. However, whilst LiveCode’s MySQL driver allows the use of SSL to secure connections, this feature has never been added to the PostgreSQL driver. Being able to secure database connections is important to prevent snooping and man-in-the-middle attacks on data streams travelling between client and server.
Learn more and back this project here.
Benefits to Everyone
We hope you’ll back our first Feature Exchange features and that this will develop into a viable model for adding many of the things you want to all editions of LiveCode quickly and efficiently. It will also help us to extend our runway as we refine the final Kickstarter goals. We want Feature Exchange to be a big win for our community as a whole. With your support we can enable LiveCode to move forward faster, broadening even further the projects you can do with the platform, boosting your productivity, and attracting even more people to the platform and into our ecosystem as a whole.
Kind Regards,
Kevin Miller
7 comments
Join the conversationBruce Humphrey - September 21, 2015
How do we go about proposing additional feature projects? Format, content and detail recommendations would be helpful.
Heather Laine - September 22, 2015
We’re looking at adding an interface where you will be able to suggest and vote on features you’d like to see. Look out for this in the coming weeks.
Brahmanathaswami - September 21, 2015
How do we add a feature request?
Heather Laine - September 22, 2015
For now, maybe start a thread on the use-list? As I said above, we are intending to provide a way for you to suggest features in the future.
Amigacooke - September 22, 2015
Foolish me, I was expecting the KickStarter to have produced a 64 bit version of the OSX app. Having already ponied up for the KS and HTML this is beginning to get expensive.
Jay - September 29, 2015
Indeed. I thought 64-bit support of the Mac OS was a given.
Josh - September 23, 2015
I noticed in livecode 8, we can create a widget using c++, I will suggest as a first feature request to implement the ability for livecode engine to also accept coding in c++ just like Qt (in qt you can use both qt or c++). This I belive will expand the reach of the livecode platform beyond any limitation and immediately put it in the class of one of the worlds most powerful IDEs. At present it seems possible if I transform all my c++ codes to widget and just implement the interface in livecode. Direct implementation will remove the need to first create a widget.