473,666 Members | 2,299 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Most annoying aspects of C++



Hi all

We all know that C++ is a cleverly conceived multi-paradigm language that
sacrifices very little in efficiency for what it delivers in terms of
type-safety, encapsulation and generic behaviour.

What I want to ask here is - what are the features that people most dislike
about it i.e. that:

- make it more difficult than necessary to implement designs

- introduce subtle bugs

- force the developer to think in counter-intuitive ways

- make managing a software project more troublesome

- make using or producing libraries inconvenient

There may be others. I am not talking about subjective things like syntax,
more concerned with tangible design & software engineering issues.

Michael
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

_/ _/ _/_/_/ Hopkins Research Ltd
_/ _/ _/ _/
_/_/_/_/ _/_/_/ http://www.hopkins-research.com/
_/ _/ _/ _/
_/ _/ _/ _/ 'touch the future'

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
Jun 15 '06 #1
52 5188

Michael Hopkins wrote:
Hi all

We all know that C++ is a cleverly conceived multi-paradigm language that
sacrifices very little in efficiency for what it delivers in terms of
type-safety, encapsulation and generic behaviour.

What I want to ask here is - what are the features that people most dislike
about it i.e. that:

- make it more difficult than necessary to implement designs

- introduce subtle bugs

- force the developer to think in counter-intuitive ways

- make managing a software project more troublesome

- make using or producing libraries inconvenient

There may be others. I am not talking about subjective things like syntax,
more concerned with tangible design & software engineering issues.

Michael
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

_/ _/ _/_/_/ Hopkins Research Ltd
_/ _/ _/ _/
_/_/_/_/ _/_/_/ http://www.hopkins-research.com/
_/ _/ _/ _/
_/ _/ _/ _/ 'touch the future'

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/


one could be the 'long time' it takes to learn/master .

Jun 15 '06 #2
Michael Hopkins wrote, On 15.6.2006 8:43:

Hi all

We all know that C++ is a cleverly conceived multi-paradigm language that
sacrifices very little in efficiency for what it delivers in terms of
type-safety, encapsulation and generic behaviour.

What I want to ask here is - what are the features that people most dislike
about it i.e. that:

- make it more difficult than necessary to implement designs

- introduce subtle bugs

- force the developer to think in counter-intuitive ways

- make managing a software project more troublesome I don't think that either of these is true.

- make using or producing libraries inconvenient This one is arguable.

There may be others. I am not talking about subjective things like syntax,
more concerned with tangible design & software engineering issues.

Michael


--
VH
Jun 15 '06 #3
In article <C0************ *************** *@hopkins-research.com>,
Michael Hopkins <mi************ *@hopkins-research.com> wrote:
Hi all

We all know that C++ is a cleverly conceived multi-paradigm language that
sacrifices very little in efficiency for what it delivers in terms of
type-safety, encapsulation and generic behaviour.

What I want to ask here is - what are the features that people most dislike
about it i.e. that:

- make it more difficult than necessary to implement designs

- introduce subtle bugs

- force the developer to think in counter-intuitive ways

- make managing a software project more troublesome

- make using or producing libraries inconvenient

There may be others. I am not talking about subjective things like syntax,
more concerned with tangible design & software engineering issues.


This has the makings of a flame war. You are asking the people who love
the language most to dis it... :-)

The "feature" I most dislike is wild pointers. The fact that they can be
created, and the fact that there is no language facility to track them
down.
Jun 15 '06 #4

Daniel T. schrieb:
In article <C0************ *************** *@hopkins-research.com>,
Michael Hopkins <mi************ *@hopkins-research.com> wrote:
Hi all

We all know that C++ is a cleverly conceived multi-paradigm language that
sacrifices very little in efficiency for what it delivers in terms of
type-safety, encapsulation and generic behaviour.

What I want to ask here is - what are the features that people most dislike
about it i.e. that:

- make it more difficult than necessary to implement designs

- introduce subtle bugs

- force the developer to think in counter-intuitive ways

- make managing a software project more troublesome

- make using or producing libraries inconvenient

There may be others. I am not talking about subjective things like syntax,
more concerned with tangible design & software engineering issues.
This has the makings of a flame war. You are asking the people who love
the language most to dis it... :-)


I think this *is* the right place for this question. The question is
not to say the language is bad. But how it could made better.
- make it more difficult than necessary to implement designs


Especially the 'than necessary' part. You need to know the language
well to know what is actually 'necessary'.

The "feature" I most dislike is wild pointers. The fact that they can be
created, and the fact that there is no language facility to track them
down.


What is a wild pointer? A raw pointer? Then I say: It is necessary.

It is not the language, but the programmer who uses the pointer. You
are free to define any kind of intelligent pointer, even a garbage
collection. And in fact other have done so for you already.

Actually I just realized that it is indeed difficult to answer this
question.
I have written some points, but then realized, that I proposed new
features instead of talking about disliked features. So I removed them
again.

The things I dislike are indeed syntax issues. But they are explicitly
excluded here.

So, which feature could be disliked? If I don't like a feature, who
forces me to use it???

Ingo

Jun 15 '06 #5
On 15/6/06 12:24, in article
da************* *************** @n...art hlink.net, "Daniel T."
<da******@earth link.net> wrote:

This has the makings of a flame war. You are asking the people who love
the language most to dis it... :-)

The "feature" I most dislike is wild pointers. The fact that they can be
created, and the fact that there is no language facility to track them
down.


Not looking for flame war here but genuine & open debate from people who
already use it.

My current list, for what it's worth:

- slicing & schizophrenic polymorphism

- what compiler does 'behind the scenes' with no documentation in code

- the need for virtual destructors

- error messages from template (i.e. STL) code
These are more subjective but, I believe, valid and agreed with by others:

