LiveCode 7 is shipping today. With it you can increase your app downloads and revenue by including the ability to localize your app into any language. Now you can work with Arabic and Chinese in your app just as easily as with English. The platform has also been reworked to create apps that are even more native. That means your apps look and perform better on all platforms.
You can read all about the benefits and features of LiveCode 7 here.
In this article I'm going to tell you a story. The story of a triumph. A triumph for our community. A triumph for crowd-funding. And a triumph for our engineering team. The story of 7.
It all started with our Kickstarter campaign last year. Our customers came together with the broader technology community to support our ambitious campaign. The goal was for everyone to be able to code. The campaign raised over $750,000, putting us at one of the top 100 Kickstarter campaigns of all time (out of nearly 200,000)!
Then the really hard work began.
The first part of the project, the core Kickstarter campaign goal, was to refactor the source code within our platform. To say that this was a daunting project is an understatement. We have over 500,000 lines of code on 6 platforms. Some of it is 20 years old, written by engineers who had long since moved on. Some of it is seriously lacking in comments. There are dependencies and interdependencies, many long forgotten but most vital. And everything needed to be changed in some way.
No wonder this was a project we had been putting off for years. No wonder this was a project we needed crowd-funding support to do. No wonder this was a project that has caused more sleepless nights than anything else we've ever done!
Yet in order to be able to ultimately deliver on the vision that everyone can create apps, this work had to be undertaken.
As a business leader I have always been highly skeptical about the idea that "old code isn't good code". Yes it may be tangled in places. But a lot of the apparent messiness is actually the result of long experience with using the features the code provides. That strange API call is there to support an older version of an operating system - and you can be sure someone is still using it. That odd bit in the middle of the function is there to fix a bug that was reported 3 years ago. Old code is functioning code, the sum of many years of built up knowledge and fixes.
Adding to my skepticism was the scale and unpredictability this task presented. This wasn't one of those software projects with a clear beginning, middle and end. Of course, we could track the % of the way through the code base. We were able to measure that accurately enough. But each section took an entirely different amount of time to refactor from the last. Some bits went faster than we expected. Other parts added months of engineering time to get right - even when we thought we were 90% of the way through the entire project. It seems to be a universal law that the parts that take longer than expected are always an order of magnitude bigger than the time you save when something goes faster. When you look through the history of software companies that have attempted to do this sort of thing, it is littered with expensive (and sometimes fatal) failures.
I knew all of this before starting this project. Our eyes were wide open. Nonetheless I came to the view that the project was indeed essential if we are to pull off our lofty vision. We have great ambitions for what our platform can be, for how far we can take combined simplicity, ease-of-use and plain English language programming to empower a new generation of rich app creation by anyone who is comfortable using a computer. The work we've done in designing what such a system should look like is incredible. With a 20 year old source base it simply wasn't going to be possible to pull all of those things off.
It is testament to the skill, persistence and organization of our engineering team that this refactoring project has drawn to successful close. After scaling our team up, and training new team members, over 10 man years of effort has ultimately been expended on this project. This has been the longest, largest and hardest project we have ever done as a company. I'd like to say a huge thank you to everyone on the team. Thank you for your incredible effort. Thanks for solving those tricky problems in the code base. Thanks for the long hours, the late nights and the consistent problem solving.
The Refactor Team: top row, Mark Waddingham, Ben Beaumont, Hanson Schmidt Cornelius, middle row, Fraser Gordon, Panagiotis Merakos, Sebastian Nouet, Elanor Buchanan, bottom row, Ali Lloyd, Ian MacPhail, Michael McCreary
I'd also like to say a huge, heartfelt thank-you to our community. Thank you for supporting us with the crowd-funding campaign. And thank you particularly for your long patience in bearing with us during this incredibly slow, tough and thoroughly disruptive project. I am delighted to be able to promise you we won't be doing another project like this again any time soon!
The primary goal of the 7 project was to produce a platform that works the same as before. So your existing LiveCode apps will run on the new platform smoothly and without major modifications. If you have an existing LiveCode app, I invite you to move to 7 as soon as possible. It represents the basis for the future of the platform and we will fairly rapidly be dropping support for the older branches in order to be able to move forward.
Beyond the refactor goal, the 7 refactoring project has enabled a number of much wanted feature benefits to be added to the platform. The international (Unicode) support sits alongside a brand new Mac Cocoa port, Linux GTK and 64-bit, new copy-on-write variables and dozens of other refinements long awaited by many. There are over 1000 bug fixes or minor feature enhancements. As I said earlier, we have worked on just about every single part of the code base.
LiveCode 7 has taken us one massive step forward towards delivering on our vision that everyone can create apps. It is there to serve as a solid foundation for everything else we need to do to make good on our overall vision. As anyone in the construction industry will tell you, once you get above the ground things run much easier. We've just dug some very big, deep foundations. That effort completed today means we're completed around 70% of the total effort against our Kickstarter campaign goals. The remainder that gets built on top will all be highly visible, tangible and above all delivered rapidly in a far more agile way. For all the high profile successes we've had in the last 18 months with crowd-funding and this project, I know that the next few months will be even more exciting!
So I invite you to go, download and enjoy LiveCode 7 today. Remember the community edition is free for creating your own open source software. If you're creating a commercial app, go and buy your license now as we're including a whole pack of goodies to celebrate the 7 launch. Then check back regularly over the next few months as we create the sizzle that delivers the remaining pieces we need to make good on our vision that everyone can create apps.