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.
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.
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.
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.
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.
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.
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.
This poll is very interesting to me for one reason - Python is winning the poll, yet I very rarely see/use any large web applications that are actually written in Python. I'm guessing this is partly because Python is increasing in popularity now, and the web applications being written in it haven't yet reached the wider public? Also, perhaps, a lot of small personal projects are done in Python yet don't scale out into the Gmail/Gdocs/Github style ubiquitous services?
The poll is also missing Javascript which is very strange, as it's probably still the most used language for the front end of web apps, and with Node it's probably used more regularly for the full stack, too. EDIT: Looks like Javascript was just edited into the poll now.
There are a ton of large web apps done in python. Youtube, disqus, bitbucket, The Onion, some mozilla properties, instagram are the examples that come to my mind. A simple google search would probably result in surfacing many more - see http://stackoverflow.com/questions/886221/does-django-scale
... how do you know what major web applications are written in? A lot of companies go to some length to obscure this.
Also, aren't a lot of rather big names into Python publicly? Disqus, Pinterest, Dropbox, Everbrite, SurveyMonkey.. There are just the ones I can remember talking about using Python.
Don't quote me on this, but I think Python is more wildly used than Ruby as a language, but not on the web and it's popularity on the poll might have to do with Rails now falling off little since it's not the shiny new toy anymore.
Everyone seems to be all up in Python right now and I don't know why.
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).
>C# is tied to MS stack. I know, there's Mono, but I'm somehow sceptical using it for a web app...
I don't understand why the initial reaction to Mono is always skepticism. No one's first reaction to other open-source projects is instant skepticism...
It's possible that people commonly conflate their feelings towards Mono with their feelings about the general CLR/C# environment.
Not saying that's definitely the case here, but how many web-targeted projects exist for .NET/Mono? Obviously, there's ASP/MVC - but what else? Compared to the number of web frameworks/etc for Java? (I don't know.)
The anti-Microsoft sentiment seems strong among web devs. So, when new devs start out, they might read a lot about how if it comes from Microsoft - it can't be good. I am fairly certain that that is a strongly contributing factor to people's avoidance of it.
No, but I'd be very surprised if it was better than Eclipse & Java, because Python is dynamically typed and generally less explicit (Java has access modifiers, standard annotations like @Override etc.).
perl.... as an APP without a framework.
Then i would plug that APP into a perl framework ie: Perl Catalyst. And if im not happy, i can change to Dancer or mojo
And then JS for client side.
Yeah!
App is web(-framework) agnostic.
Easy testable.
No fat controllers!
Same app used from web, email, CLI, irc, you name it...
Web framework is a glue, not a cage. :)
I used to do a lot of desktop development but for the past 4 or 5 years have mostly been doing web development. I'm quite fluent in Python, C#, Javascript, etc. I can't imagine doing a large project in Python, it feels hacky. It has a ton of great features like the "with" statement which is pretty cool but I still reach for C# and Asp.net MVC for large web projects. Maybe I'm missing something.
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.
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.
I'm pretty much a JavaScript guy, but lately I've been writing a lot of stuff with Ruby for work, so I might give a Rails a try, really depends on what we'd be building.
And while I'm commenting I might as well add at at this point if I wouldn't touch PHP or Java with a long stick. I can barely sleep at night when I think of all the people who still write Java on browser...
>I can barely sleep at night when I think of all the people who still write Java on browser...
You are probably talking about Java Applets. No one is writing web apps as Java Applets anymore (if you could even call something like that a web app). We're talking about real web apps, and a lot of companies are using Java to build them (e.g. Gmail and a lot of other Google Products, ...). Plus, the JVM is a great runtime for other (more dynamic, less verbose) languages like Scala or Groovy.
What is the size and scope of the project?
What feature-set are we looking at?
Anything realtime?
Performance critical?
Large team building components at the same time?
Maintainability?
Scale?
If you really must pick a one-language-fits-all (and i think this poll reflects this logic) it would have to be python.
So, choosing tool before job; python. But also, you would be an idiot.
I prefer C for critical parts, reserve the option to use Python for stuff that Python is good at and use mostly Javascript in the front-end usnig a MD* Framework.
My clients mostly just ask for PHP though. That's my problem though, I need to find new clients.
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.
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.
And there's no way I'll vote up a poll with ten options including Dart but not JavaScript.