So you want to be a real programmer?

Started by
60 comments, last by Alpha_ProgDes 12 years, 11 months ago
C++ takes a lot of heat because it doesn't conform to today's fad ideas of mainline programming (this is IMHO, of course :P) namely: Strict adherence to OOP principles, and type safety. C++ wasn't designed to be an OO language, but rather to give you the ability to write OO code if you chose to. It was not really written to be type safe because strictly enforcing type safety can limit programmers, to a certain degree. It is a language of choice, designed to support multiple paradigms. Honestly, I think pure OO and type safety are both overrated... just like you should use the right tool for the job, you should use the right paradigm for the job -- and sometimes that is somewhat subjective. As for C++ being dangerous: Sure it is... it makes no effort to hold your hand. If you or I, as programmers, mess up then it won't work properly... because we messed up. The idea is to learn the tools available, apply good design skills (and I tend to think at least some degree of creative intuition), and be careful. If something is broken, take responsibility and fix it. Java/C# have somewhat different approach... They are "safer" to work in as often times you won't go quite as humorously or terrifyingly wrong, and yet they somewhat restrict you from trying the crazy idea which later turns out to be brilliant, etc etc etc. Of course, many will disagree, that is fine. When it comes to it, C++ is just as valid a language as Java/C#/whatever depending on use, and on programmer comfort and preference.
There was a saying we had in college: Those who walk into the engineering building are never quite the same when they walk out.
Advertisement
You know, when I started programming, I read a ton of posts on various forums that said pretty much what the OP said in his. I wish I had just believed what I'd read. I kept on going with C++, and although I did eventually learn to do some fairly cool things with the language, my productivity went up big time the second I moved to C#. At first, I definitely felt like it wasn't Real Programming, but then I thankfully evolved and grew a brain. Now I'm genuinely finishing something (be it a full application or just a feature) on a daily basis, which never really happened during my time with C++.

The moral of the story? Don't be an asshat. It might feel manly to take on the bigger beast, but it's better to just make things easier on yourself.
I think its just related to if the language has good enough performance :P

After 50 years well be using fully interpreted languages so the OS can control the programs better.

o3o

It's like a Pokemon Battle! Even if you have a LvL 100 Pikachu, it's Thunderbolt won't work against Brock's LvL 9 Onix....

It's like a Pokemon Battle! Even if you have a LvL 100 Pikachu, it's Thunderbolt won't work against Brock's LvL 9 Onix....


Is it ok for me to be completely baffled by your analogy? :)
The "real" programmer is the one who answers "yes sir!" when asked and goes about, you know, the actual business of programming. Your macho C++ skills won't help you when I slam my fist in the table and puffs that cigar smoke in the air asking you to make due with Java for the next three ungodly months because we just got a contract for it...or COBOL perhaps? People do, indeed, in fact still use that ancient mythical beast of a programming language. But, we're forgetting that we must remain C++ macho men here! In fact, your machoness have just earned you a promotion to independence free from the company's silly "languages"!

See the positive, now you can handle unhandled exceptions and undefined behavior all day long! :)
"I will personally burn everything I've made to the fucking ground if I think I can catch them in the flames."
~ Gabe
"I don't mean to rush you but you are keeping two civilizations waiting!"
~ Cavil, BSG.
"If it's really important to you that other people follow your True Brace Style, it just indicates you're inexperienced. Go find something productive to do."
[size=2]~ Bregma

"Well, you're not alone.


There's a club for people like that. It's called Everybody and we meet at the bar[size=2].

"

[size=2]~

[size=1]Antheus
C++ sucks because of it's (lack of) memory management and arcane syntactical constructs.

Java sucks because it's a pain in the butt for deployment to non-technical users.

C# sucks because it prevents you from getting down-n-dirty with the bits and bytes when you need to.

VB sucks because of it's overly-verbose syntax.

