- ugly libraries (STL, ATL, MFC, COM) yeah, i said STL is ugly.
- templates (Ruby doesn't need templates since everything is dynamic)
- No language level string data type (our product has at least six representations of strings here and there that need to be converted at the bit level).
- No compiling or linking phase in Ruby. Linking problems can be hairy in large systems.
- Header file hell
- The static keyword (there are four different contexts)
- Difference between a pointer and reference
- public, private, protected inheritance
- Differences between dispatch (and underlying impl) of virtual and nonvirtual methods
- method hiding
- diamond of death
- visibility vs accessibility
- casting idioms (static, dynamic, const, reinterpret)
- ugly libraries (STL, ATL, MFC, COM) yeah, i said STL is ugly.
- templates (Ruby doesn't need templates since everything is dynamic)
- No language level string data type (our product has at least six representations of strings here and there that need to be converted at the bit level).