473,385 Members | 1,973 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,385 software developers and data experts.

The current state of affairs of C++

Given ludicrously huge promulgation of programming languages,
platforms, OS's, embedded systems etc., in which environment C++ is
still the most useful and the predominant language choice. I am NOT
talking about the support of deprecated/outdated API, college homework
assignments, or explanation of data structure - but rather preferential
system type where C++ would be the most adequate choice.
Thanks for your opinion.

Oct 16 '05 #1
10 1601
In article <11**********************@f14g2000cwb.googlegroups .com>,
puzzlecracker <ir*********@gmail.com> wrote:
Given ludicrously huge promulgation of programming languages,
platforms, OS's, embedded systems etc., in which environment C++ is
still the most useful and the predominant language choice. I am NOT
talking about the support of deprecated/outdated API, college homework
assignments, or explanation of data structure - but rather preferential
system type where C++ would be the most adequate choice.
Thanks for your opinion.


Name the top environments, and C++ is usually there. ??
--
Greg Comeau / Celebrating 20 years of Comeauity!
Comeau C/C++ ONLINE ==> http://www.comeaucomputing.com/tryitout
World Class Compilers: Breathtaking C++, Amazing C99, Fabulous C90.
Comeau C/C++ with Dinkumware's Libraries... Have you tried it?
Oct 16 '05 #2
Anywhere, where you want to write in assembly but don't want to be
arsed with the details. That covers a lot of ground in itself. There is
a lot of work I would do in C# and OCaml mostly but those are not the
bread and butter for me. I speak only for myself since asking for
*opinions* so these are not facts and never been stated as such.

It boils down to the fact that for what *I* do, other languages don't
give much incentive to switch over for the day job, except ANSI C which
is sometimes mandated by the nature of the work. OCaml is better for
some prototyping work especially. C# is cleaner for .NET Platform
specific gigs. I wouldn't do scripting in C++ either. And so on..

A nice troll but if the point was to get someone upset maybe you get
better luck with other replies. ;-)

Oct 16 '05 #3
A nice troll but if the point was to get someone upset maybe you get
better luck with other replies. ;-)


That is very indignant and cynical statement. I am investing a lot of
time in learning and making living of C++ and genuinely interested in
professional opinion; given you lack the latter, I will simply ignore
your comment.

Oct 16 '05 #4

"puzzlecracker" <ir*********@gmail.com> wrote in message
news:11**********************@f14g2000cwb.googlegr oups.com...
Given ludicrously huge promulgation of programming languages,
platforms, OS's, embedded systems etc., in which environment C++ is
still the most useful and the predominant language choice. I am NOT
talking about the support of deprecated/outdated API, college homework
assignments, or explanation of data structure - but rather preferential
system type where C++ would be the most adequate choice.


There is no such thing as predominant language of choice, I think.
Choice is limited by availability and stability of tools/run time for a
language
on a given platform.
If your target is virtual machine, then C++ wouldn't be language of choice,
since machine is already written in C++ or C :)

Greetings, Bane.
Oct 16 '05 #5

"puzzlecracker" <ir*********@gmail.com> wrote in message
news:11**********************@f14g2000cwb.googlegr oups.com...
Given ludicrously huge promulgation of programming languages,
platforms, OS's, embedded systems etc., in which environment C++ is
still the most useful and the predominant language choice. I am NOT
talking about the support of deprecated/outdated API, college homework
assignments, or explanation of data structure - but rather preferential
system type where C++ would be the most adequate choice.


I think you're asking the wrong questions. :-)

I don't think it's helpful to try to match a language
with an environment or platform, but to a given type
of task.

IOW imo "C++ is good for Windows programs", isn't helpful,
but e.g. "C++'s OO features are useful in modeling a database
application", is.

-Mike
Oct 16 '05 #6
puzzlecracker wrote:
Given ludicrously huge promulgation of programming languages,
You might want to distinguish that promulgation between active languages and
archived ones. Much fewer languages are leading-edge.
platforms, OS's, embedded systems etc., in which environment C++ is
still the most useful and the predominant language choice.


The programming world occupies a spectrum from embedded to distributed. From
bits inside registers in specific hardware, to active content like web pages
that can run in any generic device.

