Welcome!

Java IoT Authors: Liz McMillan, Roger Strukhoff, Elizabeth White, Scott Allen, Kevin Benedict

Related Topics: IBM Cloud, Java IoT, Release Management

IBM Cloud: Blog Post

Java vs C++? Really?

This is only part of the question

The question that is often posed in one rhetorical flourish or another is this: Which is better (faster, more efficient, blah blah blah...) Java or C++? The question that is really not being asked is: for what? Selecting a programming language is not like selecting a dinner suit; you are not going to be asking the question that frequently. In fact, this question is more like deciding on a business plan rather than simply selecting a tool from the tool box.

The reality is that the only people that would really ask this question are those that:

  1. Are just at the beginning of planning a software effort that will become the basis of a business or business group that has yet to be established.
  2. Have a full grasp of and can support apps made with either language
  3. Are writers of articles or blogs
  4. Have a burning desire to vindicate their own personal preference.

If you are a business and you have a software project that is just starting, there are a number of questions that will be asked before deciding on a programming language. In fact, I am about 110% certain that the question of which programming language to use almost never comes up. Why? Because business managers are going to use the language that their staff knows the best and that the company can best maintain. The only time it would even come into question is if there is some deep need that only a particular language can fulfill. For example: if you needed detailed interaction with the native operating system or hardware you would probably want to use C/C++. If, instead, you needed software that managed a lot of user interactive data with a short lifespan and the runtime environment was ambiguous, you may choose Java.

I can tell you from experience that software decisions become business culture in every business that is serious about the use of computers. If the business decided in the past that C/C++ was the way to go I can assure you that they will not ask that question again unless their current staff cannot produce a satisfactory product for the currently proposed project. It really doesn't matter if one is n milliseconds faster during this operation or that. What matters is using the staff on hand to produce, test and maintain the product.

In every comparison I've seen, the question comes down to performance. but we are at  the point of comparing milliseconds and thus we are in realm of the silly comparisons for most applications. That level of performance really only matters when there are no other performance bottlenecks and where the difference would actually be perceptible (i.e., a 3d interactive adventure game or crunching huge amounts of scientific data). C/C++ was the first programming language I learned but I have been using Java since it became available. The performance comparisons started almost immediately...and it was ridiculous. Java was not originally meant to take over the computing world. It was meant to provide a more feature-rich internet experience. As a web tool, it was also intended to be easy. "Easy" means squishing all the hard stuff into automatic function or succinct APIs. Clearly, Java has come a long way since then and is used for much more. Its platform agnosticism has enabled rapid development of software for all kinds of hardware, leaving (most of) the low-level headaches for the JVM writers. What has actually happened is that Java was chosen for all kinds of good reasons regardless of performance (which was never comparable) and the JVM writers and hardware technology have made the performance discussion effectively irrelevant in most cases.

One part of the comparison debate that has always troubled me was that C/C++ and Java are not equal. C/C++ is a programming language with a rudimentary API (the C Runtime). The operating systems are not designed to accommodate the language and most of the feature-rich class libraries are third-party offerings. Java is more than just the language. It is the common platform (JVM) and it is the enormous class library that simplifies some rather complex low-level tasks, like socket management or stream IO.

The strength (and arguably a weakness) of C/C++ is that it is so fundamental that it is extremely versatile. C/C++ makes relatively few assumptions about how the software will be ultimately be constructed. Ultimately, C/C++ will be compiled to run as close to te machine as the machine allows. Java has many assumptions about the code construction. In fact, it mandates quite a bit. If you don't understand the Java way you are going to have a hard time. Therefore, Java has less flexibility overall. However, the Java way tends to be a good way and although certain architectural decisions are not negotiable, it usually provides a good way to get just about anything you need done and done in a pretty good way. Between that and the JVM specification, Java provides a consistent and clean way of writing software for multiple platforms and with a rotating pool of developers.

If it sounds like I am not making a clear comparison it is because I am not. I don't think that it is an apples-to-apples comparison. In my personal projects, I carefully consider which language I use, whether it will be C/C++, Java or even PHP for that matter. As with anything, I think about where I want to go and then determine how I want to get there. If you follow the C++ road to where it naturally takes you it is a different place than where Java naturally takes you. Sure they can overlap and sure you ride Java or C++ anywhere, but why? Well, in a business environment the whys are plentiful. As a technical lead or manager I am going to think more about getting it done for the least cost and with the fewest future maintenance problems. I am going to use my existing staff and make the most of their expertise. I am not going to create a new management division of development, design, test, build and support for a few milliseconds unless I absolutely have to. And really, unless I am in the business of writing wholly custom software for many different customers with completely different needs, I am most likely not going to be creating new software that departs all that radically from products I have already produced.

As fun as entertaining comparison discussions between C/C++ and Java are (obviously fun enough to inspire me to write this) they are really not practical except under the most unusual circumstances. That decision is made by the inventor of an idea that was probably already inspired during the use of one of the two in the first place. Businesses may consider the choice at the very beginning but as the business culture grows around its offerings the discussion becomes less and less relevant. You may choose the tools that best suit that initial design or outcome but after that, the tools tend to dictate where you go from there, whether it be who you hire or what new feature you add or even what markets you seek. However, as a musing of fancy for journal readers it is most valuable.

More Stories By Scott Quint

Scott Quint has been at IBM since 1996. He's been a developer, Lead Engineer, Chief Engineer, Quality Assurance Lead and Designer, Senior Consultant and Project Manager. Most recently Scott was a Lead Engineer for WebSphere Virtual Enterprise and is now a Cloud Computing Technology Evangelist.

Comments (1) View Comments

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


Most Recent Comments
kvorak 02/05/10 03:47:00 PM EST

Finally... somebody agrees. The reason people can't answer this question objectively is because it's the WRONG QUESTION, lol. Well said.

@ThingsExpo Stories
In his session at @ThingsExpo, Kausik Sridharabalan, founder and CTO of Pulzze Systems, Inc., will focus on key challenges in building an Internet of Things solution infrastructure. He will shed light on efficient ways of defining interactions within IoT solutions, leading to cost and time reduction. He will also introduce ways to handle data and how one can develop IoT solutions that are lean, flexible and configurable, thus making IoT infrastructure agile and scalable.
SYS-CON Events announced today that Numerex Corp, a leading provider of managed enterprise solutions enabling the Internet of Things (IoT), will exhibit at the 19th International Cloud Expo | @ThingsExpo, which will take place on November 1–3, 2016, at the Santa Clara Convention Center in Santa Clara, CA. Numerex Corp. (NASDAQ:NMRX) is a leading provider of managed enterprise solutions enabling the Internet of Things (IoT). The Company's solutions produce new revenue streams or create operating...
In his general session at 18th Cloud Expo, Lee Atchison, Principal Cloud Architect and Advocate at New Relic, discussed cloud as a ‘better data center’ and how it adds new capacity (faster) and improves application availability (redundancy). The cloud is a ‘Dynamic Tool for Dynamic Apps’ and resource allocation is an integral part of your application architecture, so use only the resources you need and allocate /de-allocate resources on the fly.
Fifty billion connected devices and still no winning protocols standards. HTTP, WebSockets, MQTT, and CoAP seem to be leading in the IoT protocol race at the moment but many more protocols are getting introduced on a regular basis. Each protocol has its pros and cons depending on the nature of the communications. Does there really need to be only one protocol to rule them all? Of course not. In his session at @ThingsExpo, Chris Matthieu, co-founder and CTO of Octoblu, walk you through how Oct...
IoT is fundamentally transforming the auto industry, turning the vehicle into a hub for connected services, including safety, infotainment and usage-based insurance. Auto manufacturers – and businesses across all verticals – have built an entire ecosystem around the Connected Car, creating new customer touch points and revenue streams. In his session at @ThingsExpo, Macario Namie, Head of IoT Strategy at Cisco Jasper, will share real-world examples of how IoT transforms the car from a static p...
Web Real-Time Communication APIs have quickly revolutionized what browsers are capable of. In addition to video and audio streams, we can now bi-directionally send arbitrary data over WebRTC's PeerConnection Data Channels. With the advent of Progressive Web Apps and new hardware APIs such as WebBluetooh and WebUSB, we can finally enable users to stitch together the Internet of Things directly from their browsers while communicating privately and securely in a decentralized way.
"My role is working with customers, helping them go through this digital transformation. I spend a lot of time talking to banks, big industries, manufacturers working through how they are integrating and transforming their IT platforms and moving them forward," explained William Morrish, General Manager Product Sales at Interoute, in this SYS-CON.tv interview at 18th Cloud Expo, held June 7-9, 2016, at the Javits Center in New York City, NY.
The Internet of Things can drive efficiency for airlines and airports. In their session at @ThingsExpo, Shyam Varan Nath, Principal Architect with GE, and Sudip Majumder, senior director of development at Oracle, will discuss the technical details of the connected airline baggage and related social media solutions. These IoT applications will enhance travelers' journey experience and drive efficiency for the airlines and the airports. The session will include a working demo and a technical d...
Why do your mobile transformations need to happen today? Mobile is the strategy that enterprise transformation centers on to drive customer engagement. In his general session at @ThingsExpo, Roger Woods, Director, Mobile Product & Strategy – Adobe Marketing Cloud, covered key IoT and mobile trends that are forcing mobile transformation, key components of a solid mobile strategy and explored how brands are effectively driving mobile change throughout the enterprise.
Developing software for the Internet of Things (IoT) comes with its own set of challenges. Security, privacy, and unified standards are a few key issues. In addition, each IoT product is comprised of (at least) three separate application components: the software embedded in the device, the back-end service, and the mobile application for the end user’s controls. Each component is developed by a different team, using different technologies and practices, and deployed to a different stack/target –...
Identity is in everything and customers are looking to their providers to ensure the security of their identities, transactions and data. With the increased reliance on cloud-based services, service providers must build security and trust into their offerings, adding value to customers and improving the user experience. Making identity, security and privacy easy for customers provides a unique advantage over the competition.
SYS-CON Events announced today that Commvault, a global leader in enterprise data protection and information management, has been named “Bronze Sponsor” of SYS-CON's 19th International Cloud Expo, which will take place on November 1–3, 2016, at the Santa Clara Convention Center in Santa Clara, CA. Commvault is a leading provider of data protection and information management solutions, helping companies worldwide activate their data to drive more value and business insight and to transform moder...
Personalization has long been the holy grail of marketing. Simply stated, communicate the most relevant offer to the right person and you will increase sales. To achieve this, you must understand the individual. Consequently, digital marketers developed many ways to gather and leverage customer information to deliver targeted experiences. In his session at @ThingsExpo, Lou Casal, Founder and Principal Consultant at Practicala, discussed how the Internet of Things (IoT) has accelerated our abil...
SYS-CON Events has announced today that Roger Strukhoff has been named conference chair of Cloud Expo and @ThingsExpo 2016 Silicon Valley. The 19th Cloud Expo and 6th @ThingsExpo will take place on November 1-3, 2016, at the Santa Clara Convention Center in Santa Clara, CA. "The Internet of Things brings trillions of dollars of opportunity to developers and enterprise IT, no matter how you measure it," stated Roger Strukhoff. "More importantly, it leverages the power of devices and the Interne...
Digital innovation is the next big wave of business transformation based on digital technologies of which IoT and Big Data are key components, For example: Business boundary innovation is a challenge to excavate third-party business value using IoT and BigData, like Nest Business structure innovation may propose re-building business structure from scratch, as Uber does in the taxicab industry The social model innovation is also a big challenge to the new social architecture with the design fr...
So, you bought into the current machine learning craze and went on to collect millions/billions of records from this promising new data source. Now, what do you do with them? Too often, the abundance of data quickly turns into an abundance of problems. How do you extract that "magic essence" from your data without falling into the common pitfalls? In her session at @ThingsExpo, Natalia Ponomareva, Software Engineer at Google, provided tips on how to be successful in large scale machine learning...
If you had a chance to enter on the ground level of the largest e-commerce market in the world – would you? China is the world’s most populated country with the second largest economy and the world’s fastest growing market. It is estimated that by 2018 the Chinese market will be reaching over $30 billion in gaming revenue alone. Admittedly for a foreign company, doing business in China can be challenging. Often changing laws, administrative regulations and the often inscrutable Chinese Interne...
Data is an unusual currency; it is not restricted by the same transactional limitations as money or people. In fact, the more that you leverage your data across multiple business use cases, the more valuable it becomes to the organization. And the same can be said about the organization’s analytics. In his session at 19th Cloud Expo, Bill Schmarzo, CTO for the Big Data Practice at EMC, will introduce a methodology for capturing, enriching and sharing data (and analytics) across the organizati...
SYS-CON Events announced today that Bsquare has been named “Silver Sponsor” of SYS-CON's @ThingsExpo, which will take place on November 1–3, 2016, at the Santa Clara Convention Center in Santa Clara, CA. For more than two decades, Bsquare has helped its customers extract business value from a broad array of physical assets by making them intelligent, connecting them, and using the data they generate to optimize business processes.
Internet of @ThingsExpo has announced today that Chris Matthieu has been named tech chair of Internet of @ThingsExpo 2016 Silicon Valley. The 6thInternet of @ThingsExpo will take place on November 1–3, 2016, at the Santa Clara Convention Center in Santa Clara, CA.