4 ms·
Whoa, how is Go a successor to Python, with completely different philosophy? Especially considering static typing. It's light years closer to C++.
by odiroot 12y ago
Whoa, how is Go a successor to Python, with completely different philosophy? Especially considering static typing.
It's light years closer to C++.
- threeseed 12y agoI would disagree with it being a successor to Python likewise I disagree that it is close to C++. It is more like Java 1.0. A simple, fast and approachable platform for building smaller server side systems apps. I just can't imagine anyone writing larger, monolithic apps with it. Whilst people have been doing it with C++ for decades. Then again Go is in its infancy so will be interesting to see which direction it does take.
- zuzun 12y agoHave you ever programmed C? Almost everything Go has is somehow related to C. Of Nim, Rust and Go, it's Go whose the closest programming language to C. That said, Go is the least suitable C replacement of these three.
- threeseed 12y agoYes. And it's less about the language and more about the platform. There is an ecosystem around C/C++ for supporting large codebases. There isn't anything like it (yet) for Go. And to be honest given that there is a gap in the "market" for a microservices language I can't imagine much being built in the future.
- bkeroack 12y agoThere is an ecosystem around C/C++ for supporting large codebases. There isn't anything like it (yet) for Go. Sorry, does not compute. Go was specifically designed for large teams and big codebases. While I find the new features of modern C++ interesting, the (lack of) tooling is what keeps me away. I simply refuse to write Makefiles or deal with preprocessor nonsense in 2015. "go build" just works. "import github.com/foo/bar" just works. "go test", "go test -bench" just work. Etc.
- Symmetry 12y agoIt has static typing, but on the other hand it's got duck typing and a batteries included standard library. And in practice people tend to move to it from Python rather than C++.
- easytiger 12y agoAnything with garbage collection does not count. For many uses cases it is completely out of the question.
- themartorana 12y agoIt's a successor to Python in that many of the non-Google big name early adopters are big Python shops - Cloudflare, Dropbox, etc. My company was almost all Python on the server side and is now almost all Go. Don't think of "successor" as a similar-but-better language (like I consider C# to be to Java) but in terms of where the community comes from in general. Rob Pike has said how he expected Go to attract C developers and was surprised how it attracted Python-ers in droves.
- cwyers 12y agoFrom a blog post by Rob Pike, one of the designers of Go: "I was asked a few weeks ago, "What was the biggest surprise you encountered rolling out Go?" I knew the answer instantly: Although we expected C++ programmers to see Go as an alternative, instead most Go programmers come from languages like Python and Ruby. Very few come from C++. We—Ken, Robert and myself—were C++ programmers when we designed a new language to solve the problems that we thought needed to be solved for the kind of software we wrote. It seems almost paradoxical that other C++ programmers don't seem to care." http://commandcenter.blogspot.it/2012/06/less-is-exponentially-more.html http://commandcenter.blogspot.it/2012/06/less-is-exponential...
- bsdetector 12y agoI don't think that's an accurate portrayal that they were "C++ programmers" as if to imply they were experts or even proficient at it. Plan 9 doesn't even have a C++ compiler. From his wikipedia bio, Ken Thompson "later refused to work in C++". I think they were surprised that C++ programmers didn't like Go because Pike and Thompson weren't actually C++ programmers. Griesemer however appears to know C++ well.
- kirab 12y agoHistory repeats itself. Same thing happened for Java..
- dragonwriter 12y agoThe approach is closer to C++, but it hits an area where many developers find C++ lacks the kind of clean expressiveness many would like (being more low level than is needed) and Python, Ruby, etc., lack the performance and (in most implementations) support for hardware parallelism. The creators were people who, without Go, reached for C++ for those problems, but I think lots of other devs favored Python, etc.
- hamstergene 12y agoFrom point of view of programming language/compiler theory, Go is of course quite far from any dynamically typed VM-based language. But from point of view of where it would be a good fit in practice, majority of large Python/Ruby projects, like those that are driving millions of websites right now, will greatly benefit from being rewritten in Go, without sacrificing anything important. That can not be said about C++ world — hardly anyone who chooses specifically C or C++ for a new project, over everything that is currently available, would consider Go an option.