COBOL sucks because ... well... ADD SUCK TO COBOL, MOVE COBOL TO SUCK PILE ... it's COBOL.

Scripting languages suck because the performance needed just isn't there.

On the face of it, every programming language sucks to some degree and in some way that others don't. That's what it's all about. You have a problem. You need to solve it. You analyze and understand the problem and pick the most appropriate tool for the job. Sometimes you need more than one tool, and sometimes the tool that's good at one part of the job is hopelessly useless at another. If you're a langauge zealot or a one-trick-pony you'll never get this.

Direct3D has need of instancing, but we do not. We have plenty of glVertexAttrib calls.

Well said mhagain... and I should have figured my little COBOL snark would get out of control :lol:.

by the way, my intent before was not so much to evangelize C++ but to try to level the playing field as I tend to think C++ in particular takes a lot of flak compared to other "modern" programming languages. Apologies for any confusion
There was a saying we had in college: Those who walk into the engineering building are never quite the same when they walk out.

C++ takes a lot of heat because it doesn't conform to today's fad ideas of mainline programming (this is IMHO, of course :P) namely: Strict adherence to OOP principles, and type safety. C++ wasn't designed to be an OO language, but rather to give you the ability to write OO code if you chose to. It was not really written to be type safe because strictly enforcing type safety can limit programmers, to a certain degree. It is a language of choice, designed to support multiple paradigms. Honestly, I think pure OO and type safety are both overrated... just like you should use the right tool for the job, you should use the right paradigm for the job -- and sometimes that is somewhat subjective. As for C++ being dangerous: Sure it is... it makes no effort to hold your hand. If you or I, as programmers, mess up then it won't work properly... because we messed up. The idea is to learn the tools available, apply good design skills (and I tend to think at least some degree of creative intuition), and be careful. If something is broken, take responsibility and fix it. Java/C# have somewhat different approach... They are "safer" to work in as often times you won't go quite as humorously or terrifyingly wrong, and yet they somewhat restrict you from trying the crazy idea which later turns out to be brilliant, etc etc etc. Of course, many will disagree, that is fine. When it comes to it, C++ is just as valid a language as Java/C#/whatever depending on use, and on programmer comfort and preference.


good points there.
heres another one:
it does not force you to do things in a specifiec mannor, i can do thread however i want, or i can read files however i want.
but the down side is that there are a lot of ways to shoot yourself in the foot, but when you have learnt that shooting yourself in the foot is not the way forward you do it in a better way :)

Never say Never, Because Never comes too soon. - ryan20fun

Disclaimer: Each post of mine is intended as an attempt of helping and/or bringing some meaningfull insight to the topic at hand. Due to my nature, my good intentions will not always be plainly visible. I apologise in advance and assure you I mean no harm and do not intend to insult anyone.


C++ sucks because of it's (lack of) memory management and arcane syntactical constructs.


then dont use it.
if you cant handle the controll, use another language


C# sucks because it prevents you from getting down-n-dirty with the bits and bytes when you need to.


then learn C/C++


VB sucks because of it's overly-verbose syntax.


i also dont like the syntax, but it is supposed to be easy to learn for the non programmers.


Scripting languages suck because the performance needed just isn't there.


Lua can be "Compiled"(or so ive heard, so it is a lot faster)


COBOL sucks because ... well... ADD SUCK TO COBOL, MOVE COBOL TO SUCK PILE ... it's COBOL.


it appears that COBOL "sucks" for no apparent reason.


Java sucks because it's a pain in the butt for deployment to non-technical users.


well, thats where all the fun is :cool:

Never say Never, Because Never comes too soon. - ryan20fun

Disclaimer: Each post of mine is intended as an attempt of helping and/or bringing some meaningfull insight to the topic at hand. Due to my nature, my good intentions will not always be plainly visible. I apologise in advance and assure you I mean no harm and do not intend to insult anyone.

This topic is closed to new replies.

Advertisement