9 ms·
Good points. Technically we still use rails for our website, and have no plans to move off of it. Rails is great for websites! It's just our API that we rewr
by spimmy 11y ago
Good points. Technically we still use rails for our website, and have no plans to move off of it. Rails is great for websites! It's just our API that we rewrote in Go.
- beat 11y agoSo if you had to do it all over again, would you write the API from the start in Go, or would you start with Ruby and transition to Go again?
- spimmy 11y agoHard to say. Ruby really did let us move and ship products insanely fast, without having to sink precious engineering time into boilerplate and standard libraries. Most startups fail, and it's often because they couldn't move fast enough. So I don't think it was a bad choice at the time. We were able to do the rewrite once we had grown up a bit, gotten acquired, hired more engineers, and had a proven business model that was worth investing in.
- supster 11y agoDid you guys consider Erlang or Elixir? Elixir might have especially been a good fit given the history with Ruby.
- mixmastamyk 11y agoIt's not uncommon (and may be a good idea) to prototype in something like Ruby or Python, and port later when the problem is well understood.
- beat 11y agoThe interesting question for me is, is Go straightforward enough to use through the discovery phase? Or do you really need to use a scripting language to evolve the API rapidly? I love Ruby and have worked in a high performance Ruby environment, but it can be pretty problematic to scale (and frankly, it was Apache and Solr that made the environment high performance, not Ruby). Clearly Go can scale, but would it significantly slow down early development?
- deleted 11y ago[deleted]
- mixmastamyk 11y agoI believe the language is less cumbersome than some of the previous contenders, however there are fewer third party libraries. As it continues to mature, the line will get harder to draw.
- lacker 11y agoIf those were my choices I would start with Ruby again, but start planning for a transition earlier.
- MrBra 11y agoThat's one heck of a bullseye question. Thanks for the perspective.
- julien_c 11y agoDid you consider Node.js at all, and why?
- lacker 11y agoWe did consider it. At the time it seemed like a large Node codebase would be too hard to maintain. The tooling is getting better over time though. If we revisited today I think the argument for Node would be more compelling, and if we revisited after ES6 became standard the argument would become more compelling yet.
- deleted 11y ago[deleted]
- ksec 11y agoMay be Rails 5 will help with that.
- tonyhb 11y agoAny plans to open source the rails->go interop layer as a middleware plugin? At some point we're going to face this issue, and I'm sure others will too. I'd hate to reinvent the wheel for parsing double encoding etc. that you've already done.