The boringness of Go.

Here I am, browsing around the internet when I found out that now Swift is officially open source!

That is awesome news, right? I know. I loved it. I went there, and got a hold of the language.
It’s really powerful, it’s awesome, it has a lot of cool features (even cooler than those of Go).
It also has a nice syntax.

It has structs, protocols that can be attached to structs, extensible types, closures, generics, the whole package.

And I couldn’t be more afraid of it.

Come on. Really? Afraid of a programming language?

Yeah, call me a pussy, but I believe in the Go principle of simplicity. I believe that when you are writing big software, things like protocols, extensions, generics can hide big problems.

Abstraction is actually a bitch. Because is opinionated.

What do you mean?

Just think about it. There are some really good abstractions around the programming world. For instance, SQL. SQL is a awesome abstraction around relational beings.

Once you learn it the right way.

The first time I got my hands dirty with SQL, I almost gave up my course. It was too damn different from programming. I forced my way in, studied, grasped the concepts, and it became clearer with time and effort.

But I had to dive into the abstraction. I had to learn it. Not everyone wants to do it for every programming job they ever put their hands on.

And with Go, we are free of this burden.

Of course, programs will always be written differently, in terms of architecture and organization. Always. That will always be a mental barrier.

But abstractions, like protocols, extensions, classes, come on. They hide the gruesome details. They make everything easy, and hidden. And difficult.

Maybe I’m just getting old and boring. But I enjoy Go’s boringness. It allow us to build really good and straightforward software.

Go is the first language I ever allowed myself to see some source code and understand what is actually going on.

And I think that’s the killer feature.