
Last week, BlackBerry, a former Research in Motion, announced that it already had 100,000 applications in the BlackBerry 10 App World.
Although I can only applaud such an impressive number of applications that developers were able to ship to the store in such a short period of time before the US release of Z10, until recently, BlackBerry was in no hurry to talk about these applications.
And on Tuesday, she confirmed that about 20% of the applications in the BlackBerry 10 App World are essentially rewritten Android applications.
')
If you go back a bit into the past, in the first quarter of 2011, RIM finally confirmed what rumors had been around for more than a month: then the new PlayBook tablet, running on the same fundamental QNX OS as BlackBerry 10, will support Android applications, and also Adobe Air, HTML5 and native QNX applications in C / C ++.
A kind of "Android is better than Android", if I may say so.
The more I think about it, the more I feel a sense of déjà -vu.
In fact, this was 20 years ago. The vendor who last tried to do this was IBM with its OS / 2 2.0 operating system.
For me, this is like salt on the wound, and they will certainly criticize me, but since this battle between Microsoft and IBM has long been over, I will continue.
For the most part, in 1992, IBM, with its OS / 2, successfully managed to create "
DOS is better than DOS, and Windows is better than Windows ."
It was a full-fledged 32-bit OS, it could work with large amounts of memory, while DOS and Windows 3.0
could not . There was a preemptive multitasking, whereas in DOS and Windows 3.0 it was
not .
OS / 2 was able to protect native applications in separate memory areas, and DOS and Windows 3.0
did not know how .
It could also play DOS and Windows 3.0 applications in its own protected separate memory areas, which DOS and Windows also
could not .
It was the first PC operating system that came with Windows virtualization. It was incredibly ahead of its time.
DOS and Windows 3.0 applications worked so well on OS / 2 that it was very difficult for IBM to convince third-party developers to write
native applications for the OS / 2 Presentation Manager interface.
Yes, OS / 2 wasn’t smooth with Windows compatibility. There were problems with applications in Enhanced Mode and with some special types of drivers called VxD.
Over time, IBM in newer versions of OS / 2 solved most compatibility issues. But it was very difficult to keep up with the changes that Microsoft made. When Microsoft released Windows NT 3.1 in 1993, most of the benefits of OS / 2 were no longer perceived by the computer industry as exclusive.
Today, Windows NT can be recognized in Windows 8, Windows 7, and Windows XP, and Windows 2000 as well.
BlackBerry in its new mobile OS is in a very similar situation. As I wrote earlier, the implementation of QNX on BlackBerry equipment is extremely impressive, it is flexible and advanced.
And this is quite expected from such a mature embedded real-time system as QNX is. This contrasts brightly with iOS, Android, and even Windows 8 and Windows Phone 8, which are not real-time systems.
Moreover, I believe that in a number of architectural aspects, QNX as an operating system is superior to both iOS and Android. I tested the Z10 from AT & T for several weeks and found it an amusing device, with interesting features that set it apart from the two platforms mentioned, as well as from Windows Phone 8, which I also tested and found very interesting.
However, despite the real-time DNA in BlackBerry, there is a serious risk when you try to
tap into a competitor's ecosystem instead of
actively participating in it .
At first, I was hoping that, for compatibility with Android, the BlackBerry would take the path of virtualization instead of the native emulation layer with porting the native Dalvik VM, as she eventually did.
Personally, the perfect solution for BlackBerry 10 seems to me to be a full stack of Android 4.x inside a mobile hypervisor, such as OKL4 or VLX from Red Bend.
In this case, RIM would not have to “port” anything at all. Inside QNX, you could run a full-fledged copy of Android along with the full Linux kernel as a “guest” system. But this did not happen.
I do not want to say that such an approach would be completely devoid of risks. The hypervisor should be very much optimized for performance, and BlackBerry 10 users would expect Android applications to work as close to native. Otherwise, there is no particular benefit from compatibility mode.
For Android NDK applications to work, hypervisor-based virtualization must be the only effective way to achieve true binary compatibility. But since BlackBerry 10 just uses the Dalvik component from Android, it cannot play NDK applications. These applications need to be ported using the native QNX SDK to C / C ++.
It is worth noting that in the implementation of the Android 2.3.3 API in BlackBerry there are a number of other software limitations in addition to the NDK.
Regardless of the way Android is implemented in the new BlackBerry mobile OS, another question remains: will compatibility with Android have the same “cooling effect” on native development in C ++ and Adobe Air as it was in OS / 2 as a result of compatibility with Windows 3.0?
There is another potential problem, and quite serious.
There is always a chance that in the future Google will implement such architectural and code changes as part of the Android Open Project Project in Dalvik VM, which will destroy Dalvik's BlackBerry implementation and cause
serious compatibility problems with applications written for future versions of Android API.
In this case, the BlackBerry will need to constantly re-port Google Dalvik to QNX in order to keep up with all the changes. This may require substantial resources. In the same way, IBM had to constantly monitor OS / 2 compatibility with Windows.
Amazon's Kindle Fire Tablet also supports Android apps, and the company has its own app store. However, the Kindle Fire is actually an Android device, it runs on full-fledged AOSP and Linux code, while the BlackBerry 10 only
emulates Android, based on the QNX core with all its libraries.
Therefore, the Kindle Fire will never have compatibility issues with Android, provided that Amazon maintains a fresh AOSP stack.
However, the BlackBerry may even be
uninteresting , on which developers write applications, be it the Dalvik API for Android 2.3, native C ++ QNX, Adobe Air / Flash or Java.
Yes, there is still an SDK for the WebWorks platform. BlackBerry 10 is in the literal sense an API buffet from a variety of vendors. Perhaps, she has the richest choice of API among all mobile OS at the moment.
But the big question is, will they
all work well in BlackBerry 10. Will consumers like this approach and will developers want to make good enough native QNX programs that emphasize the advantages of the platform?
I mean, if you buy a phone to work with Android applications, what reasons do you have for not buying the very same
Samsung Galaxy S4 , which surpasses the Z10 in almost all hardware specifications?
The answer will only give time.