— Presentation Slides, PDFs, Source Code and other presenter materials are available at: …



  1. Sorry, this talk is simply wrong.

    1. Math is important for fields which require it. E.G animations, energy, etc. I'm a desktop developer who specialize in security, and except for very basic things, you don't really need math for it.

     2. "Generic programing" is a concept. templates and runtime polymorphism is the way to achieve it in C++. obviously, templates should be used when one has the possibility to implement a component both by templetaizing it and by using rumtime polymorphysm. this is because when a component is templatized, the compiler has a chance to enforce type checks on the code.

    3. "the difference between Efficiency and Performance" – again, this point is simply wrong. the problem junior C++ developers have is that they over-try to optimize EVERYTHING , and I mean EVERY SINGLE LINE OF CODE for the sake of.. performance. what junior C++ developers should understand is that performance is a thing only when it's needed. one should write clear, minimal, safe, modern C++ without thinking about performance , and optimize later on , if it's needed.

    4. smart pointers ARE panacea, the question is "for what disease?" this entire point is presented badly. In my experience, bad C++ tend to be one of these two: "C inside classes" and "Java with raw pointers".
    the first tends to over use memory allocations, naked new + delete, C pointers, hand coded algorithm etc. etc.
    the second one tends to new every object out there, use gazillion inheritance, java-style-interface, gazilion factories and builders.

    The problem is that some new C++ developers, especially from the "Java with pointers" school, tend to use smart pointers to imitate a GC'ed language by over using smart pointers everywhere .

    one should use (the order implies usage importance)
    1) objects on the stack
    2) references and iterators
    3) objects held by unique pointer
    4) object held by shared pointers
    5) C pointers

    if a line of code can be implemented by multiple choices from this list, one should choose the highest one.


Please enter your comment!
Please enter your name here