× {{alert.msg}} Never ask again
Get notified about new tutorials RECEIVE NEW TUTORIALS

"I want to build a web app, what language/framework should I use?"

Christoph Wagner
May 03, 2016
<p>This question comes up fairly frequently both here at CodeMentor as on different websites and forums. Often it comes from people who are a few years into the coding journey and are getting ready to take the plunge and build their own app, but of course, it comes just as often from someone completely new to programming who just wants to know what to learn.</p> <p>So, here's my two cents on the issue. First of all, <strong>if you're completely new to coding</strong> and you just want to know what to learn in order to start building web apps, then in 2016, the choice is pretty clear: learn JavaScript. It's the only language that will work on the full stack (i.e. both for front- and backend), and for better or worse, has basically become the <em>lingua franca</em> of the Internet, much like English in the default world. If you're looking for a framework to go along with that, I recommend <a href="https://www.meteor.com/">Meteor</a>, because it lets you focus on building user interactions instead of spending endless amounts of time figuring out how to make the client talk to the server.</p> <p>With that out of the way, here's my adivce for the <strong>more seasoned developers</strong> who are getting ready to build their own app.</p> <ol> <li>The choice of (backend-) programming language has no influence on how good your app looks, and only minor influence on how well it performs. Many developers make fun of PHP all day long, but they conveniently forget that Facebook, one of the biggest web apps in the world, is written in PHP. </li> <li>Therefore, use whatever language and framework you're most comfortable and familiar with. If that happens to be .NET, but everyone is telling you how Ruby (or Node.js) is so much better, you need to stop listening to those people. Learning any new language and/or framework is going to take weeks (if not months), and therefore constitutes and significant investment. The only reasons you should even think about this are (1) you've been wanting to learn this for a long time (and have the time to invest) or (2) your primary language is at a <em>significant</em> disadvantage in the problem space your are trying to enter. </li> <li>Once you've made your decision, stick with it. Stop reading blogs about whatever other frameworks you were considering, and stop listening to anyone who is trying to sell you on whatever their choice is. They're only trying to distract you. Building an app takes a lot longer and will be a lot more work than you anticipated, and there will be times where you'll feel as if you've made a bad choice, because "x" is easier in language "y". Almost 100% of the time, that is just a case of the grass being greener on the other side. Yes, that specific problem might be easier in another language, but there's usually something else that's harder, so in the end it will all balance out. Anyone who tells you differently is just trying to sell you something.</li> <li>Finally, having a mentor can really help – both to keep you on track, and to get you un-stuck when you feel like you've reached a dead end. Four eyes see more than two, and on top of that, there are many subtle cognitive biases that tend to literally make us blind to the solution right in front of us (just ask anyone who has been staring for hours at some code that wouldn't compile because of missed semicolon). </li> </ol>
comments powered by Disqus