Thoughts: C++ (is whacked!)
So, at my time on the beach, I inhaled Lippman's "C++ Primer (4th Edition)", attempting to get back up-to-speed on a language I left 6 years ago. At that time, I knew enough to be dangerous, but I didn't know enough programming theory to "get" half the stuff. My instruction on C++ had been "C using iostream", and some cursory stuff on classes and templates.
Anyway, I'm both impressed and horrified at C++. After coming through its ISO standardization, the language picked up some heavy-duty container and algorithm libraries, and they're well thought-out and consistent. However, C++ makes some design decisions that are almost contradictory, and the programmer pays the price for it. It's a compiled, strongly-typed language that allows multiple inheritance and operator overloading. Put a different way: It's a language that lets you prove how smart you think you are, while shooting yourself in the foot, ankle, leg...you get the idea.
C++ tries to be all things to all people--elegant, powerful, abstract, concrete, accessible, portable. Truly, you *can* do anything you want to with it, and squeeze every last cycle out of the hardware you're working on. But, the gotchas involved seem severe. If you want closeness to the machine, and the removal of barriers to hacking, just use C. If you want to think in higher O-O terms, why not use a VM-based language like C# or Java? If you *really* want to be productive, choose a tool like Ruby, Python, or (gasp) VB and get the job done.
Anyway, I'm both impressed and horrified at C++. After coming through its ISO standardization, the language picked up some heavy-duty container and algorithm libraries, and they're well thought-out and consistent. However, C++ makes some design decisions that are almost contradictory, and the programmer pays the price for it. It's a compiled, strongly-typed language that allows multiple inheritance and operator overloading. Put a different way: It's a language that lets you prove how smart you think you are, while shooting yourself in the foot, ankle, leg...you get the idea.
C++ tries to be all things to all people--elegant, powerful, abstract, concrete, accessible, portable. Truly, you *can* do anything you want to with it, and squeeze every last cycle out of the hardware you're working on. But, the gotchas involved seem severe. If you want closeness to the machine, and the removal of barriers to hacking, just use C. If you want to think in higher O-O terms, why not use a VM-based language like C# or Java? If you *really* want to be productive, choose a tool like Ruby, Python, or (gasp) VB and get the job done.
Comments
Post a Comment