Linked by ebasconp on Fri 10th Jun 2011 22:22 UTC
Benchmarks "Google has released a research paper that suggests C++ is the best-performing programming language in the market. The internet giant implemented a compact algorithm in four languages - C++, Java, Scala and its own programming language Go - and then benchmarked results to find 'factors of difference'."
Thread beginning with comment 476925
To view parent comment, click here.
To read all comments associated with this story, please click here.
RE: No C?
by edgeofsanity on Sat 11th Jun 2011 09:54 UTC in reply to "No C?"
edgeofsanity
Member since:
2011-06-10

I agree, C++ looks accident compared to new languages. Reflection, for example, is a great way to implement runtime evolable systems. I have seen software systems, where people tried to build reflection by hacking g++. What an overhead...

Besides that its two-level compilation scheme and user extensible syntax really complicates things like syntax highlighted editors and aspect oriented development. Aspects are proven to reduce development for certain tasks. And we know what an editor like eclipse can do with development time.

Besides this, as an academician I can say this paper is direct reject. But certainly, it is good to see companies coming to conferences. We will learn something from them, and maybe they will take home our ideas and implement something usable.

However, if my PhD brought this paper to me (a asst. prof of software engineering) or to my prof, our reply would be rewrite and think more. In software engineering, you have other problems than simple performance. Maintainability, evolvability , reliability... The language of choice depends on most of these requirements. Oww and also, on some occasions multi-language (multi-paradigm) programing is really helpful. Some problems simply don't fit into OO.

Reply Parent Score: 0

RE[2]: No C?
by bouhko on Sat 11th Jun 2011 10:10 in reply to "RE: No C?"
bouhko Member since:
2010-06-24

Well, Google might be one of the few company where having a one percent performance increase might lead to multi-million savings. That's due to the scale of their product.

I'm not really convinced about reflection in large-scale systems. It usually seems like a good idea at first, but when you actually come back some year later and try to understand what's happening, it just adds another layer of complexity.

Almost all the other components of software engineering you mention - Maintainability, reliability - are fully achievable with C++ if you have competent programmers and some guidelines (like avoid pointer arithmetic and all the horrible things you can do). It might take a bit more work than with Java, but it's certainly doable and once again, if you're at Google-scale, taking 20% more development time to develop something 2% faster might be worth it.

Reply Parent Score: 3

RE[2]: No C?
by ebasconp on Mon 13th Jun 2011 20:25 in reply to "RE: No C?"
ebasconp Member since:
2006-05-09

Besides that its two-level compilation scheme and user extensible syntax really complicates things like syntax highlighted editors and aspect oriented development.


What two-level compilation scheme are you talking about?

In software engineering, you have other problems than simple performance. Maintainability, evolvability , reliability... The language of choice depends on most of these requirements. Oww and also, on some occasions multi-language (multi-paradigm) programing is really helpful. Some problems simply don't fit into OO.


Maintainability, reliability and all that stuff and out of topic for the article's document: It just talks about performance and, though C++ is not as clean or simple as Java, it is (together with C) dominating the industrial software development.

Reply Parent Score: 2

RE[3]: No C?
by Alfman on Mon 13th Jun 2011 20:46 in reply to "RE[2]: No C?"
Alfman Member since:
2011-01-28

ebasconp,

<offtopic>

"What two-level compilation scheme are you talking about?"

I think he's referring to include files and the C preprocessor. If so, I agree with him that it's a regrettable mess.


"though C++ is not as clean or simple as Java, it is (together with C) dominating the industrial software development."


C/C++ are often the defacto languages of choice for embedded and systems development.

I like the C logic syntax alot (more than ada/pascal languages). But both C and C++ have usability issues which would have been handled differently if they were designed today. I'm not sure if any new language can get enough momentum to take over from C in systems development?

</offtopic>

Reply Parent Score: 2