views:

692

answers:

10

I am looking for some recommendations regarding choice of programming language / technology for web development. I know there have been several discussions around similar subject on SO but perhaps the following set of criteria (in order of importance) add a bit of spin:

  1. has good quality IDE that facilitates development process (like having intellisense)
  2. allows fairly easy (i.e. quick) web development with a data back-end (like creating a blog)
  3. object-oriented and strongly typed
  4. works on different platforms (win/linux)
  5. free (at least in some basic version, including IDE)

I see number 3 really as facilitating 1. This is where PHP falls short for me. Do include language/framework/IDE set suggestions.

So it is more about what surrounds it rather than the language itself.

+2  A: 

A good direction is Java with Eclipse. You can then select which framework to use, such as Spring or Seam, and these integrate well with ORMs like Hibernate.

Others will point to C# and .NET with Visual Studio Express. Also a valid choice, and many of the projects created for Java are ported to .NET.

Jared Oberhaus
A: 

You could work with JSP pages on a Tomcat server and develop using the Eclipse IDE. With JSP's you can have your data objects be plain Java classes and Eclipse offers both environments for building JSP's and features to facilitate connecting to databases and creating DB classes. It works on Windows and Linux and the Eclipse IDE is free. Plus you get many different user created plugins.

Also, Eclipse ties in with Tomcat servers in a very simple manner.

ferrari fan
A: 

If it weren't for requirement number 3 (cross-platform), I'd definitely go with C#.NET. As it is, I recommend Java.

There's lot of documentation, two fine IDEs - Eclipse and NetBeans, it's easy, it's strongly typed etc. For your database access, I'd go with Hibernate (I actually prefer ActiveRecord for .NET, but I don't know if there's a Java version).

Pedro d'Aquino
Well, actually C# .Net does satisfy requirement 3 - the Mono project provides .NET port to linux (including ASP.NET + Apache) http://www.mono-project.com/Main_Page
mfloryan
Always Mono ...
Aiden Bell
@mfx Yeah, I know about Mono, but I've never used it. Is it really production-level? What about the IDE? Is there something as good as VS?
Pedro d'Aquino
True, IDE for Mono is an issue - there is http://monodevelop.com/ but I suppose you could use VS for development. I should have said req. 3 is for production - I don't care where I'd develop it.
mfloryan
+3  A: 

C# with Visual studio is fairly good.

Eclipse for both Java and Python (with the PyDev plugin) is also a good option.

I'd like to add that the Django web framework for Python already comes with a simple web server and SQLite3 so that you can have a very simplistic web app (like a very basic blog) up in minutes. It hasIt also comes with a fairly simplistic CMS called Flatpages (although, it is REALLY limited).

AlbertoPL
+1  A: 

Personally, I make extensive use of python and it meets all of your criteria, especially when coupled with the eclipse ide.

One distribution of python that I personally recommend is PythonXy from http://www.pythonxy.com . It is distribution that comes with many of the commonly used packages along witht he eclipse IDE, and it is totally free.

TimothyAWiseman
A: 

I think Ruby on Rails may be a good choice, depending on your emphasis on speed. I haven't done too much with it IDE-wise, but I've heard good things about RadRails. For the #2 requirement, one of the neat things about rails is this scaffolding bit that creates a basic layout for you, and then you can go in and dress it up. And, it's made for bouncing off of a database.

Lazy Bob
A: 

If you install the Microsoft Web Platform, you not only have an exellent IDE and ASP.NET, but also PHP.

Edit (didn't see point 3): That's unfortunately only for windows though. You could deploy to linux and mono, but not develop in linux with this.

fretje
+1  A: 

Our company (a Java/Tomcat shop since its inception) recently had to make this decision with similar requirements except for #4. After investigating options like Seam, we ended up deciding on ASP.NET.

That said, I've recently been impressed by Google Web Toolkit's capabilities. I haven't had time to really get into the nitty-gritty details with it, but if the Google folks are to be believed, Google Wave has been built on it from the ground up, which is pretty impressive. In that case, you're using Java with whatever data access layer you want. Google App Server looked like it might be a good way to go for back end/hosting.

Edit Google Web Toolkit plugs right in to Eclipse, by the way.

StriplingWarrior
+1  A: 

In Short: C# with Visual Studio

1) has good quality IDE.. VS is really the best IDE around. Easy to use, debug, etc...

2) allows fairly easy... Really quick with wizards, LINQ, many patters: MVC, WebForms, you choose.

3) object-oriented and strongly typed Yes, Yes,

4) works on different platforms (win/linux) That is the catch... must use Windows to Develop there is many hosting options but thats it. To have that you need to get a not so good IDE and probably a not so easy to develop language. Like Eclipse + Python or Eclipse + Java or Eclipse + PHP...

5) free (at least in some basic version, including IDE) Visual Web Developer Express. Download http://www.asp.net/Downloads/essential/

A: 

From your requirements the only suitable option I can think of is Java.

  1. IDE's: Take your choice from ItelliJ IDEA, Netbeans, Eclipse (in that order of preference.) They are all excellent and significantly better than most of the options for Python, Ruby, Perl, PHP and C# (looking from a cross platform perspective.)

  2. Check out any of the frameworks Tapestry, Spring's web framework, Stripes, Struts...they can all do this kind of thing in the dark, blindfolded, hands tied, in the rain with nails on the floor.

  3. Java...

  4. Java...

  5. Java + Eclipse or Netbeans.

Personally I worked with Struts 2, Hibernate (for ORM), Tomcat and Eclipse at a firm in the finance sector last year and the application is serving over 20000 people, so that's my recommendation.

Chris Nolan