DEV Community

[Comment from a deleted post]
Collapse
 
andrewbrown profile image
Andrew Brown 🇨🇦

Ruby on Rails.

  • Rails is the most conventional
  • Rails is the most mature out of the frameworks listed
  • Rails has a back catalogue of so many video tutorials and documentation online
  • Ruby community encourages strong convention and good programming practices
  • Rails is the origin of all modern frameworks
  • Rails is a complete web-framework

There is this misconception that Rails is old but in Toronto, 60% of startups are still using Rails. Rails 6 comes out sometime next month.

There is another misconception that Rails is hard or you'll read online that x framework is easier. So bootcamp grads learn express.js and then wonder why they can't get a job after graduation, learn less than you need to know is easier but will not produce the desired outcome.

Laravel I would say is the second best choice since its Rails-like. Laravel has this weird obsession overwriting middleware. I never understood this since Rails comes with all the middleware you would need so you never think about writing middleware. PHP tends to attract poorest quality developers. What you save in money running on dirt-cheap servers you'll lose more in time and QA.

ExpressJs is dead last unless we're talking about building some kind of toy app. micro-frameworks are good in the hands of experts for production since you have the ability to architect some cool components, though less experienced developers tend to roll some weird code. Trusting NodeJs packages is another thing. They have lots of packages but this is due to the langauge coming with next to nothing built in so we see an explosion of dependencies. Packages are so bad I have to use third party service to ensure there is nothing malcious when I put my NodeJs functions running on Lambda.

Collapse
 
mvoloskov profile image
Miloslav 🏳️‍🌈 🦋 Voloskov

Wow, so much text!

Thank you for sharing your opinion! I can see you really like RoR :)

I think you underestimate PHP and NodeJS tho. PHP developers are really cheaper, PHP is really much more widespread across junior and middle developers, and if one knows PHP better and needs an MVP in two weeks, these are obvious reasons to stick to it.

RoR is really great tho, this is why I've given it compliments :)

Collapse
 
rahulchowdhury profile image
Rahul Chowdhury 🕶

Thanks for the detailed explanation and also the heads-up about Rails 6. I checked that it's scheduled for April 30. 🥳

Also, I've been reading posts claiming RoR is slow. I would love to get insights from someone who's actually worked with RoR and not just conducted some benchmark tests.

You seem to be experienced. Any comments on that, Andrew?

 
andrewbrown profile image
Andrew Brown 🇨🇦 • Edited

I use to run a B2C web-app with 500K users. I think 30-50K active per day during peak months ~100K active per day. I ran this all on a single server for ~$200 CAD per month where pages would load between 30-70ms with no caching layer and there was quite a bit interactivity on the web-app.

It doesn't make practical sense to drive a race car around town so when it comes to choosing optimal languages to build your web-app you wouldn't choose to write it in C++ (which by the way OkCupid actually did). Choosing your language based on speed in 2019 doesn't matter. If you need speed for specific components for your app, then write them in isolate, and then in your primary language ensure its the most productive for developer and business needs.

We saw an exitus of people leaving Rails around 2014 because of performance issues and I experienced this myself. Instead of moving to Go or Elixir like others I discovered my issue was the many abstractions and DSLs and simply stopped using them and better code.

I was looking at dev.to codebase today and I was flabbergasted by the number of abstractions, anti-patterns and DSLs for such a simple web-app. Looking at their codebase is one of the reasons I stopped doing full-stack development to be a Solution Architect. I'm just tired of dealing with such obvious messes.

Rails is fast enough, its developers over-organizing or mis-organizing their web-apps. If you read the DDH's blog (the creator of Rails) he himself doesn't use any abstractions that are considered "must use" by Rails developers.

David here on Dev.To makes a good point on this about using things you don't need: Why You Shouldn't Use A Web Framework

A common problem I've been encountering in Toronto with startups that have a python component because they are using Machine Learning and so they think it makes business sense to write their entire web-app in python. Though finding python full-stack developers is difficult and expensive because python developers want to be doing CompSci not tinkering with web-frameworks. It never dawns on them they could use Rails or Laravel but still use python.

 
rahulchowdhury profile image
Rahul Chowdhury 🕶

This comment has got to be the best explanation on this topic, Andrew. Thanks a lot for spending the time to write this comment.

Means a lot to me. I owe you a coffee or beer whatever you prefer. 😁

I'm sold on Rails. Will be refactoring my Express app to Rails in the coming weeks. It's pretty small right now so porting shouldn't take too much of time.

Want to lay the foundation right. Thanks again, Andrew.

 
andrewbrown profile image
Andrew Brown 🇨🇦 • Edited

If you ever want some 1-on-1 time with via Zoom to do some Rails.

andrew@exampro.co

It may seem I'm Rails obsessed, but I just want to see the best outcome for people and will use whatever technology is the best fit.

Maybe you could tell me about the tech/startup scene in Bengaluru. Lots of people from India come to Toronto specifically to learn full-stack development at bootcamps or community college They keep saying they don't have the learning community and resources they have in India and its changed their life just coming to Canada to learn to code. I'm skeptical to believe that since I have no first hand knowledge and would love some perspective.

 
rahulchowdhury profile image
Rahul Chowdhury 🕶

Thanks a lot for the Zoom call invite, Andrew. I've started learning Ruby and then will start with Rails.

Let me get a hang of this and then we can have a chat. 🙌🏻

It's not bad here. Bangalore is pretty active in tech if you work for startups. Formal education system lacks proper tech exposure, though.

More on this when we have the call. 😀