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

I imagine using Go to write high-performance code or interact well with system libraries is not easier or simpler than a C++ approach, and certainly having worse results.

Also, the comparison to CS/JS seems unfair as Go is not just a syntax change to C++ and has very different a programming style and design goals.



Maybe it would be better to learn more about Go and rationally evaluate its use in those cases rather than using your imagination.

I'm not sure what you mean by unfair. Its certainly far from an exact analogy but there are interesting similarities.

That is true that Go is not just a syntax change to C++ and that it has a very different programming style. Many of the design goals of Go may be different, but maybe not quite as many as you think. My impression is that a primary design goal for Go is to be a powerful systems programming language allowing high performance processing, especially (but not instead of) via parallelism.


I based my assumption off of a quote I heard that was along the lines of, "It is often better to write in the language of the OS when doing systems programming." My personal experience with FFIs and C bindings was extremely boring and tedious. C and C++ may be worse languages but are the obvious choice when dealing with libraries written in their own language.

> My impression is that a primary design goal for Go is to be a powerful systems programming language allowing high performance processing, especially (but not instead of) via parallelism.

That seems true, although unfortunately the current implementation isn't there yet judging from the Benchmark Game:

http://shootout.alioth.debian.org/u32q/which-programming-lan...

The top implementations for languages like Haskell and CL are both higher level _and_ faster than Go's.

I can't agree more with your quote, "selection of base technologies, [...], is generally a NOT rational process, but rather an emotional and subconscious one." Let's face it, Go is only popular because it's creators are popular. There's nothing really wrong with it, but there's also nothing it truly shines in.


Specifically say you want an application which is both highly concurrent and also binds to some C libraries. How does that actually compare in terms of complexity, ease of adaption for someone with a traditional imperative background, tedium and performance to C/C++ or Haskell/CL?

http://golang.org/doc/articles/c_go_cgo.html

I would also argue that although Haskell and Common Lisp are higher level, they have other issues with complexity, syntax and possibly the actual paradigm, libraries, etc.


>>although unfortunately the current implementation isn't there yet judging from the Benchmark Game<<

The benchmarks game Go programs are notably faster when compiled with 6g for x64 --

http://shootout.alioth.debian.org/u64q/which-programming-lan...




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

Search: