4 ms·
I am about to learn a new programming language and I decided against Go just because of this fact. I do not trust Google and reading this article just makes cle
by Kovah 7y ago
I am about to learn a new programming language and I decided against Go just because of this fact. I do not trust Google and reading this article just makes clear how critical the state of the language is in terms of control by the community.
Python looks most promising and I already worked with it, but I am not sure yet. Can anyone recommend a viable alternative for Go? Any web-focused language that is performant, modern andalready well used?
- kmlx 7y agoyou shouldn’t let an article decide what language you learn.
- theshrike79 7y agoThere really isn't any with a substantial community. Python is good for algorithmic stuff and things that need specific libraries (tensorflow, NumPy etc) But if you want a garbage collected language for moving bits from place to place over the network, it's kinda hard to beat Go.
- Illniyar 7y agoAre you saying that there aren't garbage collected languages suitable for network development ("moving bits from place to place") with a substantial community except Go? I mean, Java and all the JVM based languages comes to mind. Python, Ruby, Node.js (assuming performance isn't at the top of your list, which for many it isn't). Go has a small community compared to all of the other popular languages.
- smt88 7y agoC#, F#, Kotlin, TypeScript/Node (someday Deno) I wouldn't worry much about "performant" though.
- hvidgaard 7y agoF# and Haskell are two very nice languages if you want to try something truly different.
- neop1x 7y ago... and if you are ok with investing to adapt newcommers coming to your team and fine with lack of people actively using it
- hvidgaard 7y agoBoth have helped myself and many other people write better code in "enterprise" languages. I don't mind my team using different languages for small bits and pieces that are one off things, or can be replaced without must effort. It keeps developers happy to have some autonomy. I only demand that it's well documented how to build it.
- chimpburger 7y agoKotlin
- networkimprov 7y agoIf you want performance and garbage collection, Java (and its family), C#, and Go are the major options. I'd pick Go among those every day of the week, but it's not perfect.
- willtim 7y agoBy "major options", I guess you mean popular/mainstream options?
- dnautics 7y agoI'll suggest elixir. It's fun to build in and the community is growing (at least two companies with very large scaling demands use it). Don't get hung up about performance benchmarks, they're biased towards numerical algorithms; in practice if you are web focused your tasks will be IO bound and things like uptime process restart semantics and robust concurrency are more important.
- hvidgaard 7y agoWhat you learn from dedicating time to a new language, should not be the ability to program in it in 10 years, but to solve a problem you have now and hopefully learn some new concepts. Pick what will keep you engaged - it's the "learning something" that matters if you're not explicitly trying to solve something.
- munmaek 7y agoYou should use a language based on how well it performs for your problem and domain, and the community around it. Not based on one article or because google is maintaining it.
- Illniyar 7y agoI think his fear of google's stewardship of the language is the fear of what it'll do to the community around it.
- pm90 7y agoIts incredibly unlikely that Google would take decisions for the language that would make it less effective at what it does.
- Illniyar 7y agoNo, but it's very likely that they'll make decisions that'll alienate the community and thereby cause it's ecosystem to lose more and more relevance. It has done that with other open source projects they stewarded.
- mcv 7y agoIf they alienate the community, the community can fork it, right?
- grepgeek 7y agoOnly if there are major contributing developers who do not work for Google. Is that the case with Go? If there are no major non-Google contributors to Go, then the fork may not be successful due to lack of familiarity with the code base.
- mcv 7y agoIt depends on what you mean by "the community". If it's a community of contributors, and Google pulls it into a direction the contributors don't want, then they can fork it and continue contributing to it. If it's a community of users, then they have no choice but to follow whatever the contributors decide. I agree you need to have major contributors on board with a fork.
- mcv 7y agoI'd say it depends on what you want to do with it. Go is, as far as I understand, mostly a systems programming language. A replacement for C, basically. That means it competes mostly with Rust I guess. (I'm not familiar with Go or Rust, though.) Python is mostly an application programming language. It competes with Java, Ruby, C# and those kind of languages. Python also has tons of excellent libraries for a wide variety of specific domain areas, like Machine Learning (perhaps most famously at the moment), but also many others. If you want specifically web-focused, Javascript or Typescript are the obvious places to go. Nothing is more web-focused than those two.
- abhijat 7y agoI wouldn't call Go a systems programming language. Having a GC alone sort of removes it from that category.
- mcv 7y agoThat sounds logical, and I'm no expert on either Go or systems programming, but I've often heard of Go being referred to as a systems programming language, and on their own blog[0] they list it in third place at 37% as popular use of the language. Well after web development, admittedly, so apparently it is more a web development language than a systems programming language. I was clearly wrong on that part. [0] https://blog.golang.org/ https://blog.golang.org/
- pjmlp 7y agoMesa/Cedar, Modula-2+, Modula-3, Oberon, Oberon-2, Active Oberon, Component Pascal, D, Swift, Sing#, System C#, Common Lisp, Interlisp-D, StarLisp, Real Time Java beg to differ.
- steeve 7y agoThis is a very bad reason to not learn a language imho...