Poll: What Language would/do you use to build a web application

91 points by codegeek ↗ HN
There are so many languages and frameworks now to build web applications. What do you use/prefer today ?

Please upvote the post itself to share with others.

EDIT: Added Javascript , haskell and Go little late. Sorry i m such a noob sometimes!!

95 comments

[ 1.3 ms ] story [ 183 ms ] thread
JavaScript - I'd do the prototype in Meteor.js and then build it out for real with Node and a standalone front-end framework. Depending on the project, that framework might be backbone.js, ember.js or even bound.js plus other things I cobble together)

And there's no way I'll vote up a poll with ten options including Dart but not JavaScript.

Yeah, I think in the HN community Node would be a much more common option than VB.
Why would build a prototype to only throw it away? This seem naive.
I think the prototype in this case is more to flesh out the idea and its associated functions, without concerns for code quality or security.

It would help a lot in building the road map for an application, but you definitely wouldn't want to use any of it in production.

Some frameworks are designed to help with this step though. For instance: Rails has scaffolds & generators, angular.js has directives (plain old html views you can open), html itself can be used for mock-ups (and there are plenty of others as well).

Specifically, why build a partially functional prototype only to throw it away for another framework down the road.

It seems naive to me, because the effort you put into the prototype is mostly dropped (except for high-level mental models). Rather then building a throw-away prototype, I think it's better idea to build a prototype you can refactor and improve, with one set of tools.

you and I have very different definitions of "prototype"
You need to go look up "prototype" ;)
1) Seeing things in action often clarifies my design.

2) You can build things really fast with Meteor.

3) After you know what you're doing you can develop the robust version much more quickly. This time savings is often significant.

4) Since Meteor is built on Node, you don't throw everything away. You can actually keep quite a few functions and nearly all your handlebars intact when you port to the final project.

I'm not saying working this way is for everyone, but it works well for me.

Agreed. JavaScript is the top language on github by a margin (https://github.com/languages), and some of the other languages you listed aren't really intended for web apps naturally. I would add JavaScript post haste and probably kill off Dart and VB.
I am such a noob that forgot to add javascript. added now.
List needs Javascript (Node.js)
PHP out of experience, but I can't say its necessarily "the best"
It absolutely depends on the scope and features of the application... the question would hold more meaning if it were more specific?
Perl. Old and old-fashioned, but still good, and with a good community.
Try Ruby! It's like the best of Perl, without the rest of Perl! :P
Not sure if you are joking?
Perl should be listed here, I use Dancer 2.0 at work.
No JavaScript option?
Ruby + Rails because reinventing the wheel is painful and risky.
If you don't want to reinvent the wheel then you should be using PHP.
javascript definitely needs to be in there!
Other: Haskell (Happstack framework)
Definitely Java!
What, no love for Groovy?
Do we upvote Other to vote for Groovy, or Ruby? The only functional difference between the Groovy implementation and Ruby's many implementation is the alternate syntax, so really Groovy's implementation could be considered a dialect of Ruby.
JavaScript.

And, why no JavaScript?

Python, using Django or Flask. Flask if I want to get it out fast, and Django if it's complex enough to justify the overhead.

I simply like how Python gets out of my way when I'm trying to write something. I have yet to find another language that does that for me as well as Python does.

you read my mind. was going to type exactly this.!!
I feel the same way... about Ruby. I'm always shocked at how often I can just guess how to do something, and it works. The language lets you do anything.

Whereas in Python, there's one way to do it, and it's a matter of looking it up the right way to do it.

Matter of personal preference, really. They're pretty much equivalent choices for a web app and one probably just should use whichever one is most comfortable with.

To be honest, I always felt the same way about both Ruby and Python, the level of intuitiveness seems the same to me.
Yeah, I totally get that. It's just that having learned Ruby first, when I try to write Python I type things that I think should work, but they're just the wrong syntax. Like, as a trivial example, I always try to push() on a List when I want to use it like a stack. List in Python has a pop() method but no push() method, what's up with that? I guess I just need to RTFM though.
I'm building one in Haskell at the moment. I don't know that I'd go so far as to recommend it yet; the available libraries for web related work are fairly hit and miss IMHO. Some leave a lot to be desired, others are fantastic.
RoR and some frontend nonsense in JavaScript.

You really ought to specify "What language do you develop your backend in?", as that's a bit more clear in your intent.

Python here. I really enjoy working with it and recommend it often... I'd love to start using Clojure, which I keep false-starting on learning, but it's hard to find the time (which is a good indication it's just not as important to me as the other things I spend my time on; oh well).
Node.js. Surprised it's not on the list.
sorry forgot to add it. Just added.
I scanned this multiple times...

Where is JavaScript???

For small stuff CouchDB directly (with Jade as templating) or Smalltalk's Seaside, for larger stuff build for running the next decade Perl due to boring stability and backwards compatibility and least surprises.
Python, because Python rocks! No, seriously, if you haven't tried Python, try it. It's getting better every year.
I almost made it through Coursera's python course. It's a really nice language but I still find the whitespace thing annoying. Also package management seems a bit lacking but I might just not be familiar enough with the ecosystem.
package management is best handled through PIP. Virtualenv for isolated environments.
I'd say Python handles package management better than just about anything else, period.

Regarding "whitespace"... best stick with PHP or Perl.

Jeff Atwood Law: Any program that could be written in JavaScript will be written in JavaScript
I know that some people really don't like JavaScript but seriously... Dart, but JavaScript not?
Arc. I've just finished adding scrypt password hashing to it, actually.