Ask HN: What technology/language should I learn to make wep apps?

3 points by coreyja ↗ HN
Hey Guys,

My name is Corey and I'm freshman Computer Science major. I've been programming for awhile, but I want to get more into the web side. I have done web development stuff before but that is basically limited to HTML, CSS and minimal JavaScript. I've used a little PHP but basically only enough to make a WordPress theme. So my question is basically what language/technology is kinda the main stream of the best for server side web app development? Pros and Cons of different technologies would be very much appreciated. The main one that I'm leaning towards is Ruby and Ruby on Rails. But PHP is another one and I've heard Facebook is written in that and they seem to be doing pretty well. Just wondering every bodies thoughts. Thanks and sorry for the fairly broad question.

2 comments

[ 2.2 ms ] story [ 24.9 ms ] thread
Ruby on Rails would be a good system to learn (but make sure you really understand what's going on over on the database side of things; it's easy to do stupid stuff with Rails if you aren't paying attention). Ruby on Rails also appears to be perhaps the most mainstream option right now.

PHP as a language has never appealed to me, but it has the advantage of, it's very easy for novices to install PHP applications on their server. Consider Wordpress. If Wordpress were in Ruby on Rails, it probably would be nowhere near as widespread, because it takes more effort to get it running. Wordpress is pretty much, plop the files on your server and it's running.

To be honest with more and more of the UI portion of web apps moving to pure HTML/CSS/JS the back-end choice is becoming less and less relevant. A lot of us are implementing the entirety of the UI in client technologies and utilizing the back end via REST as a service layer. In this architecture, the stack you choose becomes less important because if you decide to swap it out you just start writing new services in the next languadge that you choose. For example I was doing quite a bit of REST services in Java but I just switched over to Clojure and have been implementing new services in Clojure. I could have (almost) just as easily switched over to Ruby or Python if I wanted to. Getting the UI out of the back end stack makes the choice of which stack less of a huge decision because it breaks a great deal of the technology lock in that happens when the UI is locked away in back-end languages. It's not for everybody, but it is something to consider when looking at how the future of the web will be built. The trend of architecting web apps in this fashion is growing as it offers some pretty compelling benefits.