Live data from Hacker News

Go is amazing, period.

poincare101.blogspot.com

151–160 of 241 posts

Re: Go is amazing, period.

#151
post #142
post #99

Earlier quoted context omitted.

5 minutes isn't fair. I took a look at http://shootout.alioth.debian.org/u64q/benchmark.php?test=al... first. OK so Go is about on par with Mono's C# performance and uses up to a 1/3 of the memory with code that is more concise. That's cool because it means I'm not sacrificing anything over the platform I specialize in (C#; although the last time I looked at the Alioth C# code I thought I saw some obvious improvement…

It seems you deleted your comment asking why you were downvoted. Here's why you were downvoted: > Way more than 5 minutes. Where are generics or do I have to learn some new construct? Wait a minute, is this thing object oriented or what? If not, why not? Do I have to learn some new philosophy? Already feeling a sense of dread having been through this game 10s of times before with other languages. If you didn't get pa…

I think the "Where are the generics" is the bigger issue there.

Re: Go is amazing, period.

#152
post #105

Earlier quoted context omitted.

Two things. 1) Have you used Go? Your comments indicate to me that you have little Go experience - thinking in Go is quite different from thinking in C. 2) One line counter-example to disprove your negative-work argument: goroutines. Also known as: CSP-style concurrency in a procedural language. I urge you to read up on goroutines. There are quite a few examples on the golang site of how you can use this feature to g…

Go routines + CSP are easily done in all mainstream languages. Java: java.util.concurrent .NET Task Parallel Library C++ Parallel Patterns Library Threading Building Blocks Click Cilk Plus D Actors + std.concurrency Erlang Actors Scala Actors Haskell STM Clojure STM There are good things about Go, but people should learn other programming languages properly, before doing comparisons.

Threads are different from goroutines. A Go program can create 100'000 goroutines, if it makes sense for the algorithm. Try doing this with threads... Super-cheap threads open many possibilities, it's a significant change in how you think and design programs.

Among your examples, those that are comparable to goroutines are all for functional languages. There's nothing wrong with functional languages, but it's far from "all mainstream languages".

Re: Go is amazing, period.

#153
post #67

Earlier quoted context omitted.

Goroutines are multiplexed onto a set of threads defined by the Go program. They're not each a full thread; it's more like Stackless Python's version of threads. http://www.stackless.com/

Good point. Since the OP was talking about execution speed, I thought he was using the word thread to refer to OS threads.

Even still, performing number crunching on 4000 Go thread seems like a bad idea.

Re: Go is amazing, period.

#154
post #101

Earlier quoted context omitted.

I usually wouldn't respond to mean comments, but, this one really throws me off (I'm the OP). There is a very strong difference between "cannot write" and the need for something to be simple. I can definitely handle C/C++, and I don't think writing something in a higher-level language changes that. If something is doing processing with 4000 threads with around 10 years worth of by-the-minute data, it sure as hell wil…

Did you try Haskell? Knowing Haskell makes reading about Go a very underwhelming experience.

Knowing any ML makes it pretty underwhelming.

Re: Go is amazing, period.

#155
post #147

Support for Unicode as a groundbreaking language feature? Closures (and first-class functions) as a major achievement? I don't want to sound smug, so I won't mention any languages I'm comparing to — but seriously, unless you've been living in Python-land, those things are nothing to write home about. I'm surprised this is getting so many upvotes. If I were to praise Go, I would concentrate on something innovative — c…

Closures and first-class functions aren't an achievement. Closures and first-class functions in a language low enough and fast enough level for systems programming? That's an achievement. Same for unicode. These aren't just features. These are features done fast.

Re: Go is amazing, period.

#156
post #142

Earlier quoted context omitted.

It seems you deleted your comment asking why you were downvoted. Here's why you were downvoted: > Way more than 5 minutes. Where are generics or do I have to learn some new construct? Wait a minute, is this thing object oriented or what? If not, why not? Do I have to learn some new philosophy? Already feeling a sense of dread having been through this game 10s of times before with other languages. If you didn't get pa…

I think the "Where are the generics" is the bigger issue there.

