Click here to close now.

Welcome!

Cloud Expo Authors: Jim Liddle, Andy Jonak, Pat Romanski, Lori MacVittie, ScriptRock Blog

Related Topics: Websphere, Java, Open Web

Websphere: 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.

@CloudExpo Stories
The speed of software changes in growing and large scale rapid-paced DevOps environments presents a challenge for continuous testing. Many organizations struggle to get this right. Practices that work for small scale continuous testing may not be sufficient as the requirements grow. In his session at DevOps Summit, Marc Hornbeek, Sr. Solutions Architect of DevOps continuous test solutions at Spirent Communications, will explain the best practices of continuous testing at high scale, which is r...
Modern Systems announced completion of a successful project with its new Rapid Program Modernization (eavRPMa"c) software. The eavRPMa"c technology architecturally transforms legacy applications, enabling faster feature development and reducing time-to-market for critical software updates. Working with Modern Systems, the University of California at Santa Barbara (UCSB) leveraged eavRPMa"c to transform its Student Information System from Software AG's Natural syntax to a modern application lev...
Plutora provides enterprise release management and test environment SaaS solutions to clients in North America, Europe and Asia Pacific. Leading companies across a variety of industries, including financial services, telecommunications, retail, pharmaceutical and media, rely on Plutora's SaaS solutions to orchestrate releases and environments faster and with integrity. Products include Plutora Release Manager, Plutora Test Environment Manager and Plutora Deployment Manager.
The world's leading Cloud event, Cloud Expo has launched Microservices Journal on the SYS-CON.com portal, featuring over 19,000 original articles, news stories, features, and blog entries. DevOps Journal is focused on this critical enterprise IT topic in the world of cloud computing. Microservices Journal offers top articles, news stories, and blog posts from the world's well-known experts and guarantees better exposure for its authors than any other publication. Follow new article posts on T...
Hosted PaaS providers have given independent developers and startups huge advantages in efficiency and reduced time-to-market over their more process-bound counterparts in enterprises. Software frameworks are now available that allow enterprise IT departments to provide these same advantages for developers in their own organization. In his workshop session at DevOps Summit, Troy Topnik, ActiveState’s Technical Product Manager, will show how on-prem or cloud-hosted Private PaaS can enable organ...
When it comes to building applications, one database definitely does not fit all. Traditional SQL databases are great for storing highly structured, normalized data and performing analytics and reporting. NoSQL has attracted developers with its awesome flexibility, and JSON-centric document stores like Cloudant make web developers incredibly productive by offering a JavaScript environment from end-to-end. Recent Big Data challenges have driven the need for a distributed approach to analytics e...
SYS-CON Events announced today the IoT Bootcamp – Jumpstart Your IoT Strategy, being held June 9–10, 2015, in conjunction with 16th Cloud Expo and Internet of @ThingsExpo at the Javits Center in New York City. This is your chance to jumpstart your IoT strategy. Combined with real-world scenarios and use cases, the IoT Bootcamp is not just based on presentations but includes hands-on demos and walkthroughs. We will introduce you to a variety of Do-It-Yourself IoT platforms including Arduino, Ras...
SYS-CON Events announced today that SafeLogic has been named “Bag Sponsor” of SYS-CON's 16th International Cloud Expo® New York, which will take place June 9-11, 2015, at the Javits Center in New York City, NY. SafeLogic provides security products for applications in mobile and server/appliance environments. SafeLogic’s flagship product CryptoComply is a FIPS 140-2 validated cryptographic engine designed to secure data on servers, workstations, appliances, mobile devices, and in the Cloud....
SYS-CON Events announced today that the DevOps Institute has been named “Association Sponsor” of SYS-CON's DevOps Summit, which will take place on June 9–11, 2015, at the Javits Center in New York City, NY. The DevOps Institute provides enterprise level training and certification. Working with thought leaders from the DevOps community, the IT Service Management field and the IT training market, the DevOps Institute is setting the standard in quality for DevOps education and training.
SYS-CON Events announced today the DevOps Foundation Certification Course, being held June ?, 2015, in conjunction with DevOps Summit and 16th Cloud Expo at the Javits Center in New York City, NY. This sixteen (16) hour course provides an introduction to DevOps – the cultural and professional movement that stresses communication, collaboration, integration and automation in order to improve the flow of work between software developers and IT operations professionals. Improved workflows will res...
Even though it’s now Microservices Journal, long-time fans of SOA World Magazine can take comfort in the fact that the URL – soa.sys-con.com – remains unchanged. And that’s no mistake, as microservices are really nothing more than a new and improved take on the Service-Oriented Architecture (SOA) best practices we struggled to hammer out over the last decade. Skeptics, however, might say that this change is nothing more than an exercise in buzzword-hopping. SOA is passé, and now that people are ...
Containers and microservices have become topics of intense interest throughout the cloud developer and enterprise IT communities. Accordingly, attendees at the upcoming 16th Cloud Expo at the Javits Center in New York June 9-11 will find fresh new content in a new track called PaaS | Containers & Microservices Containers are not being considered for the first time by the cloud community, but a current era of re-consideration has pushed them to the top of the cloud agenda. With the launch ...
The WebRTC Summit 2014 New York, to be held June 9-11, 2015, at the Javits Center in New York, NY, announces that its Call for Papers is open. Topics include all aspects of improving IT delivery by eliminating waste through automated business models leveraging cloud technologies. WebRTC Summit is co-located with 16th International Cloud Expo, @ThingsExpo, Big Data Expo, and DevOps Summit.
SOA Software has changed its name to Akana. With roots in Web Services and SOA Governance, Akana has established itself as a leader in API Management and is expanding into cloud integration as an alternative to the traditional heavyweight enterprise service bus (ESB). The company recently announced that it achieved more than 90% year-over-year growth. As Akana, the company now addresses the evolution and diversification of SOA, unifying security, management, and DevOps across SOA, APIs, microser...
The webinar, hosted by XebiaLabs, will feature 4 experts including Special Host Gene Kim, author of The Phoenix Project, along with IT thought leaders Gary Gruver, Randy Shoup and XebiaLabs' Andrew Phillips. The panel brings more than 30 years of collective experience surrounding microservices transformations at major companies including Google, eBay and Tripwire. "The story around microservices and containers is pretty compelling and the attraction of more flexibility is obviously alluring,"...
SYS-CON Events announced today that Creative Business Solutions will exhibit at SYS-CON's 16th International Cloud Expo®, which will take place on June 9-11, 2015, at the Javits Center in New York City, NY. Creative Business Solutions is the top stocking authorized HP Renew Distributor in the U.S. Based out of Long Island, NY, Creative Business Solutions offers a one-stop shop for a diverse range of products including Proliant, Blade and Industry Standard Servers, Networking, Server Options and...
SYS-CON Events announced today that FierceDevOps will exhibit at SYS-CON's 16th International Cloud Expo®, which will take place on June 9-11, 2015, at the Javits Center in New York City, NY. FierceDevOps keeps software developers and IT operations personnel updated on the latest news and trends around the rapidly evolving role of the traditional IT worker.
GENBAND has announced that SageNet is leveraging the Nuvia platform to deliver Unified Communications as a Service (UCaaS) to its large base of retail and enterprise customers. Nuvia’s cloud-based solution provides SageNet’s customers with a full suite of business communications and collaboration tools. Two large national SageNet retail customers have recently signed up to deploy the Nuvia platform and the company will continue to sell the service to new and existing customers. Nuvia’s capabili...
WHOA.com has announced the newest addition to its data center footprint with the expansion into Equinix's newest state-of-the-art facility: DC-11 Washington, DC IBX+. Located in Ashburn, VA, this data center expands Whoa.com's presence to meet rapidly expanding customer demand for secure cloud solutions. Equinix, Inc. operates International Business Exchange™ (IBX®) data centers in 32 markets across 15 countries in the Americas, EMEA, and Asia-Pacific. Equinix is committed to operating faciliti...
SYS-CON Media announced today that @WebRTCSummit Blog, the largest WebRTC resource in the world, has been launched. @WebRTCSummit Blog offers top articles, news stories, and blog posts from the world's well-known experts and guarantees better exposure for its authors than any other publication. @WebRTCSummit Blog can be bookmarked ▸ Here @WebRTCSummit conference site can be bookmarked ▸ Here