
Ask HN: What's not great about Golang? - myf01d
There has been an active good thread about what&#x27;s not great about Elixir. I come from Python&#x2F;Django background, I&#x27;ve been thinking to rewrite a serious project of mine to Go because it&#x27;s much faster and economic in terms of memory footprint. I need to know some the disadvantages of the language.
======
christophberger
You are absolutely right to ask about possible downsides of a language before
deciding to make the switch.

However, there is a problem with your question: Define "not great".

Every programming language has - and lacks - specific features, and this can
be either great or not great, depending on who you ask.

For example, Go has no OOP type hierarchies and hence no inheritance and no
polymorphism in the OOP sense.

Ask two persons about their opinions on this, and one will answer, "What, no
inheritence? Total crap!", and the other one says, "Wow, that's great! No more
projects that have gone unreadable and unmaintainable due to blown type
hierarchy trees." Both of them may be right - from _their_ perspective.

It also depends greatly on what you plan to use the language for. Take
generics as an example. If you work in the data sciences realm, you would want
generic programming for your numeric libraries, or for generic data
containers. So Go would not be the language for you. On the other hand, many
would never need generics at all in the area they work, and many even _love_
the absence of generics and other complicated language constructs because it's
precisely this what keeps the language definition small and the compiler
blazingly fast.

Bottom line - take a closer look at the language features - both the ones that
exist and the ones that were left out - and decide for yourself if this this
is what _you_ need for _your_ project.

I chose Go in 2011 as my favourite "personal" programming language, and I
don't regret it. Finally, I have a language that is clear and easy to read,
that has no "magic" features that you never really can completely explain how
they work, that compiles insanely fast, that cross-compiles to other
architectures, that needs no pre-installed VM (ever struggled with Java VM
version incompatibilities?), that has first-class language support for
concurrency, and so on and so forth. I know about the downsides but they never
have been an issue _for me_.

------
alrs
You're asking three questions:

1\. What is wrong with the language syntax?

2\. What is wrong with the implementation?

3\. What is wrong with the community (other people's code, libraries,
packaging, docs)?

Question 1 would lead to a pretty boring discussion, dominated by third-year
CS students and fanboys of esoteric languages. Question 2 is almost as bad as
question 1.

~~~
myf01d
I didn't ask any three questions, you did!

~~~
alrs
If you're game for watching Go, Erlang, Rust, Clojure, and Hakell fans
pontificate about languge theory all the way to the right side of your screen,
be my guest. Enjoy your Saturday night.

