What are the advantages and disadvantages to use one of them? I know this is a FuelPHP forum and it is not very properly to ask this question but I am curious and I have recently migrate from laravel here because FuelPHP is more logical.
You are correct in that our answer will always be biased.
There are a couple of things we value, and laravel doesn't offer:
- simplicity, ease of use (easy to understand API) - light weight (laravel pulls half of symfony in these days) - long term support (every new laravel version is a new framework, no portability exists)
FuelPHP is quite popular in corporate development environments, were it is used for business applications with a 5-7 year maintenance cycle. Migrations due to new framework versions, steep learning curves, porting code all costs money, without any benefit for the business owner. So these are things you want to avoid.
I am sorry again for the creation of this discussion because it is not properly because it offends FuelPHP and based on it frameworks and their creators and users. So what is the future of FuelPHP, do you believe that it will look some day like the monster Zend Framework? Or? Why they call it like that(monster)?
If you say that their documentation is more accessable for absolute beginners, you are probably right. One the other hand they don't have to free people from development to write documentation, they have skilled people like Jeffrey Way to do it. We don't.
Also, as said before, our documentation is not meant to teach you how to program. If you are not fluent in PHP and OO programming, you should not start with a framework, you should work on your skills first.
And as to your last remark: I don't understand that. Do you actually want FuelPHP to evolve into the complex and slow frameworks that are Zend and Symfony?
I don't care about Jeffrey Way and Windows too. I care about taking the maximum quality in a certain situation. Different frameworks are useful for different things. I don't think FuelPHP is useful for very complex things but on the other hand Zend is the perfect choice that is way they call it "The monster". FuelPhp is useful for small and medium projects where speed must be leading indicator. Am I wrong?
Zend is not better than FuelPHP and vice versa.
Laravel is not better than FuelPHP and vice versa.
Laravel is not better than Zend and vice versa.
Other frameworks are not better than FuelPHP and vice versa.
One framework is not better than other frameworks and vice versa.
FuelPHP like its creators must be strange, magnificent, bad, good, beautiful, ugly and ...
And based on what do you think that? Your many years of PHP experience, and FuelPHP experience in particular? Or is it just a random thought trying to defend the heavy frameworks?
We have applications serving millions of requests written in Fuel, we have entire corporate backend systems written in Fuel. What makes you think you can not do that?
For starters, if you have made something complex, you're doing it wrong. Complex is hard to design, hard to build, and hard to maintain. And should be avoided at all costs, since all of the above make it very expensive.
Likewise, a complex language or a complex development framework increases the cost. It's why web applications are not written in assembler or C, and why you should avoid complex and heavy environments like the plague. For example Java. Or Zend Framework. Or Symfony.
So yes, you are very wrong.
I'm not going into the remainder of your post. You use the best tool for the job at hand, period. What the best tool is, depends on the person and his/her circumstances.
And for me, it is not only the product that counts, but also the people behind it, and their openness towards the community. As an example, recently someone needed a feature to allow theme partials to be rendered in custom order. Next day the feature was build in. Try that with most other frameworks.
Why are you against heavy frameworks? If I were you, I would have neutral attitude for other frameworks even for FuelPHP. FuelPHP is not perfect but it is not bad. I am not trying to defend heavy frameworks but I am trying to keep neutral attitude. I heard that facebook made API from C++ to make the website running faster before. You speak like a nationalist but in programming terminology. Where can I use Zend Framework or heavy frameworks?
I wear multiple "hats", i.e. I have multiple roles.
As FuelPHP project lead, I couldn't care less what others do or don't do. If it's interesting, we can see if it fits, if not, we forget about it.
As owner and CEO of a development company, time is money, and clients don't pay for something they can't see. So I need a framework that is not resource heavy, is not complex to learn, is stable, even over many years, and doesn't introduce complexity and overhead, because all these things cost money that I can not recuperate from my clients.
I thought I was clear. Your question is a bit llike "why are you against using bicyles to transport heavy machinery"? It does not make any sense. You can use whatever you want, I'm not stopping you. But if it is your goal to convince me Zend or Symfony is the best since sliced bread, let's turn it around. Instead of moaning about what I write, why don't you try to convince me it's a good idea to use a heavy framework? Because until now I haven't seen a single argument from you.
Your remark about Facebook again proves that you are not actually have the skills to be in a position to be opinionated about this subject.
Facebook has made a PHP JIT compiler called HHVM, and Fuel v2 is tested against it on every commit (see http://fuelphp.com/roadmap) to be compatible with it. We already have Fuel apps in production running under HHVM. It is not an API.
If I can't convince you that heavy frameworks might be good in some situations not in every possible. I must say that other frameworks, their creators and users are idiots. You are saying this to me not literally. Zend framework has a lot users.
I can only repeat: you pick the right tool for the job. And there are plenty of reasons on why you think something is the right tool. As those reasons sometimes have nothing to do with the tool itself, but with the environment.
Why is Java still so popular in corporate environments? Even when it is proven that both development and the ongoing maintenance costs of java applications are stagering? I have a client that once had a quote of 146.000 euro from HP (then EDS), to add 9 database fields and two forms to an existing Java application. And why is it difficult to convince corporations to go for PHP?
Has nothing to do with the tool. Java is percived by management as "corporate", and the big companies sell it as such because it makes them big bucks. PHP is percived as a childrens playground, not fit for purpose, only a hobby tool. And yet the facebooks of this world use it to produce massive applications.
I am not saying anything about other people. I'm just telling you my experience. Projects we do with "those" other frameworks are more expensive for the client. The code is more complex, there is a steaper learning curve for my developers, maintenance and additonal development takes longer because of that. There is a need to be "certified" for Zend!
The codebase of an average Zend or Symfony application is four times the size of a FuelPHP one, for the same functionality. And the resulting app runs a lot slower. Code in Fuel is also distributed at several levels, in packages and modules, and within that devided by functionalitiy. So every PHP file in Fuel tends to be small, purpose build for a single function, and easy to understand.
If a client is perpared to pay, who am I to turn it down. I'll do the project in assembler if the client wants that. But if we need to quote, or compete for a project, those frameworks never win.
The number of users doesn't say anything about the product. Cocaine and Heroine also have a lot of users. That does not make it a good product, and it does not make me want to use it.
People are sheep. It is large and complex, some big companies use it, therefore it must be good. Not.
And understand me well, FuelPHP is not perfect. If it was, we wouldn't be working on a new version.
Again, this is my personal experience, and after more than 30 years of commercial software development, from writing device drivers in assembler to corporate applications in PHP, I think I can safely say I have some.
One thing I would append to Harro's points: companies are often tied to frameworks because of the existing competence of their employees and the high cost of trainings. For example at my workplace, I tried to convince my bosses to start using FuelPHP instead of CakePHP. I think I don't have to list them, we know that Cake is pre PHP 5.3, has many-many flaws, and it all didn't count, because our existing projects are written in CakePHP (a very bad, unprofessional initial choice at first place), and my colleagues know only Cake. Wow. So our company gets stuck on Cake, and not using namespaces, and Composer, and other benefits of modern frameworks.
Zend, and other outdated frameworks are popular because of these factors, and not because they are better, or even best suited for a task. I don't question that there's no best tool for everything, and that all tasks have the tool best suited for it, but these statements don't oppose that some tools (which were amazing at their time) get outdated, and become a creepy friend of yours, that keeps around, but you don't really want to friend him any more.
again! comparing frameworks, Harro : "" As owner and CEO of a development company, time is money, and clients don't pay for something they can't see. So I need a framework that is not resource heavy, is not complex to learn, is stable, even over many years, and doesn't introduce complexity and overhead, because all these things cost money that I can not recuperate from my clients. ""
after joomla i go to learn laravel ( i am a stupid learner :D ) i read some documents and watch some video casts, then go to cake and zend and then codeigniter, learning and using codeigniter takes 2-3 days for me, after while i go to laravel site and try to learn more about it and same for cakephp, but all fails,
i must select some thing that be stable , feature rich (almost rich ;) ) and easy to learn for my develop team, but just codeigniter is like that thing,
recently i came to fuelphp site, and just like CI, i get its basics in 2-3 days, delicious :).