Thomas Becker's Homepage



My Startup Company
Free Software Utilities
On Software Development
Guitar Playing

Articles on Software Development

I used to be a prolific writer for C/C++ Users Journal, Dr. Dobbs Journal, and others, writing mostly about C++, the STL, generic programming, and multithreading (see my list of publications). When it comes to writing about software development, the days of ink and paper are definitely over, and I don't think anybody is missing them. I currently have five articles on software development online, one about JavaScript, three about C++, and one theoretical math/CS paper:
Object-Oriented Programming in JavaScript Explained
Beginning with ECMAScript 6, JavaScript supports object-oriented programming with classes. Before that, OOP was supported only by means of constructor functions and prototypes rather than classes. In view of the fact that we all have to deal with legacy code every once in a while, JavaScript programmers are well-advised to study the old way of doing OOP in JavaScript, despite the fact that they will probably not use it in their own code. This article explains legacy OOP in Javascript with constructor functions and prototypes.
Two General Purpose Algorithms for Counting Permutations with Consecutive Sequences
This is actually more of a mathematical paper than an article on software development. It contains mathematical proofs of the correctness of the algorithms for counting permutations with consecutive sequences. The algorithms themselves are available on my github page.
On the Tension between Object-Oriented Programming and Generic Programming, and What Type Erasure Can Do about It
This is a peer-reviewed article published by The C++ Source.
C++ Rvalue References Explained
This article is self-published and has not been peer-reviewed in the traditional sense. However, it has been #1 in Google and Bing searches for “C++ rvalue references” and similar search terms since 2011.
C++ auto and decltype Explained
Some of the people who read my article on C++ rvalue references (see above) have asked me to explain other features of C++11 as well. This is not something that I want to do systematically and comprehensively, because I lack the time to do so. However, I found the subject of C++ auto and decltype interesting enough to write about it. The article is self-published and has not been peer-reviewed in the traditional sense. However, it has been at or near the top in Google and Bing searches for “C++ auto and decltype”, “C++ auto”, and “C++ decltype” since shortly after its publication in the fall of 2013.