I want to build a web application and am unsure which language/framework I should go with... I considered node/express/meteor or python/django or ruby on rails... how do I even decide?
Thoughts?
I started learning web dev about a year back. I was right where you are and I will try to shed some light on what I finally landed on.
___
Frontend- ReactJS
Backend - Google Firebase
___
React is amazingly simple to learn. You just need to know some HTML, CSS and JS as a base. Google Firebase is probably one of the greatest things ever made. As a beginner, it helped me do things in days that would have taken me weeks.
This stack took me months to find and I'm so glad I did. I can even code and deploy static sites in minutes.
1. https://www.codementor.io/yurio/all-you-need-is-react-fireba...
For me the first and most important aspect is that for a new idea/project I just create a new Rails project, add Devise (authentication gem) and in very short time I can have login/signup and a welcome page. All of them with a decent level of security so that I don't need to think a lot about CSFR, XSS, SQL Injection (if you will follow Active Record guidelines) and many other things.
In Rails you can create your frontend directly in HTML/CSS/Javascript without the need to learn also React or Vue. And this "old" way of doing things will allow you to focus on the product and not on learning two frameworks (Rails + Frontend Framework). At least for me this is what it brings.
Also it is very easy to make your webapp expose an API and thus connect to the backend business logic from a Mobile App or some other client. This way you can re-write later your backend incrementally without loosing any downtime.
There is a healthy community of functionality packed as Gems and if you need a feature that is pretty common it might be that someone created a gem for it. Please be aware that not all gems are equal.
Also I like the language - Ruby - because for me it was very easy to pick it up and in the beginning I did not need to understand everything to have a prototype running.
I will add to this that the community is very supportive. I suggest RubyonRails.link Slack community where you can really address your questions and in general someone will help you with it.
* node.js
* python with django/flask
* perl
* php (please don't)
* C# with asp.net
* Java
* lisp
* d with vibe.d
* Rust
* C with bchs[1] (please don't)
* ruby with rails
* Write your own framework in one of the tiny languages that doesn't have one; it'll become the de facto standard for that language, and all of the users of that language will thank you for increasing its potential market share.
Point is, it really doesn't matter. What matters is you pick something, anything, look up a tutorial, and then start making your webapp. Don't like it? Pick another one! Don't like that one? Do it again! Language/framework doesn't matter that much, as long as you know it well.
There's an argument to be made for isomorphic / universal code as well, i.e. using JavaScript both in the back-end and the front-end. However, if you're fine with learning two languages I'd say that the productivity gains by mature frameworks such as Rails or Django outweigh the reduced cognitive load of having to work with only one language on both the server and the client.
I'd pick one among Django, Rails or one of the popular Js stacks for the backend.
For the front end the same criteria apply, however there is not much scope for language preference. I generally go for jQuery based site unless I have a requirement for a framework. From a framework perspective I liked React + JSX.
I'd say go for JavaScript in the backend too since you'll have to learn the best practices and idioms of a single language.
Both have great communities to help you along the way.
Due to clients I have moved from Rails to Laravel. Both are similar.
Checkout Laracasts.com.
Laravel has some great tools. Valet (Local development environment) forge.laravel.com is a great tool for setting up servers and doing deployments.
And whatever you do, don't go for JavaScript based frameworks. Setting them up is a pain and the plethora of options available for every single bit of the framework can be overwhelming for beginners.
https://en.wikipedia.org/wiki/Programming_languages_used_in_...
ps: back end column/table
For a web application I think most of the work will be in the frontend which basically means javascript. We've had a lot of success using Golang for the backend APIs and React for the frontend.
As it stands you wi9ll not only need to learn the technology you are going to use but also the programming language.
When people ask me which programming language to learn, I recommend that with the best debugger. Screaming at the computer WTF! for an hour does not help sovle problems.
For a web application I am unsure which has a good debugger, although I am sure there is some variety.
I would also look for which ones provide plenty of learning material.
Rails has a large community with Gems that can solve most of a beginners needs, and also has full-fledged solutions for business ready to go (eg. Double Entry accounting systems, monetary exchange rates/handling, oauth/users, etc)
Perhaps I'm wrong and I should take another look at Django however :)