Language evaluation: What type of projects is C++ appropriate for?

A

alacrite

You have higher level, lower level, and those languages in between.
Generally speaking higher level languages are considered more
productive at the cost of a slower runtime. While lower level
languages are less productive but usually produce a faster runtime. On
the low end when would you choose C++ over C. It seems that many OS's,
device drivers, and DB's are written in C. And when would you use C++
over higher level languages. Where does C++ shine? I am looking for
answers that are specific (not anything you would use C for that is
over 50,000 lines of code) either a name of an existing project or
characteristics that of a project that would make you choose C++.

Thanks for your thoughts.
 
J

Jon Harrop

You have higher level, lower level, and those languages in between.
Generally speaking higher level languages are considered more
productive at the cost of a slower runtime. While lower level
languages are less productive but usually produce a faster runtime. On
the low end when would you choose C++ over C. It seems that many OS's,
device drivers, and DB's are written in C. And when would you use C++
over higher level languages. Where does C++ shine? I am looking for
answers that are specific (not anything you would use C for that is
over 50,000 lines of code) either a name of an existing project or
characteristics that of a project that would make you choose C++.

In industry, the language chosen for a project is often dictated by
management rather than by logic. C++ is often imposed because it is now a
mature language and there are many C++ developers.

However, this is no longer future proof and most people are now moving away
from C++ to higher-level, more modern languages like C#:

http://www.google.com/trends?q=c++,+c#&ctab=0&geo=all&date=all

Objectively, C++ has little to offer these days. It lacks almost all modern
features in any usable high-level way (GC, first-class lexical closures,
higher-order functions, currying, type inference, sum types, tuples,
interactivity, safety, brevity, efficient exceptions, pattern matching,
list literals, functors, marshalling, hashing, macros, concurrency, web
programming, scripting etc.), it is unreliable, unnecessarily verbose and
often difficult to optimise.
 
A

Alan

Some of what different applications are written in are artifacts
from the past when C++ and Java were not so prevalent. It is
difficult to redo legacy code.

For most applications, there is little difference anymore between
the performance of low and high level languages. High level languages
are generally more productive, because there is better tool support
and you can do in a few lines of code what might require 100s of lines
in a low-level language.

Object-oriented languages like C++ and Java have good software
design support, which makes maintaining code easier. This is
especially important for

For real-time applications (not necessarily embedded apps), I think
C++ is usually the best choice. Java is also making some inroads in
this arena --- it depends on your requirements.

C# and the latest <fill-in-the-blank> fad may or may not become the
next "language of choice" for some or many applications. Not everyone
is abandoning C++ and Java for the latest fad. Plus, it requires you
buy in to the whole non-standard Microsoft scene. For some
applications, this works fine. If you want cross-platform
compatibility, it is not likely the best choice.

My thoughts, Alan
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,580
Members
45,054
Latest member
TrimKetoBoost

Latest Threads

Top