How to complain about Go

Source: Internet
Author: User
Tags ruby on rails
This is a creation in Article, where the information may have evolved or changed.

Over the years of existence of Go programming language, the articles with its critique is always popular, bringing a lot Of discussion from both sides. Recently, Maksim Kochkin even created GitHub repo with curated list of articles complaining about Golang ' s imperfection.

So, was it true that ranting on Go flaws is a trend nowadays? With carefully gathered links in the repository above, we can check this! :) Unfortunately, there was only articles in the list, which was a bit disappointing because it ' s not enough for fine Stati Stical analysis, but we can use the this anyway.

Here are a trending line for the number of Go complaints written per year:

The trending is obvious-from one in and five in 2015. Hopefully, the next year would continue this trend line.

But what I liked most about this list-is a brief resume on the major authors ' points. We can measure the popularity of users ' complaints by counting aggregated points. Again, let's do it in Google Sheet document, which are written in Google, and probably involves a lot of production Go Code to let us enjoy this:

Let me write again the top-5 winners:

    • Error handling/no exceptions
    • No generics
    • Stuck in + ' s
    • No OOP
    • Too opinionated

Again, it's a bit disappointing that absolute winner ("error Handling") was mentioned only 7 times. Many thousands of people is using Go every day and only 7 put their major complaint to words in the form of a blog post ? This flank definitely needs + support.

If you don ' t like Go, you may contribute here. Especially if you tried Go before you started complaining on its design. How do I start the article to make a proper effect? Take a look at the these 5 top complaints and choose on which one you want elaborate.

Keep in mind, "error Handling" and "No generics" is absolute winners-you has absolutely no excuse no T to add them to your list. Next, being careful with "no OOP" because it's easy-to-attack by quoting Alan Kay. "Too opinionated" is a good choice, but should being carefully argued so you don ' t look like a grouchy geek rather t Han a thoughtful hacker. "Stuck in the" works best if you want isn't only complain on Go but popularize another modern and objectively g Ood programming language.

But what if it's not enough? There is (more) complaints scored 1 or 2 in the list, not including ones can do up on your own! So-to-help-choice, here is some rules and guidelines on what to properly complain about Go, depending on you P Revious background and experience.

For example, if-come from ...

... Python

We all love Python, so the attack vector should is on the maturity and abundance of libraries. NumPy is a must has point-go still don ' t has a scientific library of that quality. Not sure how SpaceX are able to use Go without one, but whatever, NumPy sells well.

Try not to mention mature libraries like Twisted, requests and various solutions for solving the 10K problem. Just Don ' t mention it. Instead, try to disprove relatively high memory usage in Python. For example, you can say this Python memory usage after goroutines leakage are competitive with Go. Someone from Mozilla said this and so can.

As a bonus, mention that Go slice indexing doesn ' t has convenient-1 index. ' is compiled ' flaw also works here, without any explanation. Just because.

... C++

If you ' re C + + developer, you're in the most vulnerable position, because Go is created as an answer to the C + + problems. Which easily can be muted or presented as powerful features.

Start by demonizing GC. Everyone knows that garbage Collection are an evil and every CPU tact matters. Even if you write simple rest-backend in C + + and it takes 6 months of your life to accomplish it-you still has speed an D NO-GC blissfulness. Stick with that.

As a logical continuation-tell that Go is not good for embedded. Don ' t mention that authors explicitly said that it is never meant as a language for embedded. It ' s a great point anyway. And if your commenters would send you links to embd, Gobot or gomobile, just say that it's not True Embedded or just DISABL E comments.

And, of course, all rants on how Go restricting your from shooting yourself in the foot is also great here. Go doesn ' t make your feel clever than your coworker that bangs he head against the wall trying to understand your code. Why does need such a language after all?

... Rust

Despite the fact that there aren ' t many people in the wild who can claim "background in Rust", there is still a bunch of People from C + + background who is totally in love with Rust. They didn ' t try it in production or even for pet projects, but that's not important. Pure Love doesn ' t need logic. So, many points valid for C + + developers would work for you also. Don ' t forget "zero-cost abstraction" phrase after mentioning how evil GC is.

Cargo is considered-a good solution for dependency management, so attack this side of Go aggressively. No chance to lose here. Also, your key points should be Go's simple type system and lack of pattern matching. Basically, everything that differs on Go from Rust would work here. And that's a lot, so you can write a solid longread. Or both.

... Java

After mentioning generics and exceptions, punch them in the guts and smash them by comparing Java's IDE with Go ' s IDE. Of course, there is no Go IDE, because Go was too simple to require one, but it's bad also. Double kick. It's "Advanced" vs "primitive" and you ' re a winner here.

Next, write about the lack of good debugger (integrated into IDE, of course). How can someone write even simple code without a debugger? Don ' t ask if you really need debugger in Go, much as you need it in Java and why. Stay away from this subject, it ' s slippery.

and the whole range of ' features ' that's you can use with make people understand why Go was bad-from lack of JVM to "lack of basic data Structures ". Take your time and improvise while your IDE starts.

... Ruby

If you come from Ruby and don ' t really like Go, I probably won ' t. Go is quite popular in Ruby community and many Ruby developers, being non-arrogant and pragmatic, fall into Go pretty easi Ly, so your ' re in trouble. Even Basecamp, the guys that made Ruby on Rails, love Go and use it inside. Sorry.

... D

Without any doubts, your main argument (after generics and exceptions, of course) should is the name of Google. It ' s pretty much obvious that popularity of Go was simply a result of a huge money support by Google. Of course, Google pays people a lot to write articles on Go and to organize conferences and meetups. They is so rich, which next year Go community would have 6 international conferences including one in dubai! When D has a company so can do the same for D and the world would understand that Go's popularity is a fake.

Also, Go is not a real system programming language. You can ' t write your own memory allocator with Go. So switch to D.

... Perl

EMM:

... C#

Probably the best strategy here's to attack the simplicity of Go. Simplicity equals primitivity, everyone knows in MS world. Also Go is made by Google, not by MS, so it ' s doomed. There is so many good solutions for modern programming language theory your learn in the college course of c#! But poor people behind Go just is not aware of them. Don ' t hesitate to teach them. You can ' t do pretty much anything with a language that primitive as Go.

Also, mention the most relevant things-no Visual Studio Support (Visual Studio Code ' s Go plugin doesn ' t count). No Debugger in IDE, of course. And no DirectX support, that ' s important.

... Haskell

If you come from Haskell, I shouldn ' t give to any advice. You already must is a professional in mocking Go. It ' s in Haskell 101 course. New Haskell Books contain special chapter "How to Laugh on Go", after all.

Even if you intuitively understand it Go is the more practical than Haskell and entry barrier really matters-keep insi Sting that it had "objectively poor design". Because everyone knows which language has objectively good design.

Conclusion

I hope this article would find its readers. In, we need more articles with rants on go-at least 6 to keep the trend. Some of the articles in the list above written by students and schoolboys, so if you just started CS class and don ' t has Any real-life Experience-don ' t hesitate to tell the world what bad Go was.

After all, the viral effect of the articles with criticism are well known-colleagues and managers send you the link as a Prove that's shouldn ' t use Go in production, without even reading or analyzing its content. The title is usually enough and so don ' t being afraid.

Or.. You can just write some to good code in the language.

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.