Hacker News new | ask | show | jobs
by rabbitfang 5086 days ago
Go feels to me like it is trying to combine C and Python. Much more efficient than Python, but not as efficient as C. Much more expressive than C, but not as expressive as Python. I can't quite decide if that's combining the best of both worlds, or compromising on both fronts.

What's up with the official Go binaries being incompatible with RHEL 5? I might have another look in about a decade or so.

3 comments

> What's up with the official Go binaries being incompatible with RHEL 5? I might have another look in about a decade or so.

Go runs on RHEL 5.2 and above (released in May 2008, and there have been 7 further point releases since). If you REALLY want to run it on 5.1 and have gcc then you can build your own Go tool chain in about 2 minutes.

Your whole post is FUD. You don't know anything about Go yet offer a negative assessment. Why bother?

Fact: C is faster than Go:

http://shootout.alioth.debian.org/u32/benchmark.php?test=all...

Fact: Python is more expressive than Go (less code):

http://shootout.alioth.debian.org/u32/benchmark.php?test=all...

If I wasn't interested in Go I wouldn't complain about not having binaries. You may not be running RHEL 5.0 but there are many organizations which still have many systems on it. It's not always up to Joe Developer to decide to upgrade the OS on every box in an organization. Perhaps I need to know more about building go to compile my own binaries, but not having to deal with C is one of the reason's I was looking at Go in the first place.

How is this FUD? C is faster than Go, Python takes less code than Go and the binaries don't support RHEL 5.0. I thought my post wasn't particularly biased, but I'm pretty shocked at the reaction I got :(

There is compound failure at your organization as running _5.0_ is reckless and dangerous.
You do realise that security patches are still being provided for even RHEL 3? https://rhn.redhat.com/errata/rhel3els-errata.html
you seem to be presenting a false dichotomy. can't go be a success in some place in between c and python?

my haskell is faster than python and more expressive. therefore you should stop using python immediately, right? of course not, because anyone using the shooutout to make sweeping generalizations has of course read the massive disclaimer warning against that...

Go does fall somewhere between the two, which is what I was getting at. Whether that's a good or a bad thing was what I hadn't made my mind up about. I like the idea of something that's expressive and fast, my thoughts are currently that it could to be more expressive.
enneff: his post is FUD and you are right and on every Go thread here, there are always some people to needlessly bash it. And while I appreciate your frankness as a developer advocate for Go, I think your points would go over more smoothly if you weren't so defensive about it. I notice you have been a bit curt with the criticisms.

I like Go, and I have also seen that nearly all people who actually get to the step of writing Go code also like it. It doesn't look too good on paper (compared to Clojure etc) but it works really well in practice and that's awesome.

You're right, I could have been more even handed. I just get frustrated when people bring nothing but negativity, seemingly for negativity's sake alone. I should just respond on a purely factual level, but sometimes it's hard.
In order to be FUD I would need to be spreading false information: http://en.wikipedia.org/wiki/Fear,_uncertainty_and_doubt

As I have pointed out everything in my post was factually accurate. I had no intention of spreading misinformation.

Learning a new language is an investment and by investing (or not investing) you have made a commitment to that choice. People usually continue to justify/rationalize that decision long after the original choice.

Although your post may not be considered "spreading misinformation", it seems like an "attempt to influence perception by disseminating negative and dubious [...] information".

The bottom line is that people who have committed effort into Go/Clojure/Scala/etc tend justify it by hyping it up a bit. Those that decided to not commit any effort (or commit effort in a different/competing language) tend to justify their choice by bashing the language publicly. If you decided to ignore Go and stick with C/C++/Java/Python, fine, that's your prerogative. But why come to a thread about it and post about how you are going to ignore it? Do you want others to ignore it as well? Why? The truth is you probably didn't consciously decide to do it. But it happens all of the time in discussions online and offline.

more info:

https://en.wikipedia.org/wiki/Confirmation_bias tendency of people to favor information that confirms their beliefs or hypotheses

https://en.wikipedia.org/wiki/Post-purchase_rationalization someone who purchases an expensive product or service overlooks any faults or defects in order to justify their purchase.

and my favorite: http://youarenotsosmart.com/2011/03/25/the-sunk-cost-fallacy...

  The Misconception: You make rational decisions based on 
  the future value of objects, investments and experiences.

  The Truth: Your decisions are tainted by the emotional 
  investments you accumulate, and the more you invest in 
  something the harder it becomes to abandon it.
This issue isn't resolved yet:

http://code.google.com/p/go/issues/detail?id=47

So Google Go programs won't run on any RHEL or Fedora with SELinux enabled. Requiring users to disable SELinux in order to run programs is just insane... even a lax SELinux like the default policy from Red Hat is still very effective.

Whoever thought an executable stack was a good idea... well they certainly don't have any clue about OS security.

Go feels to me like it is trying to combine C and Python...

That sounds about right. From the Go FAQ: Go is an attempt to combine the ease of programming of an interpreted, dynamically typed language with the efficiency and safety of a statically typed, compiled language.

Of course, whether the precise balance that Go comes to works for you is personal. I really like having most of the efficiency of C and much of the expressiveness of Ruby. I'm just getting started, but I haven't had this much fun learning a new language since I learned Ruby six years ago. Go is differently expressive than Ruby and introduces (to me) some powerful, interesting, and fun ideas (goroutines plus channels, for example.)

I think Ruby will still be my go-to language for everyday tasks, but Go definitely looks like it will have its place in my toolbox, likely replacing my occasional use of C++ at the very least. I also plan to use it on App Engine.

I don't think your post was FUD, but I'm guessing it was "I might have another look in about a decade or so" that might have felt dismissive to some people. That's not FUD, though, and it's fair to express your personal opinion like that.

> I'm just getting started, but I haven't had this much fun learning a new language since I learned Ruby six years ago.

Same here. I love having speed closer to C that's way easier to code than C.

> Go feels to me like it is trying to combine C and Python.

I think that's accurate, and to me it's a great thing.

I'm currently converting many functions written in Python, to Go. I haven't coded in Python or studied it, but I can read it fine. This exercise has made me a lot more interested in Python! However, I'm confident that for my use case the runtime speed of Go will pay off, even though it's not nearly as simple to code in as Python from the looks of it. I'll use Python (or even PHP) for things where speed isn't such an issue.