Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I'm in the early stages of development for a web application that has three developers (myself included) working on it. The project is, at its core, a web-based database that will be used by around 5,000 people. Its primary purpose is to track information about game characters while enforcing a set of rules and security. Meanwhile, it's supposed to be as usable as possible.

While the main presentation will be over a networked desktop web browser, we're also hoping that

  • certain features of the application will be usable while disconnected from the network and

  • that we can develop a version of the frontend for mobile devices.

Here is some basic background for the developers; I think it's fairly relevant to the question.

  • Developer A maintains the system we are redesigning. It was built in PHP but there is very little actual code that we can keep. He also has veto power, though he takes suggestions readily.
  • Developer B is familiar only with VB and SQL, though he has been studying AJAX and HTML/CSS lately.
  • Developer C (me) has a degree in Software Engineering with experience in multiple (non MS) languages as well as with some general web/database development, but has only developed code in Ruby since graduating (2009). Dev C has experience in an older version of PHP and helped work on one project in the latest version of Rails back in 2008.

The main tools we're considering are Ruby on Rails 3 and PHP 5. Developer A seems fairly opposed to learning Rails, but my guess is that he is assuming it is more difficult to learn than it actually is. I don't know that for sure, though. Regardless of which we choose, I want to use a MVC architecture.

What are some other notable concerns we should address in order to determine which language would best suit us? Are any of the concerns listed below trivial?

The main issues/points/concerns I think I need to consider/address are:

  • The learning hurdle for Rails - for developer A, mostly, but also if it would be harder to learn a bit just to help for developer B than it would be for him to learn a bit of PHP.
  • The possibility that there will be performance issues with Rails.
  • The lack of forced structure with PHP - should I expect difficulties enforcing an MVC
  • Ease of AJAX integration in PHP vs. Rails.
share|improve this question

3 Answers 3

up vote 1 down vote accepted

Your first decision is application structure. Second is choice of the framework. Language could be also a deciding factor, but it's not as important.

Since you would need to have all sorts of different entities in your system, characters, abilities, probably spells an other information - you would need a comprehensive relational database. What you also need is a powerful ORM, which is basically a bridge between relational database and programming language.

From here you would need to decide what you are doing in terms of user interface. Your team consists of 3 developers and B only learns HTML, so you need a framework which has a powerful support for web ui.

PHP have much larger selections of different frameworks, search for "PHP UI Framework", but keep in mind that you need UI to work seamlessly with ORM and database.

If you just ask people, the dialogue would be:

  • Which framework?
  • Framework X, it's easy!
  • Why?
  • Because I spent 1 year learning it.

That wouldn't be so simple for you if you are just starting. Try making something simple in few frameworks, see how flexible and comfortable you feel with each of them.

I'm interested to what did you choose :)

share|improve this answer

You're challenge here is to migrate to a more structured code.

Here are some of my inputs.

  • learn some tips on refactoring.

  • You can migrate the existing PHP code to a PHP Framework that enforces MVC, like CakePHP. For this case, Dev A has a shallow learning curve since he will be using PHP.

  • Migration to Rails, I think, will be more challenging since Dev A has to learn it (and if he thinks he's forced to it, then you have a problem :( ) and you'll change the existing code base to another language.

I hope this helps :)

share|improve this answer

This is a case for prototyping!

Take both PHP and Rails (and perhaps other tech stacks that you might want to evaluate) and build a small piece of functionality end to end with them (give your mini-team 1-2 weeks to do this), ensuring that the functionality ticks off some of the concerns you've raised (offline access and multiple clients).

So something like a Character object with 5 fields that you can CRUD to a DB both centrally and locally (modern browsers that support 'HTML 5' allow this) as well as 2 separate UIs. One UI for the desktop web browser and one for say an Android or iOS device. There are many UI options for mobile, if your app is fairly simple then I'd go with an HTML based solution as opposed to native.

Hope that makes sense!

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.