netytan said:
I have to say it; quasi-typical C++ programmer attitude with the language being dumbed down comment
.
i
am arrogant. then again, most good programmers are.
C++ was developed to make programming in C easier and more abstracted by moving up a tier.
from what i've read, stroustrup never intended for C++ to replace C. C is reserved for its strength -- highly efficient, lower-level coding, while C++ was intended to add user-defined datatypes and provide for higher quality libraries (both OTS and custom). so i agree with the "more abstracted" bit.
Ultimately the misguided belief of most programmers that there language of choice is as good as it gets is what turns the learning curve upside down
i don't want to imply that i think C++ is the end-all and be-all of languages. it's not. it excels at my area of expertise, and that's server-tier OO services.
for GUI, i'd rather use something else. for 2-tier web development, i like php. languages are made for specific purposes, and no one language excels at them all.
what bristles me are people designating C++ a poor language for the wrong reasons. yes, it has its quirks and issues, but the availability of operator overloading is not one of them. indeed, it goes a long way towards the goal of creating high-quality libraries.
no one seems to complain that string classes overload operator== and operator=, for example.
I have amazingly high standards and don't think 80-90% of programmers are good programmers
put me in the 98-99% range. (more arrogance
The problems come when you're trying to read code that looks like this:
check your code, a and b are undefined. but i know what you're getting at.
there is
no excuse for creating a class with a confusing interface. when i'm creating classes, libraries and services, my number one goal is to make the API logical and easy for the users of my API to understand and program to.
if i have a choice between making the interface better or the code easier to implement, i will
always choose the former.
my number two goal is to make my implemenation code as easy to support as possible.
C++ gives me the tools to make that possible. disallowing operator overloading would hinder that. that's really the only point i'm making.
I'm not trying to be offensive so please don't take it that way. I just find it amusing that the masses love such a deficinent language and featured abstraction
.
you're not being offensive at all, no worries. regarding C++ being deficient, i'm curious as to what you mean by that beyond granting the ability for developers to write bad code.
i'm also interested in knowing the criteria for a language being deficient. is it as compared to other languages in vogue at the same time? is it looking at how well the language supports its design goals? or is a comparison between languages which work in the same solution space?