4 ms·
Go is designed to be a language with a low conceptual barrier to entry; that’s quite evident from its design. That doesn’t mean it’s just a “teaching languge”,
by comex 9y ago
Go is designed to be a language with a low conceptual barrier to entry; that’s quite evident from its design. That doesn’t mean it’s just a “teaching languge”, or if it does, you’ll have to explain that to all the people happily using it in production.
- kmicklas 9y agoOf course you can find people using all manners of languages/systems in production. That doesn't mean they are well designed. And I don't think it's necessary for me to reiterate at this point why Go is poorly designed.
- Thaxll 9y agoAnd yet Go is used by more and more large project / compagnies where supposing superior languages are nowhere because way too complex.
- coldtea 9y agoWell, it's used by 1/10 to 1/100 the number of large project/companies that C++, Java, and C# are used. So there's always that.
- gribbly 9y agoIt's also a MUCH younger language than those you listed, that said I don't think Go or any other of the 'new languages on the block' will reach anything near the wide use of languages like C++ or Java, atleast not in my lifetime.
- coldtea 9y agoWell, Java had that wide an adoption (in the enterprise) already 10 years after it was introduced. It appeared on 1995 -- but 2005 it was already the de-facto enterprise backend language. Ditto for C#, but of course C# was pushed by MS as the native solution for Windows, a platform that already had 95% market share.
- geodel 9y ago1995-2005 was the time when traditional IT industry grew to such humongous proportion. Global delivery model, offshore development and so on were developed during that time. So either way Java/C# came at right time or IT industry grew due to them. Lots of new software and users were created which did not exist before and not the wholesale rewrite of pre-existing software else e.g. COBOL could have gone from banking sector. So asking Go to be popular as Java in 10 years is to live up to expectation that past languages weren't asked.
- kmicklas 9y agoIt's more than anything because of Google's clout, and secondarily the general worse-is-better fetish in tech. Go actually just pushes all the complexity into the code you write with it, so I don't buy that that is the reason.
- coldtea 9y ago>or if it does, you’ll have to explain that to all the people happily using it in production. Easy concurrency. Good tooling. A handy standard library. Static compiles. The hype of a "Google language". You don't need "low conceptual barrier" or anything particularly beautiful about its design to explain its success. Those are the reasons I use it too.
- geodel 9y ago"Google language" is Dart and it does have generics. So low conceptual barrier seems reasonable reason for success. Rust does have all features you listed and of course generics. Both started around 2009 so it is about same age as Go but not as popular among developers.
- wtetzner 9y ago> Both started around 2009 so it is about same age as Go but not as popular among developers. They didn't hit 1.0 (and the corresponding backwards compatibility guarantees) at the same time.
- pjmlp 9y agoThere are other factors, like Go compiles to bare metal while Dart was targeted to replace JavaScript on the web, which is pretty much impossible. Additionally Dart was betrayed by Google's own teams that decided to invest in TypeScript instead.
- coldtea 9y ago>"Google language" is Dart and it does have generics. Only Google never made a good job at promoting it, and it's a dynamic language meant as a better-JS, so not the same market as Go. >Rust does have all features you listed and of course generics. Both started around 2009 so it is about same age as Go but not as popular among developers. Rust took until 2-3 years ago to finalize its design and be stable. Go was already stable for years by that point. And Rust comes with an uncommon, and hard to grasp at first, memory management model which stops many in their tracks -- it's not the presence of generics (or traits, or option types or whatever) that's the issue.