Mark Isaacson is a Software Engineer at Facebook, where he works on improving the developer experience for all C++ programmers at Facebook.
Mark is the author of the tech blog “Modern Maintainable Code” that aims to open a dialogue about properties of maintainable code and teach techniques for effective program design.
Mark has a background in teaching and has been giving tech talks for several years now, most of which can be found on his blog.
Code reuse is a tough problem. Duplicated code is almost universally frowned upon, but it's not infrequent that my peers don't know how to restructure things and fix it. The most fundamental techniques for code reuse are a blind spot in the community, misunderstood as being either too simple or too complex to be useful. In textbooks the chapters are enumerated by techniques, rather than problems. This talk will describe problems that motivate using techniques like templates, overloading, tag dispatch, CRTP, mixins, and more to create highly composable code units. The talk will be designed to be accessible to those who've never written a template before and build up to expert level techniques by the end.
The set of code that is simple, easy, and natural to write is forever evolving. Back in the days of C, writing a container for struct meant sacrificing either performance or maintainability, then we got std::vector in C++. Today languages are tearing down more of these barriers, these choices between performance and maintainability. By electing new primitive work units and making bold changes to our compilers, languages like D can vastly improve the expressiveness of your code while at the same time sending your runtime or memory footprint down to O(1). We'll examine an enlarged lifecycle for these modern trends: both the environment in which they were conceived and experimented upon in the D programming language and also how they are reaching more mature languages like C++, where these new features are popping up left and right in language proposals.