44 ms·
Rob Pike on the reasons for Go’s success
- JadeNB 7y agoDespite the fact that what's written is the title of the linked article, it seems that these are "[5] Things Rob Pike Attributes Go's Success to" (i.e., the causes of the success), rather than "[5] Things Rob Pike Attributes to Go's Success" (i.e., things caused by that success).
- sedatk 7y agoI reckon Swift is the exact opposite of every point mentioned in the article. Yet it has achieved tremendous success too.
- yifanl 7y agoSwift has the advantage of being the Javascript of iOS.
- crtlaltdel 7y agocurious, in what ways is swift the "javascript of ios"?
- hnbroseph 7y agoplatform gatekeeping, at a guess. though the existence of objective-c makes that status for swift be not-quite-technically-true.
- doteka 7y agoYou have no other choice to access the platforms latest and greatest features and the ones you can (through Objective-C) are less ergonomic to use.
- gnode 7y agoProbably in that it's the language with first-class support on that platform. Adoption of the language is encouraged more by the target platform's support for it, than by its independent merits as a programming language. I'm not sure I'd agree though; Swift shares this position with its predecessor Objective-C. Swift's success versus Objective-C can be attributed to its relative merits as a programming language.
- yifanl 7y agoRight, but it's much easier to be a successful language when you're only competing with one other language as opposed the whole field of options.
- lubonay 7y agoThe best way to access the iOS ecosystem is by using Swift, so that makes it a bit of a special case.
- dooglius 7y agoThe title is a bit confusing, actually means things they attribute Go's success to.
- zzzcpan 7y ago> The title is a bit confusing, actually means things they attribute Go's success to. As opposed to what? I can't see another possible interpretation of the title.
- djur 7y agoThe way it's written means "things we believe are the result of Go's success", not "things we believe are the cause of Go's success". It's a word order issue. You attribute the smoke to the fire.
- dooglius 7y agoYou would attribute programs and services written in Go, that would have been worse in another language, to Go's success.
- deleted 7y ago[deleted]
- rdiddly 7y agoIt's backwards. Attributing things to Go's success vs. attributing Go's success to things. Things someone attributes to Go's success would be things caused by Go's success. For example, the proliferation of stuff written in Go, the number of people making money as Go experts, the appearance of a Go entry in Wikipedia. Things to which someone attributes Go's success (i.e. so-and-so attributes Go's success to these things) would be things that caused Go's success - such as the things in the article. Headline could've been done correctly, but perhaps the problems started with digesting something by Rob Pike and turning it into a listicle. Which then has to have both its listicleness ("five things") and the presence of Rob Pike, advertised in the headline. But I might be being cynical.
- andybak 7y agoThe two interpretations are "they worded the title badly" vs "they worded it this way intentionally because they are making a non-obvious point". I suspected the former but the latter was still a possibility. The likelihood of one over the other doesn't excuse the poor wording.
- RcouF1uZ4gsC 7y agoThe number one reason for Go’s success is that Google backed it. There are a lot of very nice languages out there. However, if you look at compiled languages, they largely need a company backing them. Java had Sun. C and C++ had AT&T and later Microsoft for C++. Objective-C had Apple. FORTRAN had IBM. Don’t underestimate the amount of resources and press that Google’s support brought to Go.
- hnbroseph 7y agoi think this is true for AngularJS as well (not to say it didn't arrive with the right features at the right time).
- blowski 7y agoThinking about your point, it does mostly seem to be true. But I'm wondering why it's true only for compiled languages, and not true at all for interpreted languages.
- deleted 7y ago[deleted]
- Barrin92 7y agomy guess would be that compiled languages are very heavily used in enterprise environments and companies will look for corporate long-term backing before they commit resources to a language. Dynamic languages are more generally used and often have been favoured by small companies and teams, so the barrier is lower.
- dwoozle 7y agoWhat does “dynamic languages” mean?
- Barrin92 7y agodynamic languages are languages who perform many central operations, like type checking at run-time rather than at compile type. They facilitate changing the object system, and a host of other things too long for the post. (https://en.wikipedia.org/wiki/Dynamic_programming_language https://en.wikipedia.org/wiki/Dynamic_programming_language) I was playing a little lose with language because the OP was talking about interpreted and compiled languages, and not all interpreted languages are necessarily dynamic, but in practise the fault lines are about the same.
- trpc 7y agoHe forgot the most important factor to Go's success: ignorance is bliss. Imagine releasing such a mediocre language only a decade ago an still be very popular
- rytill 7y agoCan you elaborate?
- trpc 7y agoCriticizing Golang here in HN will get me banned for causing flamewar. However, you can find lots of reasonable criticism on Golang just by googling. IMO Golang is one of the worst languages I've ever seen considering it was only started a decade ago.
- 1_player 7y agoI downvoted you. Yours is not criticism, it's just ignorant bashing of a perfectly productive language that people adopted not because they're more stupid than you but because it made them more productive for whatever reason. No one forces you to code in Go if you don't like it. Fine, but don't belittle others if you're not prepared to understand why it's got so popular. Ignorance is bliss.
- hnbroseph 7y ago> Criticizing Golang here in HN will get me banned for causing flamewar that's either reductive or a strawman, if not both. afaict golang doesn't lack for criticism on hn, but most people do so without being insulting or hostile.
- badrequest 7y agoIt doesn't seem like you have any genuine complaints about the language, but are merely interested in causing flamewars.
- trpc 7y ago
- LordHeini 7y agoOne point I would add is how easy it is to onboard people. With minimal training every programmer can learn go very quickly and be productive in it. This is very important for companies because you don't hire a Java, C# or whatever dev but someone who is a good fit for the company. And then you have him trained in no time. That fact alone was the easyest sell I ever made to my boss.
- baybal2 7y agoI don't see much success to begin with. Thought they did things in the article right. Having formal spec, and focusing on code stability is important, and puts them apart from 9 out of 10 of every new programming languages, but that is only one item on the long "not suck" list. The lack of proper package management at the start left too much of a bad aftertaste. I believe they must have knew that shipping go with git as a makeshift package manager was a bad idea, but for some reason did it anyway. I think this alone turned away half of early adopters. Then golang went through a long epopeia of making the package ecosystem work outside of a single company deployment, and lost a lot of developers along the way again.
- xxpor 7y agoDon't discount ease of distribution due to creating giant rolled up binaries. The size of binaries isn't that big of a deal for servers any more. On the other hand, setting up a python or whatever env can be a pain, especially before docker really took off. Being able to push a Go binary and it Just Works is awesome.
- skohan 7y agoIt amazes me that Python is used in production back-ends. It's a neat language with a lot of nice libraries, but the environment management story feels so janky to me. Not to mention all the money you're spending on just the overhead of a relatively fat, slow interpreted language.
- NoodleIncident 7y agoIt's possible to create "giant rolled up binaries" for python, too: https://engineering.fb.com/data-infrastructure/xars-a-more-efficient-open-source-system-for-self-contained-executables/ https://engineering.fb.com/data-infrastructure/xars-a-more-e...
- majewsky 7y agoPython does have giant rolled-up binaries. They're called Docker images.
- mikece 7y ago"It doesn’t matter how good the language is if nothing’s written in it." Can't emphasize that enough!
- gnode 7y agoI'd say Go's success is almost nothing to do with its design, and everything to do with social factors. Rob Pike was famous before its creation (within the relevant community). The language was designed within Google, and gained much hype from that. The effort to foster a community paid dividends. Writing Go code for a living, I find it a very mediocre language. It's largely redeemed by its library ecosystem, which reflects not on the language, but the enormous size of its community and commercial backing. If anything is noteworthy about its design, it's that it's simple (crucially, to those already familiar with C-like languages), and easy to bring people on board. What is lost for want of features and abstractions, is gained in human resource.
- zeppelin101 7y agoI think your last paragraph is key here. Go is a simple language, which makes it practical for large projects, with many collaborators, some of whom might be fresh out of school. Google must have benefited internally a lot by Go.
- pmoriarty 7y agoThink of how much more benefit they'd have had, had they chosen an even simpler language like Scheme.
- ncmncm 7y agoExactly. Scheme has not been a success in part because it lacks needed features. Go has just enough for its uses, and no more. It's not powerful enough for really serious projects, but (1) there are already other languages for those, and (2) the overwhelming majority of projects aren't.
- icholy 7y agoJavaScript has a much bigger community/ecosystem that Go. However, Go libraries are (on average) much higher in quality.
- 7y ago
- hsaliak 7y agoUnpopular opinion - the lack of generics helped. That reduced the surface of the language a _lot_ its simplicity was a breath of fresh air. It made Go a very effective language for "just writing some code".
- gigatexal 7y agoFor me it's the lack of objects and multiple inheritance that makes the language so simple and thus so inviting.
- gpvos 7y agoA sideways grammar question: shouldn't the title be "Things Rob Pike attributes Go's success to"?
- unlinked_dll 7y agoIn the words of Jack O'Neil, how dare you end a sentence in a preposition?
- gpvos 7y ago"Things to which Rob Pike attributes Go's success", whatevs. My point is that the direction of attribution according to the title is the other way around from that in the article.
- pmoriarty 7y agoI'd have written it as: "Reasons for Go's success, according to Rob Pike" Or even "Rob Pike on the reasons for Go's success"
- gpvos 7y agoNote that the original title was "Things Rob Pike attributes to Go's success".
- braindongle 7y agoSuggest: "Things Rob Pike Attributes Go's Success to". Dangling preposition, but what we're actually talking about.
- dragonwriter 7y agoIncidentally the title (and similar line in the body) are incorrect descriptions of the content; these are not things that Rob Pike attributes to Go’s success, but things to which Pike attributes Go’s success. The current phrasing literally reverses cause and effect.
- tln 7y agoI think the compilation speed and goroutines/CSP enticed a lot of people, as well. Those are or were Go's unique selling points IMO
- shawnb576 7y agoI find this list a bit disappointing and not particularly insightful. I think that its because a lot of success is timing and luck (in addition to something being good), so it's like asking a startup founder why their startup was successful and not another. For example: - is errors on unused variables/imports really such a bold new stroke or that controversial? - is a formal spec that unusual? how many Go developers have ever looked at the spec? - was getting Docker that big of a deal other than having a good dogfooder (vs it being "killer") I agree with the open source process, kudos for them for allowing the community to help them get things right (well, some things, Go has a bunch of rough edges). IMHO, its: - Good runtime perf - Great built in libs - Built in cross-compilation and shrinkwrap binary that does not require a runtime installed on target machines - Good use of opinionated tooling (go fmt, go test, etc) that take a bunch of concerns off developers plates
- ping_pong 7y agoThe reason why Go is successful is because it's a very, very opinionated language, and for the most part its users agree with those opinions. And the opinions that they don't agree with don't detract as much as the opinions that they like. By being highly opinionated and predictable, it makes it easier to digest. I especially like the reformatting capabilities so everyone's code looks the same. The more people program the same, the more predictably the code behaves and the less overall problems.
- andrenth 7y agoI think Go is a great "80%" language. By that I mean it isn't the best in any criteria that you'd use to evaluate a programming language: not the best type system, not the fastest, not the safest, not the best concurrency, not the best package manager, not the largest ecosystem, not the easiest, and so on. However, it's very good, sometimes great, in many of these criteria. Many languages try to be the best at one thing, while Go is good enough in many things. I think that's the main reason for its success.
- ncmncm 7y agoThat would all be true if Go actually were a success. It might be, someday. But it is still way, way too early to say.
- ncmncm 7y agoNo matter how much you like Go, this true: It is way, way too early for him to proclaim Go a success. The time for that is ten years on. Imagine reading something so self-congratulatory, today, if the creator of Ruby had written one back when Ruby was only as old as Go is now. It would be poignant. Go will be a success when it is complained about as much as other languages, by people who would really rather be using something better. It is nowhere near that point.