Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

The comparison to C has always struck me as strange. It has curly braces and pointers, but few semicolons, no pointer arithmetic, garbage collection, and tons of high level language primitives (maps, slices, channels, select, goroutines, a userland scheduler).

Many people, myself included, find it a wonderful language suitable for all sorts of service development whether it's data processing systems or web APIs.



I love Go and I consider it to be the spiritual successor to C, in a way (sort of an anti-C++, which the creators have said they used as an explicit example of what not to do).

Given that it was co-created by Ken Thompson (of Unix/C/Plan9 fame), I think the comparison is justified.


I think the general idea is C++ (not C) in the style of Python.

You still have access to memory/pointers/unsafe, it shares a C-style syntax (go ahead, put in the semicolons if you want!), is compiled but offers the gentle, elegant watchfulness of a Python-like scripting language.

In most cases it can be a relatively drop-in replacement for C++ or Python as a binary. It will never be like C in that there's a lot of overhead and lack of memory control for embedded systems, so you probably can't treat it as a C competitor in any way.


I would say it shares some design philosophy with C: simple, "New Jersey style", imperative, pragmatic, non-generic, explicit control flow.


Another similarity is that both Go and C compile to dependency-free and portable binaries with no VM needed to run them. In my mind, that's the biggest similarity.

And regarding semicolons: you don't use them as much while coding, but the lexer puts them in for you, so they're there on some level.




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

Search: