At one, rather over-simplified, level, New Development is about building mobile apps: get them out quickly, sell them cheap, throw them away and build another if they don't work. I know of a games manufacturer whose test methodology consists of throwing a new game at a crowd of students for an afternoon. On one occasion, by chance, this resulted in a game being sold that was unplayable by anyone left-handed... A disaster? Not really, the game sold for 50p or so - so a lot of left-handed people who bought it simply didn't care much that it didn't work - and no-one in that space remembers who built a game anyway. No doubt that company will smarten its ideas up (if it can - which is another discussion) when it comes up with another "Angry Birds".
However, new development is also being used by enterprises coping with the BYOD movement, trying to provide mobile access to company systems. Here, whether the app works impacts the business; and issues of maintainability, security, complexity and governance matter.
Organisations can no longer expect to dictate to staff, let along customers, what mobile devices they can use. On the other hand, there are advantages to writing in native code for iOS, Android etc (improved application functionality and quality of user experience; performance; security) if you can overcome the major issue, if you use the vendor's device SDK, of needing a different code-base for every kind of device,. Of course, you can write to a virtualised platform - for example, Java Xamarin, Mono etc. - if you can manage the overheads of an extra layer of code and, possibly, the security implications on running on what is a very large target for malware developers (remember the recent Java exploits).
Embarcadero now claims to have come up with a third choice. It can provide developers with as agile and programmer-friendly rapid-prototyping development environment as offered by scripting languages etc (a claim lent credence by its experience with Delphi/C++, originally from Borland); yet deliver genuinely native ARM code for several different platforms from a single code-base.
On a first look, I'm rather impressed; although I might take pedantic issue with the "multi-platform" claim for what you can buy today, at least. Embarcadero RAD Studio XE4 currently supports Windows and Mac OSX desktops and iOS mobile, with Android to follow shortly. That's certainly several platforms supported natively from a single code base, so "multi-platform" is justified technically even for mobile, once Android support arrives; but I'd think that an enterprise might expect "multi-platform" to include something approaching everything out there; i.e. including Symbian and BlackBerry too. An enterprise buying a mobile development platform might well expect it to support everything from a single code-base - even stuff that is non-strategic or even obsolete or only popular in an odd corner of the world, but which it isn't expedient to replace just now. I remember the cries of pain from enterprises when Microsoft dropped old versions of Visual Basic from its distribution CDs, because the overheads of managing change across the world mean that many enterprises, even those recognising the benefits of the modernised VB, still had to maintain old technology well past its sell-by date.
Nevertheless, I'm not selling this stuff and I have to assume that those who are, do understand their market - and will respond to customer feedback if or when they get it. If you are trying to develop for Android and iOS from a single code-base (which does make a lot of sense), Emabarcadero says that RAD Studio provides a similar or better environment to that of other C++ or Objective C coding environments and also provides enterprise-class database connectivity (and Embarcadero does understand data structures). However, because of its generation of truly native ARM code, Embarcadero also claims that it offers:
- Higher performance for number crunching applications;
- Lower latency, with a responsive native user experience and no garbage collection issues;
- The ability to talk directly to APIs, peripherals, and gadgets (which has advantages; but so does virtualising hardware);
- The placing of the developer in control of app performance (although that's a two-edged sword, as some developers don't really understand the need to optimise only real bottlenecks);
- A smaller footprint, which is ideal for small fixed size devices;
- Native security with a reduced risk of generic 3rd party attacks (although that's only part of the application security issue, of course).
So, mobile developers now have another cross-platform choice (I think trying to maintain several native code-bases, one per platform, is a bit of a dead-end), which delivers native code; to add to scripted and VM approaches such as Java, HTML5, Appcelerator, Xamarin, Mono and so on. I think Embarcadero RAD Studio XE4 merits careful consideration by enterprise mobile developers (and it is probably also useful for Windows and OSX desktop developers, of course).