5 ms·
> I’ve been learning Go the last few days. Great! But it might have been more productive to hold off on the blog post until you've been using it for a few week
by enneff 14y ago
> I’ve been learning Go the last few days.
Great! But it might have been more productive to hold off on the blog post until you've been using it for a few weeks, at least. You make a few barbed comments about the language designers, but you are nowhere near familiar enough with Go to be justified in doing so (IMO).
> If Foo is derived from a struct, and it doesn’t work when zero-valued, then there should be a function somewhere called something like NewFoo. Good luck finding the right one.
I've never needed luck, here. This isn't a real problem for actual Go programmers.
> Why is there this special function that construct these three random types?
They're not "random types". They're special built in types that are managed by the language runtime. That makes them distinct from anything you can write as a user, and that's why they use the built in make function for initialization.
> I think channels are value types, which is strange since it’s the only other type created with make.
No, channels are reference types, too. Just like everything created with make.
There are more misconceptions and inaccuracies.
- bklimt 14y ago> you are nowhere near familiar enough with Go to be justified in doing so Haha, I agree. I wrote it mostly to try to get my thoughts straight, and didn't expect it to be posted to Hacker News. :) But my criticisms are that these things make Go hard to learn. It may be a great language once you get everything straight. > No, channels are reference types, too. Ah, good to know. That wasn't clear to me from my first reading of the docs, but you're definitely right.
- hakaaak 14y ago> Ah, good to know. That wasn't clear to me from my first reading of the docs, but you're definitely right. Might be a good idea to continue honing that post. It is already useful and could be much more so.
- jessedhillon 14y agoIt would have been good if you had addressed the actual criticisms he made, instead of dismissing the entire post as illegitimate. For example, your point about runtime managed types is technically correct, but not a response to his larger theme of perceived inconsistency and unnecessary deviations.
- enneff 14y agoI could, but I don't really have time to do this for every article along the lines of "I've been using Go for a couple of days and here's what I think..." This article written by Rob Pike covers the reasoning behind many design decisions: http://talks.golang.org/2012/splash.article http://talks.golang.org/2012/splash.article
- jessedhillon 14y agoWhen I say "it would have been good" I don't mean in general principle as a means to have orderly debate. I mean: the OP gives some very valid and sensible criticisms (I speak as someone who has used Go off/on for ~2 years), and given your background and area of expertise, I would love to know what the reasons are for some of the puzzling design decisions pointed out. You seem determined to be dismissive here, which is unfortunate because there are few others on HN who are qualified to address these criticisms.
- waterlesscloud 14y agoThere's nothing wrong with making a blog post about his early impressions. It's just an opinion on the internet. There's millions more out there, and we all probably disagree with a few of them. But even aside from that, it's valuable to have someone's early impressions of a language. They may change later. That's cool. But it's also cool to know what they think early on, because it's fairly likely other people will have the same experience. Whether or not his comments represent misconceptions and inaccuracies, they still report his experience. Other people can benefit from knowing others shared the same experience, and if he blogs later when he has more knowledge they can also see how his experience changes over time. I encourage more blogging of this sort.
- jinushaun 14y agoI agree. User experience and interaction design is more than just buttons and animations. It covers all interactions, included programming languages, that's why the post is valid even if it might be inaccurate.
- enneff 14y ago> There's nothing wrong with making a blog post about his early impressions. I totally agree, but he makes a number of conclusions (or at least strong statements) throughout that, to me, seem premature. For example, in the introduction: "I get the feeling that Go was designed by System Engineers, who focus on implementation." Systems engineers focus on APIs as much, if not more so, than other programmers. Systems engineers build the things at the bottom of the stack, where API design decisions have a fundamental effect on everything built above them. It's definitely worth reading this: http://talks.golang.org/2012/splash.article http://talks.golang.org/2012/splash.article
- bdcravens 14y agoHe's been using Go much longer than probably 99.9% of those who are critical of (insert language here)
- shadowmint 14y agosigh Is there really such a need to be so antagonistic in your response? I mean, I get it, lots of people give Go a hard time, and it must be wearying to see the same arguments dished out again and again (no GC complaint this time, nice right?). ...but surely, when someone makes a post like this that address actual issues they see with the consistency of the language, which aren't the same as the usual run of the mill complaints about GC, generics, etc. a more mature response would be: Hm, that's interesting. I guess I can see why some people might think that's a language inconsistency or issue, but maybe you'll appreciate the Really Smart Reasons we've chosen to do that when you're more familiar with Go. Instead of: STFU. You don't know what you're talking about. Is it really that difficult to just be a little bit more humble, and consider that other people may have a valid point or two to make?
- enneff 14y ago"STFU. You don't know what you're talking about." This is a complete mischaracterization of what I wrote. I wasn't being antagonistic. At least, it wasn't taken that way by the author of the article: http://news.ycombinator.com/item?id=4930618 http://news.ycombinator.com/item?id=4930618