Jeremiah Flaga My thoughts and experiences on programming, life, atbp.

Some of our masters went wrong; but they admitted it


A few days ago, I learned about Mattias Petter Johansson or MPJ from reading the article “11 Programmers Who Changed the Game”. I found it on facebook, posted by John Sonmez of

I really liked this statement attributed to him:

“Are we forever cursed to do this tooling rodeo, where we try to hold on to the job market for dear life? Constantly learning new tools as they pop up all over the place like a bizarre game of whack-a-mole?

Well, instead of trying to predict the future, which we as humans are really bad at (take a look at Sci-Fi from the 60’s), instead you should learn the stuff that doesn’t change around a lot. Learn the things that have been known since the 70’s and has been true since. Learn programming in general.”

I learned a similar approach to learning from John Sonmez …

“I think the best way to improve your skills and to learn what you need to do is to do the learning as close to the time you need the information as possible – just-in-time learning.”

… and from Uncle Bob Martin

“… in that same 40 years software technology has barely changed at all. After all, we still write the same if statements, while loops, and assignment statements we did back in the ‘60s…”

but I digress.

And because I liked that statement of MPJ so much, I tried to watch some of his videos the next day – the Composition over Inheritance and the Factory Functions in JavaScript videos.


MPJ, Guitly!

Wait! what?

“ milliseconds”

Oh! Based on his accent, maybe he is not a native English speaker (like me). Maybe that is how they say numbers in the place where he grew up!

I did not mind that seeming mistake that much.

But when I read the comments…

MPJ milliseconds mistake

… it was really a mistake! :open_mouth:

But the good thing is that he admitted it. Wow!


John Sonmez, also Guilty!

Another good thing is that MPJ is not alone in the mistake-committers universe.

(Another story coming!!!)

While googling for more information about “Composition over Inheritance” at and, I came across this old post by John Sonmez: Inheritance is Inherently Evil.

I usually read the comments section of the articles I read.

And wa-la…

JSonmez-contrived-mistake mistake

What a coincidence!

Both MPJ and John Sonmez are in the “11 Programmers Who Changed the Game” I cited above. And both experienced committing mistakes. And both are masters of ours in some way.

Conclusion: We are all guilty!

So, to conclude all of these, in this imperfect world, it’s perfectly okay not to be perfect; but we should be willing to admit that we committed a mistake when we commit one. Kung sa bagay, perfect people are deceiving themselves – because all have sinned and fall short of the glory of our Creator (Romams 3or6:23). (But, of course, the gift of God is eternal life through Jesus Christ our Lord.)

This is the reason why I really like the idea of doing projects in a team – because each one of us knows only some things; but many of us knows many things. This can help minimize errors; and this can help maximize learnings.

Update (March 22, 2017): Uncle Bob also admitted a mistake

In his blog post last March 3, he said this about the one-to-one correspondence between unit tests and production code:

I used to tout this as an advantage because I could find every unit test by simply putting the word “Test” after the class that was being tested.

He also said something that he learned in the last 16 years about TDD.

As the tests get more specific, the production code gets more generic.

I do not yet fully understand what that means. I hope he will explain that more later.

… Or maybe I should already start practicing TDD so that I will understand that statement!