views:

505

answers:

7

Well, I know it's a preview, and I know it says that it's not yet ready for production, and yet I dare ask the question.

I need to start building a pretty big application, which is planned to go live at around sep-oct 2010.

Lets say I will not release the application to production until the stable version of symfony 2.0 will be released - is it a good idea (well, I'll settle for a viable idea) for me to start building the application using the 2.0 version ? How big is the chance I will need to rewrite/replace code I've written due to core changes in the framework ?

Thanks.

Edit: the other option right now, is to use symfony 1.4.
I have thought and tried Zend Framework, but I refuse to re-invent each and every module, which will cost me a lot of programming hours (if not days/weeks).

+2  A: 

That's a million dollar question my friend. It's a gamble, plain and simple. I've used a number of php MVC's (cake,zend, and symfony) and they all operate roughly the same way. What's nice about symfony is it's focus on being modular, not reinventing the wheel and it's ease of use.

I can't cite any examples of larger companies using it, however I personally would use it over cakePHP or Zend at this point. I feel like it has a strong community, it's not in danger of being abandoned (at the moment) and I generally enjoy working with the framework. Which, at the end of the day, is usually all that matters.

Like I said, I don't know how well is scales up or out but it's faster than cakePHP or Zend. It's a gamble regardless of which framework you pick, so, good luck.

Matt
The question is not about symfony vs other frameworks, the question is about symfony 1.4 vs Symfony 2, which has just been released in preview release and thus should not even be considered for production.
Geoffrey Bachelet
+3  A: 

symfony 1.3 or 1.4 is the right choice for now. 1.3 if you've used symfony 1.0 before, 1.4 if not. I am personally not a fan of the from sub-framework in symfony 1.1+ for many reasons, but you may find it entirely agreeable. That's a personal choice, then.

symfony 2.0 is not stable, and many of the features it is introducing are not those which would really interest a developer, I feel, at this stage at least. sf2.0 is however a impressive exercise in making the next generation of web frameworks; but, not in making the sites you make more feature-rich or easier to develop. It may make them faster and more elegant under the hood, but this is not necessarily the primary advantage of a framework to a developer. An example of this is dependency injection. It's a further abstraction of the already excellent symfony core code components, and its inclusion only increases my respect for the symfony core team and their advances - but for an end-user it probably leaves many scratching their heads over the advantage.

The main advantage of symfony once you appreciate the basic framework is the community and its plugins, and this I think is the dealbreaker for sf2.0 right now. Yes, I know it is essentially built from 'plugins', but you will lack several crucial plugins I'm sure, and either have to write them yourself or adapt existing to suit. This is the reason you reject Zend Framework.

Still, just my opinion. I've been a symfony 1.0 and 1.1 developer (mostly 1.0) for over 3 years, and it still hasn't let me down.

Raise
+2  A: 

Unless there is something specific in Symfony 2.0 that you need for your application, I would suggest that you go with 1.4 and work with a stable version from the get-go. From what I understand, Symfony 2.0 might not be out until the very end of the year. Symfony 1.4 will be officially supported until end of 2012, leaving you plenty of time to upgrade/rewrite for 2.0 later, if you wish to do so.

Tom
+3  A: 

From Fabien's presentation of Symfony 2 at symfony live: use symfony 1.4 for your next project.

From Symfony 2 github page: things WILL change.

Now consider the following:

  • symfony 1.4 will be supported until late 2012, that's 2 years after your project's release
  • Symfony 2 does not have code generation, forms, unit tests, etc so everything that you'll do to cover up these fields, you'll have to redo when the official ways are coming (that answers your second question)

so as everyone already said here, go for 1.4

Geoffrey Bachelet
A: 

By the time you release your project, version 2.0 is most likely will not be stable anyway. And consider that version 1.4 has long terms support for 3 years, which you can count on if you are starting up a new project. Other than that, with symfony 2.0, things are not going to be same :) it is going to be so much different than current versions. You might not like it :) or it might not be suitable for your project.

celalo
A: 

The code for Symfony 2.0 does not look particularly user-friendly atm. I'm hoping they're going to add some abstracted layers over what they have already as atm it's looking far too complex and time-consuming - not something I want from a framework.

jmoz
A: 

Or you can just use Lithium...you know, it's better than all of the frameworks on the page mentioned... BUT the question IS about v2.0 readiness not about cake or other frameworks (as mentioned by other posts, though I figured I'd get my jab in too).

I personally wanted to use 2.0 on a major project, but will likely turn out not because of fear (always a bad reason).

My point is this. Nothing is stable. Not even 1.4. EVERYTHING in this world is subject to change and there's always patches and fixes for everything. If we didn't use beta/alpha software, ESPECIALLY in an open source community, we'd never progress.

So. It's a risk. The trick is you gotta be good enough to handle any problems that may crop up. I think that's just the name of the game. You're either the type of developer who goes off and installs Wordpress and Drupal and says look at me mommy grown up pants...Or you're the type that goes out and is on the cutting (or bleeding) edge and sucks it up and gets it done. Rolls with the bad times and smiles (from ear to ear) during the good.

End of the day it's your job. Don't ever let anyone tell you how to do it. You do it how you want.

Tom