C++ Programmers unite!
-
So there's all this talk of why C# is better than VB and why Ruby on Rails is just the peachiest thing ever, except that PERL is way hard core and blah blah blah. I found an old C++ T-shirt that I love: "My compiler compiled your compiler" And to me that says it all. C++ is still like driving a manual (sitckshift) car versus an automatic. C++ still kicks any .NET language's bum in terms of speed. C++ still allows you far more annoying and impressive errors than most other modern languages. So C++ devs: Tell us why C++ is just plain old better.
cheers, Chris Maunder
CodeProject.com : C++ MVP
Pah! I learned to program via ATARI Basic: poking the memory to change the OS to make it do what I want - REAL basic programming ;) I learned professionally in C on UNIX. Just an emacs editor over a telnet session. No nice IDE, no Windows and definitely none of this objects marlarkey that C++ developers get such an ego over. Admittedly I now use C#.
I'm largely language agnostic
After a while they all bug me :doh:
-
I certainly don't know all of that in detail. Maybe I'll added a CPU construction book to my bedtime reading list. :)
Simon
Simon Stevens wrote:
I certainly don't know all of that in detail. Maybe I'll added a CPU construction book to my bedtime reading list.
I don't know if I would go THAT far... what he is referring to is CPU instruction pipeline. You'll find a lot of whitepapers at Intel and AMD bragging why theirs is better than the other. Understanding that pipeline is worth your books weight in gold. In the end you understand why some operations in .Net are faster than others, how to find bottlenecks, and design your routines for instruction cache sizes. No matter your language of choice, knowing how the underside of the instruction pipeline in out and through the CPU is worth the time.
_________________________ Asu no koto o ieba, tenjo de nezumi ga warau. Talk about things of tomorrow and the mice in the ceiling laugh. (Japanese Proverb)
-
ghle wrote:
Design a CPU
:laugh: Real programmers just build a custom CPU to perform the actions required for their app. I remember some stuff from school about a simple circuit for 1 bit of memory. something to do with looping the output from a NAND gate back to one of the inputs. It was a long time ago though.
Simon
Simon Stevens wrote:
a simple circuit for 1 bit of memory
Cool, but a little more complex :-\ . It was a Masters computer engineering course. :) The coolest part was to "see" a bit in the instruction word open a gate to load a register. The common perception is you can't touch or feel a "bit." Well, we came awful dang close!
Simon Stevens wrote:
Real programmers just build a custom CPU
Hey, not only a custom CPU, but a custom set of instructions/Op Codes to drive it! :cool: DIY software. Had to hand-code (binary) both the microcode and the applications. Makes one truly appreciate assemblers & compilers, and execution speed.
Gary
-
Rajesh R Subramanian wrote:
You have to draw a line somewhere and the line is drawn at C++
I thought lines were drawn with Logo. :rolleyes:
Dad always thought laughter was the best medicine, which I guess is why several of us died of tuberculosis. I can picture in my mind a world without war, a world without hate. And I can picture us attacking that world, because they'd never expect it.
Now that's one I have not thought of for a Long Time May your sprites fly :-D
-
Chris Maunder wrote:
So C++ devs: Tell us why C++ is just plain old better.
Because it is like a Sting's song: It takes a man to suffer ignorance and smile Be yourself no matter what they say
Great song, great lyrics! :cool:
Cheers, Vikram.
Zeppelin's law: In any Soapbox discussion involving Stan Shannon, the probability of the term "leftist" or "Marxist" appearing approaches 1 monotonically. Harris' addendum: I think you meant "monotonously". Martin's second addendum: Jeffersonian... I think that should at least get a mention.
-
I mis-wrote my original post - you learned machine architecture I believe (did they use RISC processors as examples? :)), but you should also learn CPU micro-architecture. Not just all the parts of a CPU, but how they work together. How out-of-order execution works, the Decode-Execute-Dipatch cycle, how to cause and prevent pipeline and cache stalls, etc. All those things help greatly when writing multithreaded/multicore code so you can prevent each one of your threads from effectively stepping on each other. Unless you do know all that already, then nevermind! :) Peace!
-=- James
Please rate this message - let me know if I helped or not! * * *
If you think it costs a lot to do it right, just wait until you find out how much it costs to do it wrong!
Remember that Professional Driver on Closed Course does not mean your Dumb Ass on a Public Road!
See DeleteFXPFilesJames R. Twine wrote:
but you should also learn CPU micro-architecture. Unless you do know all that already, then nevermind!
If you truly want to understand, don't just learn it, build the friggin' CPU and microcode decoder from parts from scratch. Make a bit do some work! :cool:
Gary
-
Simon Stevens wrote:
Might take the chance to learn some DirectX at the same time
When you do, don't ignore the quaternions! they are worth the time to master, 2/3rds the math, 1/10th on a SLERP animation. It may not help you make a web app, but it is an amazing jump when your CPU line goes from 100% to 20% and you go: :doh: now I understand what all this hootodo is about performance!
_________________________ Asu no koto o ieba, tenjo de nezumi ga warau. Talk about things of tomorrow and the mice in the ceiling laugh. (Japanese Proverb)
El Corazon wrote:
quaternions
Yeah, I remember coming across them several years ago during a uni project. I'm getting all distracted now. I've got to concentrate on this scheduling app ( :zzz: ) I'm writing and stop thinking about 3d maths. :(
Simon
-
Pah! I learned to program via ATARI Basic: poking the memory to change the OS to make it do what I want - REAL basic programming ;) I learned professionally in C on UNIX. Just an emacs editor over a telnet session. No nice IDE, no Windows and definitely none of this objects marlarkey that C++ developers get such an ego over. Admittedly I now use C#.
I'm largely language agnostic
After a while they all bug me :doh:
MidwestLimey wrote:
Pah! I learned to program via ATARI Basic: poking the memory to change the OS to make it do what I want - REAL basic programming
Puke. You took the easy way out w/BASIC. Write in ASM and machine code, including self-modifying code for speed and compactness. Then you'll know what REAL programming is all about. C on UNIX. Yep, did that. Those were great times. You could actually get work done instead of searching a manual every time you wanted to do something new. You'll remember the TI Silent 700? Let you work from home, connecting over the phone line, of all things at 300 or high-speed 1200 baud. :((
Gary
-
El Corazon wrote:
quaternions
Yeah, I remember coming across them several years ago during a uni project. I'm getting all distracted now. I've got to concentrate on this scheduling app ( :zzz: ) I'm writing and stop thinking about 3d maths. :(
Simon
Simon Stevens wrote:
I'm writing and stop thinking about 3d maths.
good because quaternions are 4D math! ;P :laugh:
_________________________ Asu no koto o ieba, tenjo de nezumi ga warau. Talk about things of tomorrow and the mice in the ceiling laugh. (Japanese Proverb)
-
MidwestLimey wrote:
Pah! I learned to program via ATARI Basic: poking the memory to change the OS to make it do what I want - REAL basic programming
Puke. You took the easy way out w/BASIC. Write in ASM and machine code, including self-modifying code for speed and compactness. Then you'll know what REAL programming is all about. C on UNIX. Yep, did that. Those were great times. You could actually get work done instead of searching a manual every time you wanted to do something new. You'll remember the TI Silent 700? Let you work from home, connecting over the phone line, of all things at 300 or high-speed 1200 baud. :((
Gary
ghle wrote:
Write in ASM and machine code, including self-modifying code for speed and compactness. Then you'll know what REAL programming is all about.
Pah! keep your self modifying code and create your ASM punch cards by staring at them hard enough and scaring the holes out of them!!
_________________________ Asu no koto o ieba, tenjo de nezumi ga warau. Talk about things of tomorrow and the mice in the ceiling laugh. (Japanese Proverb)
-
No, it is reflective of
some
programmers, not all programmers let massive memory leaks and sub-standard implementations get off their their desks. And the programmers like that... well, they F***
it up for the rest. There is also the problem where business-side people forget that nine women cannot make a baby in one month - some things just take time to get done right. High-quality code is one of them, and it is worth waiting for. Peace!-=- James
Please rate this message - let me know if I helped or not! * * *
If you think it costs a lot to do it right, just wait until you find out how much it costs to do it wrong!
Remember that Professional Driver on Closed Course does not mean your Dumb Ass on a Public Road!
See DeleteFXPFiles:-D
'With hurricanes, tornados, fires out of control,mud slides, flooding, severe thunderstorms tearing up the country! from one end to another, and with the threat of bird flu and terrorist attacks, are we sure this is a good time to take God out of the Pledge of Allegiance?' - Jay Leno
-
ghle wrote:
Write in ASM and machine code, including self-modifying code for speed and compactness. Then you'll know what REAL programming is all about.
Pah! keep your self modifying code and create your ASM punch cards by staring at them hard enough and scaring the holes out of them!!
_________________________ Asu no koto o ieba, tenjo de nezumi ga warau. Talk about things of tomorrow and the mice in the ceiling laugh. (Japanese Proverb)
Pah! I was so poor I used to have to use my hand as a punch card!
I'm largely language agnostic
After a while they all bug me :doh:
-
Simon Stevens wrote:
I'm writing and stop thinking about 3d maths.
good because quaternions are 4D math! ;P :laugh:
_________________________ Asu no koto o ieba, tenjo de nezumi ga warau. Talk about things of tomorrow and the mice in the ceiling laugh. (Japanese Proverb)
El Corazon wrote:
quaternions are 4D math!
All the more reason to stop thinking about them :)
Simon
-
ghle wrote:
Write in ASM and machine code, including self-modifying code for speed and compactness. Then you'll know what REAL programming is all about.
Pah! keep your self modifying code and create your ASM punch cards by staring at them hard enough and scaring the holes out of them!!
_________________________ Asu no koto o ieba, tenjo de nezumi ga warau. Talk about things of tomorrow and the mice in the ceiling laugh. (Japanese Proverb)
El Corazon wrote:
create your ASM punch cards by staring at them hard enough and scaring the holes out of them
Little pissed off people more than those punch-card chads at a football game! :-O Hey, that self-modifying code was used to cut the wings of (not off) the Boeing aircraft that you likely toy with. :)
Gary
-
Pah! I was so poor I used to have to use my hand as a punch card!
I'm largely language agnostic
After a while they all bug me :doh:
-
And assembler is a result of zeros and ones if you didn't know. You have to draw a line somewhere and the line is drawn at C++. Unfortunately it doesn't matter if you agree or not. I say this inspite of working on .NET for about a year now.
Nobody can give you wiser advice than yourself. - Cicero .·´¯`·->Rajesh<-·´¯`·. Codeproject.com: Visual C++ MVP
Rajesh R Subramanian wrote:
And assembler is a result of zeros and ones if you didn't know. You have to draw a line somewhere and the line is drawn at C++.
Well, there are actually high and low voltage states that we pretend are 0/1 or true/false or on/off or whatever. But yeah, there are always more turtles if you look hard enough. ;) Frankly though, i do believe that any C++ coder worth their salt should at least be able to read and understand the assembly code that their compiler spits out. Abstractions are best when you know what you're abstracting.
Citizen 20.1.01
'The question is,' said Humpty Dumpty, 'which is to be master - that's all.'
-
Chris Maunder wrote:
"My compiler compiled your compiler"
5 For that!
Chris Maunder wrote:
And to me that says it all. C++ is still like driving a manual (sitckshift) car versus an automatic.
I remember I said this, may be a year ago: "Real men drive manual transmission". .NET is undeniably good for developing business applications. But most of the .NET devs ignore (or even don't know) the fact that there are other languages and every language has its own applicability.
Nobody can give you wiser advice than yourself. - Cicero .·´¯`·->Rajesh<-·´¯`·. Codeproject.com: Visual C++ MVP
Rajesh R Subramanian wrote:
most of the .NET devs ignore (or even don't know) the fact that there are other languages and every language has its own applicability.
Are you sure? I grew up with C++ and have done mostly C# because of business requirements needing quick go-to-market products...
"The clue train passed his station without stopping." - John Simmons / outlaw programmer "Real programmers just throw a bunch of 1s and 0s at the computer to see what sticks" - Pete O'Hanlon
-
I don't believe it. Someone else who thinks Linus is as much of a jerk as Grady Booch.
Software Zen:
delete this;
Gary Wheeler wrote:
Someone else who thinks Linus is as much of a jerk as Grady Booch.
Oh, easy now. Blowhards they may be, but i've yet to be forced into cooperating with someone's doomed attempt to shoehorn a complex, legacy process into a set of "Linux Modeling Language" definitions and diagrams. So yeah, for me Booch wins big on the jerk meter and probably still will long after he's dead and burried.
Citizen 20.1.01
'The question is,' said Humpty Dumpty, 'which is to be master - that's all.'
-
So there's all this talk of why C# is better than VB and why Ruby on Rails is just the peachiest thing ever, except that PERL is way hard core and blah blah blah. I found an old C++ T-shirt that I love: "My compiler compiled your compiler" And to me that says it all. C++ is still like driving a manual (sitckshift) car versus an automatic. C++ still kicks any .NET language's bum in terms of speed. C++ still allows you far more annoying and impressive errors than most other modern languages. So C++ devs: Tell us why C++ is just plain old better.
cheers, Chris Maunder
CodeProject.com : C++ MVP
I've still got the one you gave me when we bumped into each other at some conference or another (memory is hazy - alcohol might have been involved). Among my favorites! :-D
Christopher Duncan Author of The Career Programmer and Unite the Tribes Coming soon: Got a career question? Ask the Attack Chihuahua! www.PracticalUSA.com
-
MidwestLimey wrote:
Pah! I was so poor I used to have to use my hand as a punch card!
Ouch. :(( What'd you use for the hole punch?
Gary
ghle wrote:
What'd you use for the hole punch?
a rusty nail. ;)
_________________________ Asu no koto o ieba, tenjo de nezumi ga warau. Talk about things of tomorrow and the mice in the ceiling laugh. (Japanese Proverb)