- arcane (sometimes dangerous) semantics in some cases that seem simple

- when static-typing makes you 'jump thru hoops' to do something simple

- the need to keep so many concepts & types in mind all at once creates
unecessary complexity relative to the problem & reduces productivity
M
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

_/ _/ _/_/_/ Hopkins Research Ltd
_/ _/ _/ _/
_/_/_/_/ _/_/_/ http://www.hopkins-research.com/
_/ _/ _/ _/
_/ _/ _/ _/ 'touch the future'

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
Jun 15 '06 #6
Michael Hopkins wrote:
We all know that C++ is a cleverly conceived multi-paradigm language that
sacrifices very little in efficiency for what it delivers in terms of
type-safety, encapsulation and generic behaviour.

What I want to ask here is - what are the features that people most
dislike
about it i.e. that:

- make it more difficult than necessary to implement designs


Read my seminal paper on the topic, called "Where in memory do you want to
accidentally jump today?"

http://groups.google.com/group/comp....3877533bd360d2
aka
http://tinyurl.com/k2kmy

The replies are also valid, but none of them defeat the main points. C++
sacrifices much programmer efficiency in exchange for a thin margin of CPU
efficiency...

--
Phlip
http://c2.com/cgi/wiki?ZeekLand <-- NOT a blog!!!
Jun 15 '06 #7
Michael Hopkins wrote:
On 15/6/06 12:24, in article
da************* *************** @n...art hlink.net, "Daniel T."
<da******@earth link.net> wrote:

This has the makings of a flame war. You are asking the people who
love the language most to dis it... :-)

The "feature" I most dislike is wild pointers. The fact that they
can be created, and the fact that there is no language facility to
track them down.
Not looking for flame war here but genuine & open debate from people
who already use it.


Bullshit!
My current list, for what it's worth:
Doesn't seem to be worth much...
- slicing & schizophrenic polymorphism
What's that mean? I am vaguely familiar with the term schizophrenia,
but how does it apply to polymorphism?
- what compiler does 'behind the scenes' with no documentation in code
Why do you care? And if you do care, couldn't you ask your compiler
vendor for that? You know, every compiler does different things there.
- the need for virtual destructors
Huh? What's the alternative? Virtual d-tors for every class? Or some
other RTTI mechanism to slow everything down?
- error messages from template (i.e. STL) code
What error messages? Are you confusing the language design with the
quality of the iplementation you're using?
These are more subjective but, I believe, valid and agreed with by
others:

- arcane (sometimes dangerous) semantics in some cases that seem
simple
Example, kindly please.
- when static-typing makes you 'jump thru hoops' to do something
simple
To do what, for instance?
- the need to keep so many concepts & types in mind all at once
creates unecessary complexity relative to the problem & reduces
productivity


As opposed to what?

Here is what I think of your current list
[
These are the most annoying aspects of cars, for what it's worth:
- need gas to run
- not enough room to carry all my belongings
- uncomfortable seats
- short warranty leading to expensive repairs later
- going too fast often leads to a speeding ticket
- not enough protection against crashes
- the need to keep many things in mind at once when driving
]

V
--
Please remove capital 'A's when replying by e-mail
I do not respond to top-posted replies, please don't ask
Jun 15 '06 #8
* Phlip:
Michael Hopkins wrote:
We all know that C++ is a cleverly conceived multi-paradigm language that
sacrifices very little in efficiency for what it delivers in terms of
type-safety, encapsulation and generic behaviour.

What I want to ask here is - what are the features that people most
dislike
about it i.e. that:

- make it more difficult than necessary to implement designs


Read my seminal paper on the topic, called "Where in memory do you want to
accidentally jump today?"

http://groups.google.com/group/comp....3877533bd360d2
aka
http://tinyurl.com/k2kmy


You write about C++, "This newsgroup gets a dozen questions per month
asking how to do something that a scripting language can do".

Is it really true that they ask C++ questions in cljp?

--
A: Because it messes up the order in which people normally read text.
Q: Why is it such a bad thing?
A: Top-posting.
Q: What is the most annoying thing on usenet and in e-mail?
Jun 15 '06 #9
Michael Hopkins <mi************ *@hopkins-research.com> wrote:
What I want to ask here is - what are the features that people most dislike
about it i.e. that:


The fact that exception specifications exist, but are essentially
worthless for the purposes that a reasonable programmer might attempt
to use them, is not a particularly endearing quality of the language.

--
Christopher Benson-Manica | I *should* know what I'm talking about - if I
ataru(at)cybers pace.org | don't, I need to know. Flames welcome.
Jun 15 '06 #10

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

Similar topics

6
1816
by: Andrew Ochsner | last post by:
Wanted to get thoughts around supporting Aspects and Aspect Oriented programming in C#... Is it being considered (presumably through attributes) and is there a timeline for it? Thanks Andy O
84
7179
by: braver | last post by:
Is there any trick to get rid of having to type the annoying, character-eating "self." prefix everywhere in a class? Sometimes I avoid OO just not to deal with its verbosity. In fact, I try to use Ruby anywhere speed is not crucial especially for @ prefix is better- looking than self. But things grow -- is there any metaprogramming tricks or whatnot we can throw on the self? Cheers,
0
132
by: Steve Holden | last post by:
Thanks for your reply. Another point to note: if you get a personal reply (often you will just see replies on the list, but sometimes people will also mail you directly) it is usual to make sure the list gets copied in any reply. I hope you don't mind that I am sending a copy of this message to the list, so everyone understands that you are just learning the rules. regards Steve
0
8443
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look ! Part I. Meaning of...
0
8866
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, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
1
6192
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
5663
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
0
4198
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
0
4366
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
2769
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
2
2011
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
2
1772
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

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.