4 ms·
I like that the Ruby community has embraced the fact it is no longer cool. I recently interviewed for a ruby/rails job where the dev team had come from a previ
by jack_riminton 5y ago
I like that the Ruby community has embraced the fact it is no longer cool.
I recently interviewed for a ruby/rails job where the dev team had come from a previous start up that tried to port an existing Rails app to a React/Microservices one with disastrous results. For this job they were relishing coming back to a monolithic Rails app. I hope this trend continues!
- andrei_says_ 5y ago“Cool” is so subjective. When I want “cool”, I re—watch Le Samurai. Ruby is elegant, brings me joy and puts me in a state of flow.
- ryanbrunner 5y agoMy latest job is at a place where we have an extremely 'old-school' Rails app. The vast majority of UI is server-rendered HTML, Javascript (at least that we wrote, we do use Turbo) is very, very minimal, and we're just one very large service. The previous place I was at was a microservice heavy (the count of services was almost on par with the number of developers) React and Node based application. I'm orders of magnitude more productive with the Rails app, it's more well regarded by our customers, and using it, there's no obvious telltale signs that it's not using the modern SPA approach.
- jack_riminton 5y agoI'm not surprised. I have a theory that there's a perverse incentive for startups to make their work more expensive and therefore more complicated. It's related to this quote by Paul Graham about funding: "VCs don't invest $x million because that's the amount you need, but because that's the amount the structure of their business requires them to invest. Like steroids, these sudden huge investments can do more harm than good. Google survived enormous VC funding because it could legitimately absorb large amounts of money. They had to buy a lot of servers and a lot of bandwidth to crawl the whole Web. Less fortunate startups just end up hiring armies of people to sit around having meetings." (from here http://www.paulgraham.com/venturecapital.html http://www.paulgraham.com/venturecapital.html) For those that aren't VC funded I think that a lot can be explained by cargo-culting; "If startup X is using Node/React/Redux/microservices and they just scored a 20m Series A then we'd better do it too"
- Zababa 5y ago> For those that aren't VC funded I think that a lot can be explained by cargo-culting; "If startup X is using Node/React/Redux/microservices and they just scored a 20m Series A then we'd better do it too" Part of it is also from employees: "everyone else is using Node/React/Redux/microservices, if I can push my company to do it I will have more relevant skills for the market". I often hear that for k8s too.
- ryanbrunner 5y agoYeah, I think it helps that we're very intentionally lean (we currently have just 2 engineers servicing about 100,000 paid subscribers, which is a bit too lean for comfort for me, but at least makes us think very hard about introducing complexity).
- jack_riminton 5y agoI’ve often thought that this would be a good constraint i.e instead of hiring a dev ops to migrate to a complicated AWS/k8 setup, it might be better to spend that wage on added Heroku costs to keep things simple
- ryanbrunner 5y agoEven in the AWS world, there's simpler options than k8. We run a pretty basic elastic beanstalk setup that serves us well enough. A big part of that is having a monolithic service though, most of the complexity either disappears or becomes pointless when your stack is just app servers, a DB and redis.
- sam0x17 5y agoYes, I find that community interest tends to peak about 10 years before business interest peaks in any given language. Right now we have more companies using Ruby/Rails than perhaps we ever did, but community interest peaked 10 years ago. Perhaps we'll see something similar with Rust a decade from now.
- mperham 5y agoA sports car might be cool but it's terrible as an Uber. Context is important when making any choice, tech stack or otherwise. Ruby and Rails are pragmatic choices for building a business, they may not be cool anymore but they are focused on developer happiness and productivity.
- midrus 5y agoI've already have had a good bunch of similar experiences at previous companies, where you hear all the time "we're moving away from the monolith". Problem is after you've been hearing for 5+ years, it probably means it will never go away. This particular company ended up with 100s of "microservices" around it, first in Elixir, then Elixir went out of favor so they started rewriting in Go, then came GraphQL so some microservices were serving GraphQL while others stuck with REST, then different frontends in React, some with Redux, then redux was not the current trend so MobX, then MobX was not cool because now it was all hooks, then some moved to Next.js because of course nobody understood our custom in house webpack setup. Now I've heard they're moving to Svelte. I honestly don't see how that can be better than sticking to Rails/Laravel/Django and embrace the monolith. All this madness of building things at every single company as if it were Netflix or Amazon is an insane waste of resources. Some days I feel like we (engineers) are like kids playing with the toys we want to play with rather than be solving real business problems and maintaining our projects in good shape technically speaking.
- jack_riminton 5y agoSounds horrendously unproductive. Did they not measure the productivity?
- jbverschoor 5y agoYou can’t unless you’re a decent programmer and only when you don’t think you’re 100x yourself Otherwise it’s insanely hard to measure, bc people will come up with bs about how difficulty, complexity, test coverage, change management, dependencies. People complain about car maintenance and the plumber, but programmers are worse.. you simply have to believe they’re working on magic… bc, we’ll, you wouldn’t understand right?
- jack_riminton 5y agoI hear what you're saying but surely it's a responsibility of the tech leadership (and even the non-technical leadership to some extent) i.e. simple questions such as 'surely it shouldn't take this long to ship a simple feature?' or 'why is everything so complex and ever-changing?'