views:

4971

answers:

5

I'm paralyzed by choice.

I know PHP, C# and Java fairly well as languages. Most of my web development in the past has been in PHP (with my own or other OSS frameworks). I've spent the last 2-3 years developing desktop GUI apps in C#. Before that I was doing desktop GUI apps in Java (with a little Servlets/JSP).

I want to develop a social web 2.0 site (in my own time) and in the process also add to my "salable" skill set (ie, what people would hire me for).

Do I:

  1. Go with what I know best and do it in PHP but use the latest OSS frameworks (eg, Zend).
  2. Learn ASP MVC and extend my most recently acquired skill set to include web technologies.
  3. Return to Java and learn something like Spring MVC.
  4. Go with something entirely new like Ruby on Rails.
+4  A: 

If this is going to be something in your spare time, I would recommend that you consider what languages you enjoy working in. If you find one or the other a chore to work in, then I would cross it off the list.

Second, I would consider what I was hoping to gain at the end of the project. If it is simply another tick on the skill set list, then do something that you've never made time for previously but would like to learn which would seem to suggest either ASP MVC, Ruby or Spring MVC.

Just because I hate Microsoft I would probably choose Java over C# (though C# is what I actually currently know).

Third, depending on your overall requirements, I would choose the tool best suited to your needs. Does a particular language or framework bring something to the table that will be particularly advantageous in this project? I view languages and frameworks a lot like tools in a tool belt, use the one that seems to best fit the problem that you want to address.

Noah Goodrich
Seems silly to disregard a language just because you hate the company who made it's concept.
Sekhat
It is. And I won't deny it, As a preference I work with Open-source technologies as much as possible.
Noah Goodrich
Well you don't have to pay any licence to use C# either. .Net framework has always been free and it will stay that way.
Robert Koritnik
A: 

You need to pick your main goal: is it acquire a new skill or build a successful project?
If first - go with C#, if second - go with PHP.
If money is an issue - definitely go with something that is FOSS.

PS: It is only based on what you say you know best and not on advantages or disadvantages of languages themselves.

z-boss
+3  A: 

Personally I'd go with ASP.NET MVC. I really like the way Microsoft is working close with developers to make it a nice thing. And off course this site is proof that it's already a very useable framework. Besides that it's a fact that ASP.NET is a very rich framework for creating websites/webapplications. When it comes to productivity I'd either go for ASP.NET or Ruby on Rails.

But there is just not one right answer on your question. I really depends on what you're trying to achieve. First you have to answers a couple of questions:

  • What platform do you want it to run on? (Windows, Unix, Linux)
  • Do you want to use Silverlight/Flash/JavaFX?
  • Do you prefer statically or dynamically typed languages?
Saab
+2  A: 

Good framework options for all environments:

Since it's for your spare time, you can take the opportunity to learn a new language. Also look for good communities to help you adjust to the framework and paradigm.

From what I've seen so far, crossing over from one web MVC framework to another is easy, and they share many of the same ideas.

orip
A: 

Open yourself up to new horizons and give Rails a shot.

I'm not sure how much time you've spent with REST or testing in any of the previous work you've done but the Rails framework really puts you in the right direction.

I would suggest watching the obligatory "Create a blog in 15 minutes" screencast.

In that 15 minute screencast, you'll see...

In 15 minutes, we go from scratch to complete weblog engine with comments, ajax, an ATOM feed, an XML and JSON API, tests, an administrative interface, and much more!

It's very impressive to see.

Then I would head over to http://www.railscasts.com and watch a few episodes that catch your interest. Each week there's a free screencast (anywhere from 4-10 minutes long) demonstrating a feature or technique in Rails. The production quality is very high and the content is priceless.

I think you'll find it a little bit refreshing to work outside of Visual Studio. And you'll be amazed at how quickly you go from a blank slate to a production application.

Good luck!

mwilliams
I dont understand why someone downvoted this answer; it was a good one. @mwilliams: thanks for the screencast links!
ShaChris23