views:

247

answers:

8

I am considering starting an e-business, but I am undecided as to which language to choose to write the core of the website in.

I would prefer to avoid the Microsoft route of ASP.NET and C# due the costs, and I also just prefer to develop on Linux :-)

Basically, I was weighing up between using PHP or Ruby on Rails. Myself and my development partner are experienced in PHP (along with C, Java and Perl), but were considering Rails as it seems to be very popular. I took a look at whether Google App engine would be a good way to kick-start the business, but I am unfamiliar with Python and also reluctant to rely heavily on Google to support everything.

I was wondering if their is a benefit to using Rails in terms of development time, cleaner, more maintainable code, bearing in mind that we would have to learn both Ruby and Rails.

Another thing to consider is that one of the common activities of the website is the uploading, downloading and organising of quite large files (0-10MB). We would like to implement our own version control system, and am in need of guidance of which languages/frameworks would be suitable for this.

Thanks

+2  A: 

If you already know PHP, it's a better option than learning Ruby first.

You can get clean and maintainable code in PHP. The main point is to separate HTML and code as much as possible. You can still use PHP code in your views instead of something like smarty.

OIS
+2  A: 

I would recommend using whatever languages you are both most comfortable using (which sounds like php). If you want to deliver maximum benefits to your new clients from your skills then you don't want delays while you work out how something works, or to introduce bugs because you weren't aware of a framework behaviour.

You can always investigate alternate technologies if you hit a project that php doesn't fit, that's big enough to justify it.

CodeBadger
A: 

I would say the most important thing in this case is to use something you already have experience with. Pretty much any language you choose will be up to the task.

Your main consideration on a project like this should be efficiency. You want to be able to spend less time coding and have more time to focus on the other aspects of the business.

This assumes you will be selling something on the site.

If the business provides some kind of automated service via the web site's core code then you would want to consider a language best suited for those tasks.

Still it is always much quicker and more efficient to use something you already know.

Dana Holt
A: 

You're comparing PHP (a scripting language) to Ruby on Rails (a web application framework). You should probably compare some PHP framework, like CodeIgniter, to RoR.

That said, PHP is definitely the "safer" choice since you're already familiar with it. It all (obviously!) comes down to whether you want to learn a new environment or not. Both PHP and Ruby are equally capable of creating great sites. I don't think there's any inherent difference between development time or code cleanness/maintainability; these are up to the programmer - although some languages promote clean approaches more than some others.

Joonas Pulakka
+3  A: 

It's not important which language you will use, but Rails is a framework, and PHP is a language. I recommend you to use a PHP framework like Symphony if you want to use PHP, or Rails if you choose Ruby.

Luke
Thanks. Symfony looks like it will help and means that I don't need to learn Ruby.
Tarski
A: 

As others have said, it's probably best to stick with what you know - use PHP. However, you should be using a framework - you're really tying your hands behind your back otherwise. Also, it lets you learn something while you use something you're familiar with. Personally, I use and recommend CodeIgniter as it's easy to get into and has a very active and helpful community.

ryeguy
A: 

The TIOBE list is a good indication of language usage and finding resources. Other than that I would go with what you know, PHP. Nothing wrong with it at all

Robert MacLean
A: 

Developing with Ruby is very fast but in your case you have to learn it first. Go through some Ruby book or tutorials and estimate how easy/hard is it for you to learn it and how much time would it take. Simply estimate how much time would it take to build your solution with well known language and how much would it take to learn and program with Ruby.

Or if you have enough time start to develop with known language and start learning Ruby simultaneously. Then when you learn enough switch.

niko