views:

88

answers:

3

If you had to redo a site that has around 150 tables and 250,000+ visitors/day in any web platform, what would your choice be and why?

Some points

  • The team has experienced developers
  • The old application is written in unrefactored PHP. It's unusable.
  • Much of the database is not normalized, and there are columns in the wrong spots. Many new features and the database can't support them now.

Desired goals:

  • Excellent and fast testing (grails is bad for this)
  • Good seperation of concerns (domain, controllers, views) with ability to not duplicate anything
  • Concise code & Elegant design - no code bloat
  • Flexible - we don't want to run into a leaky abstraction problem
  • Coding and testing are fast - it shouldn't take 1 hour to write a controller test, or we shouldn't have to spend more than 1 minute or so writing a reusable tag, for example.

Scala is on our minds, but we are having a hard time seeing how that can work as the tooling is not mature yet. We actually don't like Grails. A lot of us are used to Java/Spring/Hibernate, but are sick of the low-level nature of it and want something more expressive.

+1  A: 

This is a pretty unanswerable question, because there a large number of factors that need to be taken into consideration which you haven't mentioned. For example, what are the skill sets of the developers who will be rewriting it? How is it currently implemented? Can existing code be reused? What are the performance requirements?

If it was my decision, I would choose Groovy/Grails because:

  • I like Groovy/Grails and know these technologies well
  • Offers good performance as it's built mostly on Java and mature Java libraries like Spring and Hibernate

Update

Excellent and fast testing (grails is bad for this)

I am not aware of any web framework that puts more effort into testability into Grails. It makes testing all types of artifacts (controllers, domains, services, tag libraries) very straightforward.

We actually don't like Grails

If you already know Java, Spring, and Hibernate, I find it very hard to understand why you don't like Grails.

Don
Okay, I added some things in the original question.
egervari
A: 

good old php / mysql / apache on a linux environment is the most stable I've seen .I'm working since 3 year on a Asp.Net / SQL Server / IIS / Windows and only SQL server is stable, but it's really expensive so if you don't know really where you're going (about money), you better have to take care of this parameter.

And on an open environment you'll find more help, I think.

remi bourgarel
It's only expensive if you have a larger database and cannot use SQL Express. If you can use Express then all you have to pay is the cost of the box (you do want decent hardware no matter what is running on it) and the Windows license.
slugster
+1  A: 

I would put together a detailed study group to analyze our choices, and see what we can use, and how it scales up to the load and tasks it must stand up to. After that, pick out like the top 5 choices for closer inspection, and see what floats with the team. Personally, I've come to like RoR over PHP.

Depending on the status of the old/current project, make sure everything is backed up and version controlled before it gets touched. Some people leave half their project un-vcs'd, or use none at all!

TerryP