Hacker News new | past | comments | ask | show | jobs | submit login

That's why Go is so popular. It's the tooling and user experience that matters.



I'm not sure that macro in this submission shows that Go is better.

Neither Go nor C has static assertions, the macro in questions uses clever techniques to implement one in C, but you probably can't do that in Go. So C is more powerful here.

Another example of clever C macro use is implementation of foreach loop (C doesn't have foreach) in linux kernel, here's question about it:

http://stackoverflow.com/questions/15754236/how-do-i-use-the...


    > Neither Go nor C has static assertions
C11 has:

    _Static_assert(const_expr, fail_string)


Ha, looks like my C knowledge is a bit outdated.

I haven't really used C after I graduated and I remember my professor showing us how to implement static assertion :)


I don't agree that Go's tooling is what makes it popular. Mainly because it's tooling is not very good. All of the vendoring tooling is broken in one way or another, the linters and vet-checkers have questionable advice in some cases, and not to mention that the standard library has so many quirks that come from the fact that Go is trying to be system programming language that hides details about the system from you.

[ Disclaimer: I'm a maintainer of runC and have been programming in Go for many years. But that doesn't mean I have to like the language. Give me C any day. ]


Comparing vendoring tooling for Go and C in C's favor seems odd.

Personally I think Go actually makes a pretty bold statement about dependency management: people don't know what they want. I also have a sneaking suspicion Git and Github's interface in no small part to blame.

Golang for me made me come to one important realization: if I can't build a project by just cloning the git repository, then why the hell not?


Or related: If I cannot build a project by just cloning the repo at any arbitrary location, then why the hell not?

If you have not experienced this before, try cloning a repo that uses Go-1.6-style vendoring anywhere outside the GOPATH.


Or rather, it's why almost every popular tool is popular. Take Rails for instance. It's just that Go competes with C and boy howdy does the comparison look good to anyone who can make the switch.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: