3 ms·
Rewriting software written using Python, Java, and Ruby in Go is entirely different from rewriting software written using C and C++ in Rust. Go has easily quant
by empthought 7y ago
Rewriting software written using Python, Java, and Ruby in Go is entirely different from rewriting software written using C and C++ in Rust. Go has easily quantifiable advantages over those other runtimes regardless of the original code's correctness.
- jchw 7y agoPeople rewrite C and C++ software in Go too. In fact, unlike Rust, most Go software has no C dependencies at all. This is precisely the result of rewriting everything in Go. To be clear I’m not suggesting you should always rewrite something versus just wrap it, not at all. I’m just saying the reasoning for not doing it being “you didn’t write the original so what do you know” is very offensive to me; how are you supposed to learn?! People write NES emulators all the time even though they already exist. While most are purely for practice it doesn’t really matter: they wanted to write it, they wrote it, they learned. Discouraging people from writing something that they want to write is upsetting to me.
- empthought 7y agoMost of the common C dependencies were implemented in Go before its public release - https://golang.org/doc/go1 https://golang.org/doc/go1. These implementors are exactly the "better-equipped" original authors to which the blog post was referring. Most programmers are programmers for hire, and it would be a waste of everyone's time to re-implement (for example) libdispatch in Rust. If someone wants to write it on their own time for their own edification and no other purpose, fine -- but half-assed internal implementations of common functionality are a significant drag on the lives of other working programmers.
- jchw 7y agoAll of this has absolutely, truly, nothing to do with rewriting something in Rust. You could also rewrite the same library again in C and have the exact same conundrum. Also, people build dependencies on effectively “hobby” projects all the time. Open source in particular works well this way because the dependents have a good reason to contribute back; the users become stakeholders and contributors. The same may not be true of internal software, but again, this has little to do with the concept of rewriting something in Rust. This is really diverging into a discussion that has nothing to do with the original paragraph I addressed.
- tuesdayrain 7y agoPeople typically write NES emulators in their spare time, not on a job where others will be expected to maintain their science project.
- jchw 7y agoNothing in the article suggests it is addressing only work “on the job.”
- discreteevent 7y agoCan't see what you would really gain rewriting from Java to Go.
- empthought 7y agoGo can have a much smaller memory footprint than Java.