3 ms·
Rewrites are almost never the right call, I agree. The company knows this, but they also see how RoR has locked them in and that the web ecosystem has changed i
by ilovecaching 8y ago
Rewrites are almost never the right call, I agree. The company knows this, but they also see how RoR has locked them in and that the web ecosystem has changed in a lot of ways that makes the RoR proposition not so great.
So they task one or two engineers to learn Go. They learn Go in one or two days, and rewrite some scripts in Go. Big success, the scripts are much faster and are statically typed. Then they decide that for a new piece of functionality they'll write it as a service. Since Ruby and Go are both officially support grpc languages, it's easy to connect them using a protobuf schema, and have the RoR app call out to Go.
Slowly over time, more new features are written as small Go services, until eventually everything in the RoR app is legacy, or can be replaced by any API gateway.
Now if the company needs to switch again, they can just rewrite individual services in a different language.
- bovermyer 8y agoBut why would they need to move to Go, if what they have works? To put it another way - if my 2007 Honda Accord gets me to work reliably, why should I bother to buy a 2020 Tesla Model S?
- ilovecaching 8y agoBusinesses don't stand still, you're either actively working on a product, or you're building a new product and the old product is in maintenance mode. So to follow your analogy, a businesses is always trying to get itself into a new car. If electric cars are the future, they don't want to be in a gas powered Honda Accord while their competition is riding around in Teslas. In larger companies, spending less on gas can also save you a lot of money. If I can write a Go app that doesn't require as much AWS compute, or have a type system that lets me spend less time on bugs and more time on features, that's hitting my bottom line.
- bovermyer 8y agoSo what would you say to Basecamp, then? "Get thee to Go, heathen!" ?