Software Development

Poll: Does C++ 2011 renew your interest in native apps?

The next version of C++, which is currently called C++ 2011, will likely be out by the end of the year. Developer Justin James asks: Do you think it's time to give native apps another shot?

It seems like fewer and fewer developers write applications in native code, for a variety of reasons. The next version of C++ looks to be finalized before the end of this year and to be called C++ 2011. With a new version of C++ coming out, do you feel like maybe it is time to give native apps another shot? Take the poll, and then discuss your answer.

J.Ja

About

Justin James is the Lead Architect for Conigent.

47 comments
Mike Page
Mike Page

C++, C#, Java, Ruby, etc are all tools. Pick the tool that best solves your problem. C++ is great for the high performance scientific desktop applications I write, because ityou can do anything with it, and produces fast code. But, I have not chosen it to write web applications, since it has no built in functionality for that realm. C# has features that make it easier to write Windows applications, and if performance is not a primary consideration then it is a good choice. One common theme I see in this discussion is that C++ is too hard. It makes me want to scream, "Quit the whining, put on your big boy pants, and learn to deal with things that are hard." In computer science and other technical disciplines many concepts are difficult to grasp. But, there is a great reward to understanding and then using these things.

Jaqui
Jaqui

but then, I never lost my interest i native apps, so it can't renew it. :p I'm not a big fan of the interpreted languages for apps, simply because they don't perform as well.[ any java app is a perfect example of poor performance ] I'm also not a fan of the "app framework" development model. These tend to be a major source of bloat in application hardware requirements. Though you can lay the blame for this concept right at the feet of the ANSI/ISO team that set the C++ standard in the first place. The STL of C++ is the first attempt at an application framework. It looks a lot like a big part of the design in Java was to do an interpreted language implementation of the C++ standard. Thy pushed the app framework concept further along in it right from the start. Remember when Java was introduced? The Sales reps for the language coined a phrase to help sell it to the developers that were complaining at hardware requirements. That phrase [ from a HARDWARE MANUFACTURER ] Hardware is cheap. I'm still all for native apps, but the newest version of the C++ standard, probably not anything I'll really use.

Mark Miller
Mark Miller

I looked at the Wikipedia article on C++0x. It brought to mind what I remember reading a couple years ago that they were adding lambdas to it. This was a clue to me where they were going. It strikes me that the new version of C++ is basically the community saying, "Java, C#, and (maybe even) Ruby have some good ideas," but they're trying to give each of the good ideas a C++ flavor. I found myself not wanting to finish reading the description of all its features, because it felt tedious and boring. I felt like, "Why would I go through the trouble to do all this crap just to do what they're talking about?" It reminded me of a complaint I had about Java a few years ago, that you had to go through gymnastics just to do "type calculus," rather than focusing on what the core task was. ANSI C++ was much the same way. I think the new version, like the old ANSI standard, makes things too complicated. I could see right off the bat that there were going to be new pitfalls to be avoided. One example was with lambdas: If a closure object containing references to local variables is invoked after the innermost block scope of its creation, the behaviour is undefined. Ah yes... The old scoping rules still apply. You have to know when to copy by value, and when to copy by reference... Edit: Decided to delete code sample, since it was probably bad code.

Tony Hopkinson
Tony Hopkinson

Well may be I, seeing as you're a young 'un. :D Now we are paid to produce things quick not produce quick things, for that in general business will simply throw more machine at the problem. Besides there are all sorts of things you can do to your design/implementation, to make the few clock cycles you could save writing native code irrelevant, and compiler design since the early days is what the really clever boys have been concentrating on for a long time. A well written piece of say ,net or java once compiled from byte code will get damn close and it will still be much easier to manage. Not to mention if it became a required skill, most of the people who are curremtly qualified for our role would be out on the street, because they never learnt how the machine works in the first place....

Tony Hopkinson
Tony Hopkinson

need C++, like an extra hole in the arse though.

Editor's Picks