Why do you feel that? From the Go FAQ, which now I feel obliged to at least read in its entirety because of how much heat this post has stirred:

"Why does Go not have generic types?

Generics may well be added at some point. We don't feel an urgency for them, although we understand some programmers do.

We haven't yet found a design that gives value proportionate to the complexity, although we continue to think about it. Meanwhile, Go's built-in [functionality] mean in many cases it is possible to write code that does what generics would enable, if less smoothly.

This remains an open issue."

Clearly the designers of Go consider generics a topic worthy of debate.

Re: Go is amazing, period.

#157
post #25
post #8

A lot of great and capable languages are overlooked. The question is how do they overcome the opinion, hearsay and preferences that are louder than the truth? Too few devs: - truly give something 5 minutes before jumping to their foregone conclusion. - admit that most languages with a decent capable and decent programmer are all, pretty equally equipped. - every language + framework has it's pros and cons.

Go has the advantage of being developed by Rob Pike and Ken Thompson. It also potentially has the marketing muscle of Google behind it, although the most I've seen so far is free stuffed Gophers at OSCON. Type safety, easy concurrency, static checking, C-like syntax, fast compilation time, concise syntax, etc. Java is ripe for replacing as the default language for (new) large systems. The replacement could be another…

Unfortunately Go still lacks generics, something that will hinder it from being widely accepted from the Java/C# crowd, for good reason. There are some good arguments to be made for why Go's error handling is subpar as well that I think could disqualify it for a lot of people.

Re: Go is amazing, period.

#158
post #31

i truly believe go contributes negative work to society. it's basically C/C++/Java/C# with syntactic sugar except it's different enough to get bored programmers to waste their precious time reporting all their code. if you want to learn a new language, actually learn a new language. learn a language that's actually breaking the mold in terms of how we communicate with computers. think at a higher abstraction level th…

Agreed. I've looked at Go quite a bit and I can't figure out what new problems it solves, or how it solves existing problems better than previous procedural/OOP languages. How is better than 'D' for example. How is it better than Java? If you want a fresh look at systems programming then leaning Ocaml or Haskell would be a much better option because you will learn to solve problems in a new way, not just with slightl…

How is better than 'D' for example.

One thing I really like in Go is how small the language is.

Re: Go is amazing, period.

#159
post #103

Earlier quoted context omitted.

It doesn't matter what "most people use". Both compilers are equally accessible with the new go command ( http://weekly.golang.org/cmd/go/ ). People who find their programs faster with gccgo will use gccgo, and vice versa. Not competitive with "modern C and C++ compilers"? There are few real world programs that are improved by code generation micro-optimizations, and even for those that are Go is still competitive. h…

"There are few real world programs that are improved by code generation micro-optimizations" I don't know how to convince you of the fact that this statement just isn't true. Consider the rasterization software you're using right now in your web browser. Micro-optimizations hugely matter for blitting and tessellation. Consider video decoding (or encoding!). Using SSE instructions instead of going word-by-word or byte…

> Read Dark Shikari's blog posts about x264 if you want to see how much good use of SSE matters for video encoding.

Like http://x264dev.multimedia.cx/archives/486? "Now that I’ve written a thousand or two lines of assembly code..." etc. Programmers who know and care about these processor-level micro-optimizations use assembly code, for which by definition you do not need a compiler.

Then again if you really care about graphics performance, you're using a GPU in which case there is no compiler since the driver is just an opaque binary blob.

Re: Go is amazing, period.

#160
post #101

Earlier quoted context omitted.

I usually wouldn't respond to mean comments, but, this one really throws me off (I'm the OP). There is a very strong difference between "cannot write" and the need for something to be simple. I can definitely handle C/C++, and I don't think writing something in a higher-level language changes that. If something is doing processing with 4000 threads with around 10 years worth of by-the-minute data, it sure as hell wil…

Did you try Haskell? Knowing Haskell makes reading about Go a very underwhelming experience.

On the bright side, waiting for the Haskell compiler to grind away means you have plenty of time to read up on Go.
Post reply on HN