8 ms·
Choosing Between Rust or Go?
- krebs_liebhaber 7y agoThis whole site reads like blogspam. The copy has that uncanny "SEO-optimized" je ne sas quoi to it, with a writing style halfway between "high-school newspaper" and "coding interview cheat-sheet written by an Indian ex-pat", using parts of the English language without understanding the underlying meaning or where they fit in - like a script kiddie, but with natural language. Does anyone else get the heebie-jeebies when they read "uncanny" text like this?
- skrtskrt 7y agoI just experienced this googling when particular 2021 car models come out, hoping to find out what upgrades might be coming. There's a website for each car with near-gibberish write-ups full of keywords that tell you absolutely nothing. And they're on the first page of google! https://www.2020lexus.com/car-reviews-2019-2020/ https://www.2020lexus.com/car-reviews-2019-2020/ First paragraph: "Honda Civic is actually 1 of the most recent car that are designed by Honda. This car is a sedan car hybrid of which are developed to be used for metropolis car used."
- codr7 7y agoWho needs actually translators when Google works enough well general used?
- samvimes 7y agoWhy waste time say lot word when few word do trick?
- derefr 7y agoI feel like I would enjoy the Internet a lot more if I had a "spam filter" that just hid everything that reads like that. It'd certainly make the experience of browsing e.g. YouTube 10x better, with all the content farms filtered out.
- kolanos 7y agoCheck out Edmunds.com, they will give you a rundown on changes for a model year over year.
- fortran77 7y agoOf course. The Rust people here will upvote anything about Rust, even AI generated blogspam.
- eljimmy 7y agoIt really does present itself as a pseudo-ad for Hatchpad. No date, no author...
- bootlooped 7y agoI think the author is Lauren Alexander (found in a box in the upper right of the desktop site). But that is confusing because there is a picture of man with the subtitle "Thought Leader Insight" directly above the article, sort of implying whoever is pictured there is the author.
- fdghfg 7y agotl;dr Go, of course. rust it just too fugly and has no worthy support on windows and in IDEs. sure, you may love it but if you check out jobs, it's like 100:1 for Go. rust is and will be an exotic language for very niche use cases. let the downvotes begin :)
- steveklabnik 7y agoWhat Windows problems do you see with Rust? I’ve been Windows only for a few years now.
- sudeepj 7y ago> has no worthy support on windows Actually, with Rust you can even link with msvc toolchain, which Go cannot.
- sfkdjf9j3j 7y agoWhat kind of problems with IDEs are you running into with Rust? I've used Intellij and Clion with the Rust plugin and they seem to have all the standard IDE bells and whistles - inferred type annotations, autocomplete, autoimport, interactive debugging, refactoring, etc. I haven't tried VSCode but from what I understand that's even more popular than the Jetbrains tools so I would guess that it works pretty well too.
- Narishma 7y agoRust has better Windows support than Go.
- zerr 7y agoI've abandoned Go in the middle of The Go Programming Language. There is really no reason to use it - there are much better languages for systems (both - as in services as well as in low-level systems) development. Desktop development experience is quite a mess as well.
- skrtskrt 7y agoI've been starting up using Go as "fast Python" for web services / REST APIs. The patterns encouraged by Go development are actually how I preferred to write Python in the first place, which is to say 1. largely avoiding huge tightly-coupled frameworks like Django 2. writing a little more boilerplate with the payoff of making code a lot clearer to reason about without having to step through tons of layers of overly-dynamic libraries I think Go will really start to eat up the backend web services space in the coming years.
- jdmg94 7y agonot with google's reputation behind it...
- whateveracct 7y agoIn this vein, I've been focused on finding/creating tooling at the same level of abstraction as Go (net/http, database/sql + sqlx, etc) but in Haskell. So it ends up being a bit more ergonomic for a variety of reasons. scotty (-> net/http), aeson (-> encoding/json), and postgresql-simple (-> database/sql) are pretty close, although aeson & postgresql-simple need some tooling on top to get them on par w/Go struct tag reflection imo. I still love to use more advanced Haskell libraries, but there's something to be said for stitching together functions in IO with simple types.
- creyes 7y agoI think you're right that the level of abstraction is the same but the language ergonomics are drastically different. Go was designed so that anyone coming out of school could read/understand/write it very quickly. I'm not a Go expert and I can reason about code pretty well and even write some stuff. That's absolutely NOT true of Haskell. It's a much more nuanced language and while I'm sure it's great once you learn it, the learning curve is steep. Because of that I think it's much easier to hire Go developers than Haskell developers too
- bestouff 7y agoInitially my take was Javascript is for quick-and-dirty code, Rust is for beautiful thought-out architectures, and Go is somewhere in the middle. Nowadays I tend to do even quick hacks in Rust.
- winrid 7y agoI've written well engineered code in JS, I think it just requires a lot of discipline because the runtime doesn't help you.
- dan_quixote 7y agoIt's not that it's impossible, it's just that expectations are generally low when it comes to JS code quality.
- winrid 7y agoWho sets their expectations low? :)
- animalnewbie 7y agoI do quick stuff in scala because Rust doesn't have a decent repl.
- FunnyLookinHat 7y agoMaybe a dumb question... but how would a compiled language provide a REPL? Isn't a VM of some sort a requirement to provide anything that we'd call a "REPL"?
- marcrosoft 7y agoI don't know Rust but Go: * Go is an extremely productive language * It doesn't have all the fancy cool features other languages have * The community is huge and it is easy to find libraries * It has gained popularity faster than any other language I can think of. They must have done something right.
- tandr 7y agoI would agree for all of them. But, from personal experience - productivity dives down really badly the moment code base have grown in size considerably. Adding more people makes it even worse, since most of these people start to come in with a very fresh language knowledge ("oh, Go is simple, you can pick it up in no time --management"), and you have to babysit each merge request carefully. Which makes your productivity worse, mgmt adds more people, you miss things here and there, and code quality goes down.
- jdmg94 7y ago"Thought Leader Insight" my first thought was: who is this guy?
- kristoff_it 7y agoSo when I wrote my piece complaining about how people should not try to compare Go and Rust as they were created for very different purposes, people kept commenting that I was attacking a problem that I had came up with myself, and yet here's one more comparison of that kind reaching the front page of hn. To me the question in the title is as ill posed as would be "Choosing Between C or JavaScript?".
- yazboo 7y agoThis article makes the point you were apparently making, that Go and Rust are created for very different purposes. The difference is in the framing: this article is not complaining about people posing a question, it's providing useful information to people who don't already know everything.
- nwmcsween 7y agoEh go can be a fill in for things you would do in c, just as rust can be as well, Different strokes or whatnot
- sramsay 7y agoYour problem is that you're not a Thought Leader whose Insights are being brokered by a Community Engagement Specialist. And let me explain. This guy has been "at a startup" and "at a Golang Meetup." If that isn't thought leadership, I don't know what is.
- Animats 7y agoYour problem is that you're not a Thought Leader whose Insights are being brokered by a Community Engagement Specialist. Good point. It's a very light article, written for people who listen to Thot Leaders. It misses most of the important points. Go is designed for web back ends. It has all the stuff you need for that, and the libraries have been thoroughly pounded on and debugged, because Google uses them internally. The language is stable and doesn't change much. It's a good fit to that job. For other applications, Go may or may not be a good fit. Desktop apps? Probably not. Games? Probably not. Real-time control? No. Rust now seems to be trying to use every cool idea around, all at once. The borrow checker was brilliant. The added cruft, not so much. We have generics! We have type theory! We have lambdas! We have functional programming! We have threads! We have futures! We have async! We have a whole bunch of different HTTP libraries! We've changed the error handling system how many times now? It's all very cleverly done. But it's overdone. I'm out of that world, and not clear on whether there are signs of it settling down yet.
- hsnewman 7y agoMy only complaint about go is the lack of a Go supported IDE. There are lots of paid ones out there, but I've spent the morning looking for a good one that runs in a web browser that are easy to install.
- guessmyname 7y ago> My only complaint about go is the lack of a Go supported IDE. There are lots of paid ones out there, but I've spent the morning looking for a good one that runs in a web browser that are easy to install. I am not sure why would you want to run your IDE in a web browser, but Visual Studio Code [1] is regarded by the Go community as one of the best code editors (with plugins) [2] to develop Go projects, and in case you do not know already, Visual Studio Code is technically a web browser [3]. That being said, Goland [4] is probably one of the best integrated development environments for Go programming out there. [1] https://code.visualstudio.com/ https://code.visualstudio.com/ [2] https://code.visualstudio.com/docs/languages/go https://code.visualstudio.com/docs/languages/go [3] https://github.com/microsoft/vscode https://github.com/microsoft/vscode [4] https://www.jetbrains.com/go/ https://www.jetbrains.com/go/
- bdcravens 7y agoPlus if you want VS Code in the browser there's Coder.com (both hosted and open source varieties)
- CobsterLock 7y agoare there a lot of IDEs that run in a browser? that seems like a really odd requirement to me.
- bdcravens 7y agoI know of none off the top of my head, though perhaps when they say "IDE" they really mean a code editor, so there's Cloud9, Coder.com, and the like.
- OrderlyTiamat 7y ago
- jtsiskin 7y agoNote that the section "Fuschia: Google’s Successor to Android" is incorrect. The [Fuchsia Programming Language Policy](https://fuchsia.googlesource.com/fuchsia/+/refs/heads/master/docs/project/policy/programming_languages.md https://fuchsia.googlesource.com/fuchsia/+/refs/heads/master...) states neither Rust nor Go is not supported for end-developers.
- OrderlyTiamat 7y ago> states neither Rust nor Go is not supported for end-developers Just for clarification, neither are supported according to the linked document. (the double negative was confusing for me)
- jtsiskin 7y agoOops you're right - too late to edit it. It should say "neither Rust nor Go are supported for end-developers"
- Scuds 7y agoMy general file card on Rust's appropriateness: It's for anywhere you want an iron grip on memory and correctness and the cost of screwing up is very large and don't need a quick minimum viable product. You'd expect to be writing a database or a high availability proxying server or any kind of driver or a game engine
- ferest 7y agoGo is more like a faster python or lighter java, rust is more like C/C++, they aren't comparable
- verify_sirrah 7y ago> Go aims to combine the safety and performance of a statically typed compiled language with the expressiveness and convenience of a dynamically typed interpreted language. It also aims to be suitable for modern systems programming. - Rob Pike https://web.stanford.edu/class/ee380/Abstracts/100428-pike-stanford.pdf https://web.stanford.edu/class/ee380/Abstracts/100428-pike-s... edit: To provide greater context from the slides I linked. Go was designed to replace C++ and Java in Google.
- apta 7y ago> Go probably is a better successor to Java since it’s useful for building distributed systems. Far from it. golang, both the language and the ecosystem offer nothing close to what Java (and the JVM) offer in terms of building reliable systems, monitoring, profiling, performance, etc. Sorry to say, the fact that this comparison was made in the first place shows lack of experience.
- christiansakai 7y agoI like both, why not both? They are created for different purposes.