C++ is efficient, modular (roughly), typesafe (roughly), and more flexible &
maintainable than assembler. It is also statically-typed, and purely
compiled.

Use C++ from the embedded level to the OS level to large, performance bound
systems.

Use a higher level language to drive C++.

For example, oggle my Flea:

http://flea.sourceforge.net/balancingAct.png

That program drives OpenGL with several layers of stuff. At the lowest
layer, the microcode in the graphics chipset in my graphics card, C++ could
easily have been used to blast all the bits around in an image. C++ competes
directly with Assembly and Machine Language because programs that are easy
to read and change can be faster than programs that force you to think of
the path of each bit.

But maybe the microcode in my graphics chipset wasn't C++; the miracle of
encapsulation and drivers means I don't know if that layer is C++.

At the next layer up, the OS drivers, including OpenGL, could have been
written in C++, and again they might not have been. The odds are very high
they were written in a C language, such as Standard C or GNU C.

Next, the frame around my OpenGL is written in Qt, which is an exquisite and
elegant framework written in pristing C++...

....with one exception. Because C++ uses statically typed polymorphism
(polymorphism that requires inheritance), and because GUIs work best with
the Observer Pattern written in a dynamically typed language (a
message-based language like Smalltalk), Trolltech invented two new C++
keywords, signals and slots, and added them to your compiler.

The moral is the farther you are from the hardware, the more dynamism you
need.

In the left panel of my user interface is a snip of Ruby code, which is a
very high-level language that competes with Perl and Smalltalk - but
certainly not Assembler. My Ruby code drives the commands that generate the
graphical primitive commands sent into OpenGL. So the Ruby code generates
the shape you see, and the OpenGL code renders it.

This far from the metal, the efficiency of static typing is less important
than the flexibility of dynamic typing. So when my system uses Ruby to
generate a shape, you don't need to recompile everything just to change the
shape.

Similarily, if you write a database engine in C++, you drive it with SQL, a
soft dynamic (and declarative) language.

All modules in a program must perform a balancing act between too much
typechecking and too little. Use C++ when those benefits are obvious.

--
Phlip
http://www.greencheese.org/ZeekLand <-- NOT a blog!!!
Oct 17 '05 #7

Phlip wrote:
puzzlecracker wrote:
Given ludicrously huge promulgation of programming languages,


You might want to distinguish that promulgation between active languages and
archived ones. Much fewer languages are leading-edge.
platforms, OS's, embedded systems etc., in which environment C++ is
still the most useful and the predominant language choice.


The programming world occupies a spectrum from embedded to distributed. From
bits inside registers in specific hardware, to active content like web pages
that can run in any generic device.

C++ is efficient, modular (roughly), typesafe (roughly), and more flexible &
maintainable than assembler. It is also statically-typed, and purely
compiled.

Use C++ from the embedded level to the OS level to large, performance bound
systems.

Use a higher level language to drive C++.

For example, oggle my Flea:

http://flea.sourceforge.net/balancingAct.png

That program drives OpenGL with several layers of stuff. At the lowest
layer, the microcode in the graphics chipset in my graphics card, C++ could
easily have been used to blast all the bits around in an image. C++ competes
directly with Assembly and Machine Language because programs that are easy
to read and change can be faster than programs that force you to think of
the path of each bit.

But maybe the microcode in my graphics chipset wasn't C++; the miracle of
encapsulation and drivers means I don't know if that layer is C++.

At the next layer up, the OS drivers, including OpenGL, could have been
written in C++, and again they might not have been. The odds are very high
they were written in a C language, such as Standard C or GNU C.

Next, the frame around my OpenGL is written in Qt, which is an exquisite and
elegant framework written in pristing C++...

...with one exception. Because C++ uses statically typed polymorphism
(polymorphism that requires inheritance), and because GUIs work best with
the Observer Pattern written in a dynamically typed language (a
message-based language like Smalltalk), Trolltech invented two new C++
keywords, signals and slots, and added them to your compiler.

The moral is the farther you are from the hardware, the more dynamism you
need.

In the left panel of my user interface is a snip of Ruby code, which is a
very high-level language that competes with Perl and Smalltalk - but
certainly not Assembler. My Ruby code drives the commands that generate the
graphical primitive commands sent into OpenGL. So the Ruby code generates
the shape you see, and the OpenGL code renders it.

