DEV Community

Cover image for Help me choose: My desire vs popularity. Your opinion please!
Eric The Coder
Eric The Coder

Posted on • Edited on

Help me choose: My desire vs popularity. Your opinion please!

A few days ago I wrote a post about my choice between Django, Rails or Laravel. here is my post: https://dev.to/rickavmaniac/django-rails-or-laravel-my-personal-journey-30lh

As of today I have not yet made this choice. I have studied the matter from all angles but I cannot make a decision.

Here is my dilemma. Clearly I prefer Ruby on Rails. However as mentioned in my post Ruby on Rails is not very popular locally (and even globally). And I am afraid of the consequences this could have at all levels. Is that really reason enough not to choose it? Would you pass popularity first? Do we base too much of our choices on the cool new kid on the block? Or maybe it is wise to do it?

I guess I'm not the first to experience a similar dilemma.

Your opinion please ...

Top comments (9)

Collapse
 
karandpr profile image
Karan Gandhi

Hey @rickavmaniac
I read your posts and I found them relatable.
I usually have this dilemma and I ask myself a set of questions like below.

  • Is my replacement easily available in the market if I am not around. 1.5 years is a long time and things can change pretty quickly. It's always advisable to use technologies that can be easily learned or the developers are easily available. In your case, I believe it's laravel. Hate on PHP but you can get good PHP developers much easier than ruby or Django devs.

  • In case I can't get another developer, how easy it is to train another developer and how much time am I willing to spend on it? If the learning curve is steep, then it might be enjoyable but it doesn't make sense is someone else is unwilling to put a similar effort.

  • Are there any breaking changes when framework updates? One word. "Angular". For the long term, projects don't invest in frameworks that are "cutting-edge" or have breaking changes every 6 months. By the end of the project cycle, your project is already obsolete and you can't even train or hire a developer for your stack. A thumb rule is to check changelogs of updates, major and minor, and see how the release cycle affects the current stack.

  • How easy is it to migrate the stack to a different server or how easy is it to update the stack to a newer version? After 2-3 years, we might have to migrate to a different server for performance or economical reasons. After 5 years we would expect to migrate for security reasons. A fine example will be PHP 5.6 and PHP 7.x.Another example is your site has more traction and you need to handle load balancing.

  • Is the stack I am choosing in active development? If not then don't use it. Clear and simple. Don't invest in dying stacks even if you are an expert in that stack.

  • Are there plugins or functionalities which are required by your project but unavailable on the framework. If not, do I have the necessary skills to roll my plugin and test it? - This part is important. 6 months down the line there should not be a case where something which was easily available in say rails but no such functionality is available in Django. Depending on that situation you will either have to write your own plugin/hack-job or start a project from scratch in different projects. Avoid this by investing time in researching everything you need and may not need beforehand.

That's probably about it I guess.
Just another note. You should make a series of your posts.

Collapse
 
ericchapman profile image
Eric The Coder

Thanks for taking time to respond to me. For my part for now I am a solo developper but maybe down the road a resource could be added. One thing I know is how popular is Python and PHP but it' harder to size the Ruby popularity. We know is way less but still reasonable? Or not?

Collapse
 
karandpr profile image
Karan Gandhi

Well, let's ask @ben to share his thoughts about RoR. :)

Collapse
 
ericchapman profile image
Eric The Coder

I try to make a serie out of all my parts but I dont see the place where I csn enter a series name as mention in the help...

Collapse
 
karandpr profile image
Karan Gandhi

dev.to/kallmanation/dev-to-writing...
You will have to add
series: My Series Name to the section between --- and --- in markdown

Collapse
 
versioneye profile image
VersionEye

My advice is, don't follow the trend. If you just do a certain technology because it's trendy now, you always run behind the train. Pick the technology which makes you the most productive person.

Collapse
 
ericchapman profile image
Eric The Coder

You raise a good point. My goal is to create a web application now. This is where I need an effective tool. Also, I must not forget that technology changes rapidly and that in a few years regardless of my choice, the application will undoubtedly have to be redone anyway.

Collapse
 
versioneye profile image
VersionEye

The majority is not always right. Just because everybody is doing X, doesn't mean that X the best technology choice for your problem.

I also looked into different technologies, programming languages and frameworks, but for a simple Web App, my first choice is still RoR! Of course it depends. If your requirement is to have a super dynamic App/Game, then VueJS/React is the right tool for you. And if you need to parse big files or you need heavy parallel processing than I would recommend GoLang. But for most WebApps simple server side rendered HTML is totally fine, and much better for SEO as well ;) And a little bit client magic can be added with Stimulus.JS. For the majority of WebApps my first choice is still Ruby on Rails because it just works and it makes me more productive!

Thread Thread
 
ericchapman profile image
Eric The Coder • Edited

I did some test with stimulusReflex

I think for individual developper and small team that could be a game changer.

For my part, with Rails and stimulusReflex I made a existing search page reactive with no JS and 2 lines of code. Hard to beat that kind of efficiency!

For my business project I had decided to go with Laravel but after couples day of coding in PHP I am not sure anymore. Laravel is great but PHP code is not Ruby. I miss Ruby. I think seriously to redo what I done in Rails. I will re-think about that this week-end...

Rails and Ruby are not perfect but for development speed, efficiency and fun they are hard to beat! Once you taste that is hard to use something else because for many code snippets I type in PHP I say to myself, « that one will have been easier to do with Ruby :-) »