Recent survey data suggests that Java is gaining strength for development of embedded IoT applications. This data can be viewed by looking at the IoT industry and survey responses from the perspective of:

The industry at large

Java users working or not working on IoT applications/devices

C++ users working or not working on IoT applications/devices

These results are presented in Table I. This information makes clear is that a large percentage of Java developers are actually working on the IoT, partnering with IoT developments, or planning to work on or partner for IoT efforts.

Are You Working on IoT Applications or Devices? Industry Java C++ Currently working on IoT applications 11.4% 21.3% 13.7% Currently working on IoT devices 22.1% 31.3% 26.6% Currently partnering with other companies on IoT applications 2.0% 2.5% 2.5% Currently partnering with other companies on IoT devices 2.8% 10.0% 4.0% Plan to work on or partner with others on IoT applications/devices 15.5% 10.0% 11.5% Plan to work on or partner in the next 12 months 8.0% 7.5% 9.0% Not working/partnering on and have no plans to work/partner 38.2% 17.5% 32.7%

Table 1. Developers working on IoT applications/devices.

As is true with most compute platforms, intelligent gateways, a.k.a. M2M gateways, are moving to a 64-bit multi-core architecture to provide more compute capabilities. So it makes sense to look at how Java and C++ IoT developments compare for 64-bit use. Looking at the EMF 2016 data, it appears clear that Java and C++ are used equally herein. Table 2 presents a comparison of development costs between Java and C++ for 64-bit IoT applications.

2016 Java C++ For 64 bit developments Development time in Months 12.7 12.2 % behind schedule 36.9% 35.4% Months behind 4.6 4.6 SW Developers/proj 6.4 8.2 Average Developer months/project 81.3 100.0 Developer months lost to schedule 10.9 13.4 Total developer months/ project 92.1 113.4 At $10,000/developer month Average developer cost/project $812,800 $1,000,400 Average cost to delay $108,634 $133,529 Total developer cost/project $871,780 $1,133,929 Java advantage 30%

Table 2. Comparative average cost of 64-bit IoT developments.

What Table 2 doesn’t consider is whether the design was compromised (by removing features and capabilities) to meet a target window of opportunity. Such a design might appear to be cost effective, yet fail to reach its intended capabilities.

The 2016 survey and associated data address this possibility. EMF calls this “design outcomes,” in which developers indicate how close their final design outcome compares with their pre-design expectation. Developers are given choices from within 10% to within 50% with 10% intervals, and a final data point “not within 50%.”

I believe that final design outcomes within 30% of pre-design expectations are considered to be good design outcomes. Those completed within 10% of pre-design expectations are considered to be excellent design outcomes. Table 3 presents the percentage of design completed within 30% of pre-design expectations.

Designs completed within 10% of pre-design expectation Java C++ Performance 56.3% 53.7% Systems Functionality 62.5% 48.1% Designs completed within 30% of pre-design expectation Java C++ Performance 87.6% 79.7% Systems Functionality 86.9% 83.3%

Table 3: Design outcome comparisons for 64-bit IoT developments.

On examination of Tables 2 and 3, it’s clear that for 64-bit developments, Java is not only less costly but provides better design outcomes. In summary:

Intelligent gateways are moving to 64-bit architectures to provide more compute capabilities.

Successful real-time deployments of Java, as seen with PTC Perc for demanding applications by Tier I OEMs, demonstrate that real-time Java is here today and fully functional, overcoming past failures to meet expectations by major vendors.

When comparing similar IoT developments between Java developments and those using C++, Java is shown to have a lower total cost of development and significantly better design outcomes.

Java is the most popular non-embedded programming language.

C++ developers are expensive; the knowledge base needed to be a successful C++ developer is significantly higher than for Java developers.

CFOs and financially responsible managers should consider these comparable costs in addition to the lower cost of comparable Java developments.

Whereas traditional Java code will work for most intelligent gateways, many will require a deterministic real-time response.

From a cost control basis, would it not make sense to start any IoT embedded application with a proven real-time Java solution?

Jerry Krasner, Ph.D., MBA is Vice President of Embedded Market Forecasters and its parent company, American Technology International. A recognized authority with over 30 years of embedded industry experience, Dr. Krasner has extensive clinical research and medical industrial experience, including the successful filing of over twenty 510k submissions. He earned BSEE and MSEE degrees from Washington University, a Ph.D. in Medical Physiology/Biophysics from Boston University and an MBA from Nichols College. He has been a visiting professor at the Universidad de Las Palmas (Spain) where he was recognized for his work in neurosciences and computer technology.

Dr. Jerry Krasner, Ph.D., MBA, Embedded Market Forecasters