This far from the metal, the efficiency of static typing is less important
than the flexibility of dynamic typing. So when my system uses Ruby to
generate a shape, you don't need to recompile everything just to change the
shape.

Similarily, if you write a database engine in C++, you drive it with SQL, a
soft dynamic (and declarative) language.

All modules in a program must perform a balancing act between too much
typechecking and too little. Use C++ when those benefits are obvious.

--
Phlip
http://www.greencheese.org/ZeekLand <-- NOT a blog!!!


Philip, interesting perspective, but you shouldn't justify the language
and its kudos based on the program you had written. Java done quite
well in 5.0 to speed graphics quite tremendously (and on some platforms
it even outruns c++), yet I am not proponent of the latter, but rather
eschew it.

C++ is my way to go, albeit slow...

Some say that new standardization won't really recover the language
from its imminent demise (relatively speaking), yet others claim just
the opposite.
will Boost boost?

Oct 17 '05 #8
Your wording (accidentally?) gives impression that you lack
professional opinion, why is that? :)

Oct 17 '05 #9
puzzlecracker wrote:
Philip, interesting perspective, but you shouldn't justify the language
and its kudos based on the program you had written.
I didn't. C++ sucks, and my program barely survived using it.

Please read what I actually wrote.
Java done quite
well in 5.0 to speed graphics quite tremendously (and on some platforms
it even outruns c++), yet I am not proponent of the latter, but rather
eschew it.


Nobody here is saying "use C++ because it renders fast graphics".

Oct 17 '05 #10
In article <11*********************@g14g2000cwa.googlegroups. com>,
puzzlecracker <ir*********@gmail.com> wrote:
Some say that new standardization won't really recover the language
from its imminent demise (relatively speaking), yet others claim just
the opposite.


Please fix your newsreader, it is posting 20 year old messages. :)
--
Greg Comeau / Celebrating 20 years of Comeauity!
Comeau C/C++ ONLINE ==> http://www.comeaucomputing.com/tryitout
World Class Compilers: Breathtaking C++, Amazing C99, Fabulous C90.
Comeau C/C++ with Dinkumware's Libraries... Have you tried it?
Oct 18 '05 #11

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

0
by: [AF] Abdulhafid | last post by:
A growing archive of fascinating media articles on current issues & affairs. Available at Arcis Foundation Website: www.arcis.co.uk/php/ -- Posted by News Bulk Poster Unregistered version
1
by: cobalt | last post by:
Hi all. I know nothing about javascript, so anything you say will likely be news to me. I have a vhost that may have a configuration problem (1 vhost is getting way more traffic than it should). ...
3
by: tsteinke | last post by:
What is the syntax to refer to your current row in an SQL statement? I am using the "Lookup Wizard" to build a query in a table. How do you refer to the Current Row For instance I have a Table...
3
by: Samuel R. Neff | last post by:
Is there any downside to using the Memento pattern to store the current state of an object instead of using private fields for internal state and a memento just for some bookmarked state? Seems...
15
by: SFX | last post by:
If I have a session ID (string) can I somehow obtain the session object associated to that ID (it exist of course) ? I know this sounds wicked but I have a situation in which I have to make a...
5
by: Kevin Yu | last post by:
hi all I use a custom windows principal to the httpcontext.current.user in a windows authenitcation asp.net app. There are other objects added to the principal. during the...
1
by: Peter Knörrich | last post by:
Hello, I've found another inconsistency, and looking through the list archives I can find mentions of funky stuff like print float('inf') giving Infanity
10
by: Peter Olcott | last post by:
Someone told me that determining the exact location and current state of any JavaScript controls is pretty easy. Does anyone know exactly how this is done?
67
by: Rui Maciel | last post by:
I've been delving into finite state machines and at this time it seems that the best way to implement them is through an intense use of the goto statement. Yet, everyone plus their granmother is...
3
by: galathaea | last post by:
it surprises me how often engineers confuse states with actions i think this is the fundamental reification behind procedural statemess and this mistake infects a lot of great projects with...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: aa123db | last post by:
Variable and constants Use var or let for variables and const fror constants. Var foo ='bar'; Let foo ='bar';const baz ='bar'; Functions function $name$ ($parameters$) { } ...
0
by: ryjfgjl | last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.