Why We're Ditching Ruby on Rails for JavaScript and Node.js
imaginarycloud.com
imaginarycloud.com
1. Rails isn't cool.
2. If you spend enough time hunting around, you can find Node libraries that, collectively, do everything Rails does out of the box.
3. Node is "cool."
4. A third party product which has nothing to do with Rails for building native iOS apps in Ruby is no longer actively maintained.
5. Write once run anywhere, but this time it'll really work!
I write code to build businesses, not to follow code trends. If the business needs Node.js, you betcha. If the business doesn't, why not use something that has worked for 10+ years?
I found this paragraph really hard to grep given how vague it is, but I'm assuming that he's euphemistically saying that his team/company was either not interested or not able to learn the language/framework. That would have been a more interesting article to me if he'd expanded on that.
If the team isn't interested in using some tech, then that's a sufficient reason itself to not use it. If they don't want to learn any language beyond what they're comfortable with, I'd be pretty concerned about that kind of culture, because it'll hurt them in the long-run.
If the issue is actually that they can't deliver rails projects to clients because corporate people can't write ruby, then that's more important than any other reason given in the article.
I didn't conduct a thorough analysis on the reasons why I've seen big corps rejecting Rails, so what I'm about to say is based on the the experience of being through all these projects.
But most Rails projects are connected to the innovation departments and once they passed through the PoC stage, their IT departments asked for a re-write on a tech already in their ecosystem. Supporting additional techs raises complexity and forces them to support another stack.
We were indeed able to push some Rails apps to production on enterprises, but these were usually apps that performed a specific goal for one of the departments, and once we went for the big projects within their core, tech stack was always an issue.
But we work on several projects by helping a lot of people at the same time. And need a solution that fits our and our client's purpose and context.
Rails did that to some extent, but I believe JavaScript will help us navigate a larger context.
I also think that the [JavaScript] community is going through a "cool" phase, similar to what happened to Rails in the early days...[A]s Rails matured, it lost it's cool factor and the community stabilised.
I could tell you why I chose to use POE access points in my house instead of plain Ethernet, it wouldn't tell you anything about when you should.
http://motioneers.herokuapp.com
A lot of other info is linked from the website, plus community members have been adding examples and other content elsewhere:
1. Laurent did sell RubyMotion off (to basically retire). He sold it to me. The guy that built the mobile adaptation of A Dark Room with RubyMotion (which hit the number one spot on the AppStore _and_ the number two spot on Google Play).
2. Since the acquisition, there have been monthly updates to the platform, and measures to slowly open source RM under a _sustainable_ open source model.
3. I have since released 4 other apps using RubyMotion. Combined they have approximately 3.5 million downloads.
4. RubyMotion is _actually_ native (unlike React Native).
5. RubyMotion is definitely not cool anymore. It's battle-hardened, "just works", fast (faster than Swift in fact), and can leverage all the existing Android and iOS libraries out there (which React not-Native can't do out of the box).
6. Email me and I'll hook you up with an Indie license <3.
- Build, project templates, dynamic bindings generation (BridgeSupport) have all been open sourced.
- The repl is targeted to be open sourced in Q1 2019.
- The parser is targeted to be open sourced in Q2 2019.
- The rest is TBD. But I bought the website domain dragonruby.org :-D
I just think the support for Android should have happened a lot sooner. But of course this is easier said than done.
Moving forward to React Native is part of the same approach. It's important for us to use a technology that delivers fast in multiple channels and has a great chance of still being relevant in the next 10 to 20 years. And for me, these are the strongest points on Javascript.
And you're correct, React Native is not truly native, but it does the job pretty well without major impacts on usability. RubyMotion is truly native and very well designed IMHO.
Best of luck for the future.
With regards to relevancy, RubyMotion is built on top of LLVM. With regards to Ruby the language itself, it's been around for decades and won't be going anywhere (granted the same can be said for JavaScript).
I'm waiting to see how web assembly will shake things up.
Best of luck to you man (I genuinely mean that). And if you ever decide to come back to RM, I'll be here to help :-)
1. Rails was a breath of fresh air over the explicit-rather-than-implicit web frameworks of the time, but while making a splash in the startup world, it didn't seem to be embraced in legacy bigcorp settings.
2. JS is an ecosystem that is mandatory on the frontend and has become viable (and actually novel) on the backend, and was eventually able to make inroads in bigcorp settings unlike Ruby. This ubiquity and agreeableness, combined with its rich array of libraries and active community, makes it compelling. As the Ruby community matured, the hype around it has died down, leading to less buzz but also less prominent innovation.
3. React Native is the killer SDK for making one codebase work on every relevant (mobile) platform. (Presumably, if the author were concerned with lives-on-desktop applications too, Electron would be mentioned as well.)
4. The core JS language is actually being worked on now and isn't nearly as quasi-abandonware or as horrendous as it once used to be. (Some credit paid to browser-makers is missing, as every browser-maker has done their part in both trying to move the ecosystem forward in divergent ways, and then much later coming together to harmonize their implementations and resolve to work in a more coordinated way. This 10-year evolution ultimately made duct tape shims like jQuery unnecessary, which paved the way for more holistic frameworks like Ember, Knockout, Angular, and React to set a different architectural model for JS code, landing the community where it is today.)
I avoided desktop because the last time I don't develop for desktop since 2008.
But I take a look at some options for Ruby near that time, and I don't think the ecosystem is much different now. There were a couple of options but very incomplete.
Regarding the JavaScript ecosystem, yes. Electron is a perfect killer.
I see the JavaScript ecosystem at the same level that Java was in 2006. If you pick it, you can virtually deliver to any channel.
1. Phoenix+Elixir [a modern Rails successor]
2. [satisfy] both corporates and startups
I don't know who needs point 2. Perhaps consulting or a dev who only wants to learn a single stack? Not me.I've used Rails at a scale where it hurts. Phoenix+Elixir is great if a little learning curve is okay. Spring+Java is bloated for many use cases so I have found and used microframeworks such as Javalin+Kotlin+JDBI which is far superior to Node on the back-end. For even smaller projects Go is a fine choice if you don't mind the simplicity which is simultaneously it's strong and weak point.
Basically, if I can get away with it I'd go for Phoenix+Elixir, followed by Clojure/ClojureScript. If I can't, I'd go for Rails. If for whatever reason that isn't an option, C# or Java. Node inhabits this weird in-between world that doesn't offer quite enough of anything, and has some serious drawbacks.
Now I know DHH will mention Github and Shopify as examples. But I believe both tends towards "startup" and aren't very cooperate. So I will give two Cooperate" examples,
Bloomberg News - I really wish they share more about the Rails Stack.
Apple Music - Not sure that is changed, but their first version of Apple Music I believe was on Ruby Rails.
The main reason, or the main point the author was trying to get across,( some interrupted as not being Cool ) I think are Ruby, and Rails, as one or as separate subject, lacks the direction, and more importantly the momentum. It is definitely not dead, far from it, but it is not growing either. And I guess the author simply bet on node.js is more like Javascript will continue to grow and survive for the next 10 years.
Python and Go had Google, PHP had Facebook, Java had Oracle, .Net had Microsoft, Ruby and Rails manage to come this far without any major backing, all just open source and works from communities. And the communities should be proud of this.
P.S - I still believe TruffleRuby will make Rails Great again.
And you have to make the choice of which platform you will be building your company's expertise on. If it is yesteryear's tech that's not good in the long run.
No need to migrate your existing systems but for new development the platform with momentum behind it (= cool-factor) is often better businesswise.
I was expecting a more technical comparisons to Rails and Node. The point made about Ruby not being adopted by well established companies seems half true considering adoption of Rails - AirBnB, Twitter, Coinbase, Github, etc
The central point for me is exactly the adoption on the startup and enterprise world.
You might not need a year to, at least, get my thoughts on that.
Did somewhat the same kind of research for our projects, but unfortunately didn't find anything decent that could really compete with ActiveAdmin/Rails Admin/Trestle in terms of features and maintenance…