Is Go an Object Oriented Language?

This article was written by Steve Francia, the author of Hugo. Hugo is an amazing static website engine written in Go. As I’m in the process of learning go I decided to look at Steve’s blog posts trying to find more information about both Hugo and Go.

The article tries to list what makes a programming language support OOP design. It points out a brief information about OOP concepts like:

  • Inheritance And Polymorphism;
  • Single & Multiple Inheritance;
  • Subtyping (Polymorphism);
  • Object Composition

The article describes how and which of those concepts Go supports.

Steve, as most part of modern software development communities, considers Inheritance as a bad practice. In order to fundament his opinion Steve quotes James Gosling (Java’s inventor) and mentions that GoF book discusses at length replacing implementation (extends) with interface inheritance (implements).


comments powered by Disqus