Ask HN: Could you build an entire web app in just one language?
https://news.ycombinator.com/item?id=2647243I was tutoring someone in web app development recently, and the monumental task in front of him really hit me. He was trying to learn and use at least 9 "languages" at the same time.
This was just one possible stack, but in our case it was.
Ruby - Rails - MySQL - Bash (command line usage) - CSS - HTML - Javascript - JQuery - Git - (Capistrano, Yaml, nginx, ??)
Even though these aren't all true languages, they appear this way to newcomers since they are each a new syntax to learn.
If you slowly built up these skills over 15 years, they are clearly separate concepts in your mind. But for a newcomer trying to use them, it's not even clear which are which.
Is that a Ruby method or a Rails method?
Is "script/server" a shell command or is "ls" part of rails?
Is <a href="..." onclick="..." style="..."></a> html, js, or css?
He made a comment along the lines of "wouldn't it be great if you could build all the pieces of a web app in one language", and I started thinking about it.
GWT (Google Website Toolkit), ActiveRecord, CoffeeScript, and Heroku are all steps in this direction. You could classify them generally as trying to "eliminate a language in the stack" or allowing you to do a piece of the stack in a language you already know.
Obviously there is a trade off here between power and simplicity, but I'm wondering - would it be possible or desirable to get an entire web app down to just one language? If not that how few could you use?
Btw, I think there are benefits to seasoned developers here as well. I remember Lars Rasmussen (creator of Google Maps and Wave) mentioned something to this effect at Google IO in 2009, that GWT allowed him to spend his mental CPU cycles at a higher level and be more creative (not having to worry about cross browser css or js). So the benefits may not only be for newcomers.