![](/i/fill.gif) |
![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
... of what I think is wrong with the whole C++ language/library design
methodology. The whole "the compiler can't do X, and the compiler can't do
Y, so we'll add kludges to get around that fact so the programmer can tell
the compiler how to do what we want, rather than fixing the fact it can't do
X and can't do Y." Of course, I understand the reasons X and Y don't get
fixed, but that doesn't make it more pleasant. :-)
http://bartoszmilewski.wordpress.com/2009/05/21/unique_ptr-how-unique-is-it/
--
Darren New, San Diego CA, USA (PST)
There's no CD like OCD, there's no CD I knoooow!
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Darren New <dne### [at] san rr com> wrote:
> ... of what I think is wrong with the whole C++ language/library design
> methodology. The whole "the compiler can't do X, and the compiler can't do
> Y, so we'll add kludges to get around that fact so the programmer can tell
> the compiler how to do what we want, rather than fixing the fact it can't do
> X and can't do Y." Of course, I understand the reasons X and Y don't get
> fixed, but that doesn't make it more pleasant. :-)
You are really beating a dead horse. Every single problem with C++ which
people try to think good solutions for is something which makes the language
"wrong", while you seldom seem to show the same type of attitude towards
other programming languages and their problems.
For example, I don't ever remember you making a post saying "a wonderful
example of what I think is wrong with the whole Haskell language", and then
proceed to mention one single problem for which someone suggests a solution
for.
I know I'm being paranoid once again, but I just can't help to feel that
you *are* biased. It just feels that you are looking at C++ through
different glasses than you look at other languages, and any problem in
C++ always automatically makes the language "wrong", while problems in
other languages don't.
Even if you do agree that other languages do have their problems and
people thinking about clever solutions to those problems, C++ seems to be
the only language which ever makes you post new threads here.
Call me paranoid if you wish, but I really wonder if you would be making
these posts if I had never written a single word about C++.
--
- Warp
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Warp wrote:
> You are really beating a dead horse. Every single problem with C++ which
> people try to think good solutions for is something which makes the language
> "wrong", while you seldom seem to show the same type of attitude towards
> other programming languages and their problems.
My complaint in this case (which I guess I didn't make clear) is that C++
has some underlying infrastructural problems (like the model for separate
compilation, memory management, not paying for what you don't use, etc) that
people keep trying to "fix" with patches on top. They don't fix the
underlying problems. *That* is the main thing I dislike about C++ - that
the language is complex and baroque almost beyond comprehension due to piles
and piles of fixes for things that wouldn't be a problem without some of the
other fundamental assumptions.
Note that I'm not saying it's even the wrong choice. I just said "that's why
*I* think the design is wrong." It's a pile of successive kludgey patches
on a language (C) that had a nice clean design. Once you start with the
assumption that it has to look and work significantly like C does, and then
you want to add a bunch of features completely outside the scope of C while
minimizing syntactic disruption as well, you're going to get a kludgey
language. Just like once you decide you can't change the JVM, stuff like
generics and J2EE become kludges too.
> For example, I don't ever remember you making a post saying "a wonderful
> example of what I think is wrong with the whole Haskell language", and then
> proceed to mention one single problem for which someone suggests a solution
> for.
I don't know Haskell that well. I say that stuff about Ada and Erlang and
Eiffel and a couple other languages I've used and found lacking in various
ways, yes. I think I've harshed on PHP as well. (Hmm. Maybe most of that
hasn't been here, because I don't think there's anyone here using Ada or
Erlang frequently enough to tell me the error of my ways.) Or maybe you
don't remember me doing that as clearly.
Plus, C++ is the only language where I'm likely to have to learn some
baroque broken piece of code and fix it in my future career. Perl is
hopelessly f'ed in my eyes too, but I don't need to know how it works, so I
can just look at it and say "huh, that sucks. Good think I don't know anyone
who disagrees enough to hire me to work with it."
> I know I'm being paranoid once again, but I just can't help to feel that
> you *are* biased. It just feels that you are looking at C++ through
> different glasses than you look at other languages, and any problem in
> C++ always automatically makes the language "wrong", while problems in
> other languages don't.
I think it's the growth model for C++ that's bad. I just have to laugh when
I see people trying to build elegant structures on top of sand. I mean, sand
makes a nice beach, but it's a lousy thing to build an office building on
top of.
> Even if you do agree that other languages do have their problems and
> people thinking about clever solutions to those problems, C++ seems to be
> the only language which ever makes you post new threads here.
Nah. C++ is the language that I post things like "this demonstrates
fundamental flaws in the language" threads. I post other language threads
not infrequently. It's true I probably harsh on other languages more in
*response* to threads. I usually don't initiate them.
I also harsh on business models and operating systems, if you'll notice. :-)
> Call me paranoid if you wish, but I really wonder if you would be making
> these posts if I had never written a single word about C++.
No, I'd probably still be harshing C++. The only difference is that I
wouldn't be seeing the *good* side of it from you. :-)
--
Darren New, San Diego CA, USA (PST)
There's no CD like OCD, there's no CD I knoooow!
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Darren New wrote:
> I just have to laugh when I see people trying to build elegant structures on top of
sand.
Actually, it's not too unlike my feelings on the Windows vs Linux stuff. If
you need the ability to do the baroque stuff to the OS that comes with
Linux, bite the bullet. If all you need is a desktop OS that's user friendly
for naive users, Windows is fine. Complaining that Windows doesn't come with
a compiler is like complaining that C++ doesn't come with a "unique"
concept. I'll laugh at both of ya. :-)
The right tools for the right job. If you need the 5% extra performance you
get from turning off safety by default, explicitly managing memory, etc.,
then bite the bullet and manage your memory and your safety. Proposing yet
more kludges to make that unnecessary is like complaining how hard it is to
replace the window manager in Windows.
--
Darren New, San Diego CA, USA (PST)
There's no CD like OCD, there's no CD I knoooow!
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Darren New <dne### [at] san rr com> wrote:
> My complaint in this case
You didn't get my point. I was not commenting on the validity of your
arguments/opinions nor asking for you to elaborate. I was questioning
your motives for writing such posts again and again.
We already know that you don't like the language, so there's nothing new.
Seems like you are trying to prove something, but what? That you don't like
the language? We already know that, so what's the point? What is it that
you are trying to achieve?
Some people post more or less regularly here about their hobbies, or
about something funny they found on the net (such as an interesting
article or video). The difference, however, is that these posts are usually
positive ("Hey, did you know this? It's so cool!") and hardly inflammatory
or belittling. Sometimes these posts might be very specific and about a
relatively obscure topic which doesn't interest almost anybody, but at least
they are positive in tone and don't harm anyone.
--
- Warp
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Warp wrote:
> I was questioning
> your motives for writing such posts again and again.
To discuss computer language design. If you don't want to talk about that,
then cool, feel free not to. I thought perhaps you'd look at it, say "this
proposal is bad because X" or "you can already do that with clever technique
Y" or "how do other languages deal with the same problem" or something like
that.
The same as when you flame Java I sometimes can offer suggestions for
getting around its problems, or pointers to (for example) actual studies of
modern GC techniques to dispel some of the out of date myths.
> We already know that you don't like the language, so there's nothing new.
In this case, it was merely a prime example of the sort of thinking that
leads to the problem. It's not like I flame C++ a whole bunch any more. I
just happened to run across a really good example of something. Had it been
the same thing in some other language, I would have posted that too.
> Some people post more or less regularly here about their hobbies, or
> about something funny they found on the net (such as an interesting
> article or video).
I do that too. You don't seem to notice or remember, perhaps.
> they are positive in tone and don't harm anyone.
Who did I harm by saying "here's an example of why I think C++ evolves
poorly"? I'm sorry you have such personal ego wrapped up in a programming
language, but it's really not my intent to "harm" you by discussing
shortcomings in various languages, even the ones you personally like.
--
Darren New, San Diego CA, USA (PST)
There's no CD like OCD, there's no CD I knoooow!
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Darren New <dne### [at] san rr com> wrote:
> I'm sorry you have such personal ego wrapped up in a programming
> language, but it's really not my intent to "harm" you by discussing
> shortcomings in various languages, even the ones you personally like.
Do you seriously not see anything wrong with your behavioral pattern?
Assume that there was a forum somewhere about some subject, let's say
for example about computer graphics, and that there was one or a few
POV-Ray enthusiasts there who like from time to time express why they
like POV-Ray so much. Then assume that there was someone who from time
to time started threads about the flaws of POV-Ray and why it's such an
inferior renderer compared to other more modern renderers, and one of the
main reasons why he chooses to point out flaws precisely in POV-Ray is
because of those few enthusiasts. He knows that he is going to taunt
those enthusiasts, but nevertheless he continues making those posts,
even though they really aren't all that relevant.
That kind of behavior would get old rather fast. What would be the point?
You might think that *I* am obsessed with such a thing as some programming
language, but perhaps you should really look into the mirror sometime and
ponder exactly why you are continuing to make these posts which you *know*
are going to be inflammatory.
Yes, I have bashed Java and Windows and a few other things really bad.
However, I do not regularly start threads for the sole reason of pointing
out flaws in those things (or at least I don't remember doing so in many,
many years). When some discussion about the subject pops up, then I might
express my strong opinion, but I'm not on a quest to belittle those things.
--
- Warp
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Warp wrote:
> Do you seriously not see anything wrong with your behavioral pattern?
I don't know. I'm pretty grown up, I like to think. People discussing flaws
(or, in this case, design trade-offs) doesn't bother me.
> main reasons why he chooses to point out flaws precisely in POV-Ray is
> because of those few enthusiasts.
Kind of silly to talk about flaws in something where there's nobody to
disagree with you. It gets kind of boring to say "Hey, Erlang has some
interesting features, but this one sucks", and have everyone go "..."
> That kind of behavior would get old rather fast. What would be the point?
When's the last time (before this) I started a thread that was harsh to C++?
This really wasn't even about C++ as much as "pile on kludges to fix design
flaws", which holds for Linux and Windows and C++ and Perl and PHP and any
number of other systems. That link just happened to be discussing C++ and
was a good example of the sorts of systems that annoy me. I'm not bashing
C++. I'm bashing the design philosophy that leads to things like C++ being
as complicated as it is, like /usr not having users in it, system32 having
64-bit binaries in it, and so on.
If you don't want to address talking about the topic because the topic
covers C++ in addition to a bunch of other systems, that's fine.
> You might think that *I* am obsessed with such a thing as some programming
> language, but perhaps you should really look into the mirror sometime and
> ponder exactly why you are continuing to make these posts which you *know*
> are going to be inflammatory.
I know why I'm making the posts. Language design (and API design and OS
design) is of interest to me. If you don't want to discuss the designs of
languages that include C++, then don't. I'm not attacking you, and I'm not
attacking C++.
> Yes, I have bashed Java and Windows and a few other things really bad.
> However, I do not regularly start threads for the sole reason of pointing
> out flaws in those things (or at least I don't remember doing so in many,
> many years). When some discussion about the subject pops up, then I might
> express my strong opinion, but I'm not on a quest to belittle those things.
I'm not on a quest to belittle C++ either. That web page just happened to be
about C++. If it had been about (say) Perl, I would have said exactly the
same thing.
But I guess if what you're saying is that you don't want to talk about those
things... Andrew is really the only other person here who gets into that,
and he doesn't talk about the system languages.
--
Darren New, San Diego CA, USA (PST)
There's no CD like OCD, there's no CD I knoooow!
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Darren New <dne### [at] san rr com> wrote:
> Warp wrote:
> > Do you seriously not see anything wrong with your behavioral pattern?
>
> I don't know. I'm pretty grown up, I like to think. People discussing flaws
> (or, in this case, design trade-offs) doesn't bother me.
hmm, I pointed a "flaw" in The Incredibles's creator's behavior (not
acknowledging the obvious influences) and you resorted to a plain "f__k you".
I think you are bothered indeed.
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
nemesis wrote:
> Darren New <dne### [at] san rr com> wrote:
>> Warp wrote:
>>> Do you seriously not see anything wrong with your behavioral pattern?
>> I don't know. I'm pretty grown up, I like to think. People discussing flaws
>> (or, in this case, design trade-offs) doesn't bother me.
>
> hmm, I pointed a "flaw" in The Incredibles's creator's behavior (not
> acknowledging the obvious influences) and you resorted to a plain "f__k you".
No, I didn't say that because you pointed out a flaw. I said that because
you said the only possible reason you could conceive of me disagreeing is
that I was too stupid to understand you.
> I think you are bothered indeed.
I'm (mildly) bothered by personal insults. Moreso from people who are smart
and reasonable. I'm not bothered by the fact that you saw similarities in
Incredibles that I didn't.
--
Darren New, San Diego CA, USA (PST)
There's no CD like OCD, there's no CD I knoooow!
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |