Skip to content

Comment on Objective-C Lessons from Goparent

Comments

> Go is procedural and Objective-C is object-oriented

Go is as 'object oriented' as any other modern language. It is just a different version of object-orientation than the norm, namely: it has no type (or object) hierarchy and types instead of classes. Not that the 'norm' here is object oriented either, at least ont by the definition of OOP's inventor.

http://golang.org/doc/faq#Is_Go_an_object-oriented_language

An imperative language can be object oriented or not. C++ is an imperative language (and according to the inventor of the term 'object oriented' C++ was not his idea of the concept).

  I invented the term Object-Oriented, and I can tell you I did not have C++ in mind.
http://en.wikiquote.org/wiki/Alan_Kay

It is more usual to put functional & concatenative languages on the other side of the coin to imperative languages. Whether a program could be read as a list of as a tree was once seen as fundamentally different. Now we realise that being concurrent is just as important, if not more so. Go is a concurrent language.

These labels are, admittedly, all grey and fuzzy. Alan Kay was thinking of Lisp when he first coined the term OOP.

http://userpage.fu-berlin.de/~ram/pub/pub_jf47ht81Ht/doc_kay...

It is the Message passing in Objective C that makes it closer to the original definition of 'Object Oriented' not the Type Hierarchy.

  OOP to me means only messaging, local retention and protection and 
  hiding of state-process, and extreme late-binding of all things. It 
  can be done in Smalltalk and in LISP. There are possibly other 
  systems in which this is possible, but I'm not aware of them.
Go's real strength for modern server software writing is in it Concurrency. It is this that makes it important and my first go-to language for anything server-side, especially any problem requiring the simultaneous serving of thousands of clients.

Whether Go is or isn't object oriented is an irrelevance. Goroutines and channels are what gives the language its elegance and power.

If you don't understand this you are fundamentally misunderstanding what Go is all about.

AboutSource Built by g1lg1l

Hackerly is an independent reader for Hacker News, built on the public HN API. Not affiliated with Y Combinator.