views:

288

answers:

5

I've been building web sites off an on for about 10 years. 2 years ago I started using ASP.Net. I'm working on 2 projects right now, one using ASP.Net MVC and the other using Java / JSF / Spring / Hibernate. I've also used other frameworks (cgi/perl, php, ASP, jsp, jsf).

What do you think is the most productive programming environment for building web applications?

I have not used other frameworks such as Ruby on Rails, Glass Fish, etc. Are there any frameworks that I might be missing and should look at?

I'd really be interested in hearing opinions from someone with Ruby on Rails experience.

+2  A: 

As a long time rails developer it gets my vote. But I think the important factor being the MVC foundation. It really allows the skeleton to be really setup and you just flush out the logic. My clients are constantly impressed how quickly I can add or change things.

Squeegy
+3  A: 

Frankly, it depends on your familiarity with the environment. RoR/Django certainly can improve development time, but if you know ASP very well, it may not be worth the effort (plus, you're giving up the visual designer, if you use it). Lots less boilerplate and more "magic" in Django/Rails.

It's also worth noting that you're going to end up handing off more direct control of the database to an ORM to do things the "Rails Way", assuming you're comfortable with that.

phresus
+4  A: 

I find it's less about the particular language or environment but rather how comfortable you are with it yourself as a programmer - the more time you spend with a language, the more you become efficient.

You can give me a hammer, and I probably couldn't build a house with it. But put the hammer in the hands of someone who knows what they're doing, and they'll make something beautiful with it.

routeNpingme
Nice answer, but there *are* differences. Still +1
krosenvold
That's true. But one of the big problems I have with my JSF project is that when I change 1 line of code. I need to stop tomcat, re-build the entire project, re-start tomcat, and then test if it worked. This takes about 5 mins and over the course of the day I spend a lot of time waiting.
scurial
There are ways to tighten the edit-test cycle. 5 minutes is certainly excessive. Some of them involve throwing hardware at the problem, some do not (hot-deploy containers, for example.)
Jared
+1  A: 

The most productive environment is always going to be the one you know the best. I've been doing java development almost exclusively for the past 10ish years, so just about anything I want to write I default to java (unless there is a clear advantage to using something else) and I am very productive with that.

There is another question in there though: What is the best web programing language? Without getting into a techo-ligious debate of language 1 over language 2, it is part and parcel to productivity & efficiency of development. I am a very productive java developer but if the tools aren't right for the job it doesn't really matter. My most productive language may not be the most efficient. If I write 500 lines of java code in 2 hours to solve a problem, that is pretty damn productive. But if I achieve the same result with 5 lines of Wonder-Language++ in 10 minutes, that is efficient.

Look at what you want: the goal.
Look at what you have: your tools
Consider how to get from A-B

If your experience mirrors my own you will realize that while some tools are very versatile there is no one Silver-Bullet of Development, not even on the web.

-Mel

+1  A: 

I've used several languages and frameworks as well, from .Net (both MVC and Webforms), Classic ASP, RoR, Merb, and Django. As others stated above, your most productive will be the one you're most familiar with. However, I believe that constantly exploring other frameworks (and languages) will benefit you as a developer. It gives you a clearer picture of the strengths and shortfalls of the framework you may be using at the time and also may provide some insight into how to work better in any given framework.

Adam