Erik Engheim
1 min readMar 18, 2021

--

I have updated the article to answer some of these points. Native compilation is happening in the C# and Java space because they are feeling the heat. As Microsoft found in their survey, there has been people jumping ship because Microsoft has not been able to offer a credible AOT native compilation option.

Go doesn't lack OO, as implementation inheritance was never part of the original definition of OO. Object-oriented isn't defined as whatever Java does, although some people seem to think so.

Yes Go lacks what people have come to think of as OO, but instead it replaces it with what was more of the original idea.

The old Gang-of-Four book stressed composition over inheritance, and Go with its embedding provide a superior solution to this.

Having worked on 3-4 million line C++ projects over many years, I have seen how implementation inheritance tends to be more of a way of sinking a project than enabling it. I think Go made the right choice to eliminate it and replace it with embedding.

I challenge anyone who thinks implementation inheritance is a great idea to provide a concrete problem which could not have been solved in equal or better ways with different approaches.

--

--

Erik Engheim
Erik Engheim

Written by Erik Engheim

Geek dad, living in Oslo, Norway with passion for UX, Julia programming, science, teaching, reading and writing.

No responses yet