DEV Community

Cover image for Laravel is awesome! 10 reasons why I love Laravel

Laravel is awesome! 10 reasons why I love Laravel

Eric The Coder on November 05, 2020

In the last six months I have tried several programming languages ​​and frameworks. I have done projects with Django, Laravel, Rails, Vue and React...
Collapse
 
marcusatlocalhost profile image
Marcus

I evaluated the backpack admin interface and statamic cms for a while and this was my introduction to laravel.
While I can share the excitement and can confirm how well designed the framework is, I decided against both products (but not completely against laravel).

I love that I can use Collection and Blade independently. Collection is awesome, also their Helpers ar rally nice.

What I criticize is:
The convenience comes at a high cost. There is so much magic happening under the hood, if you want to debug that, you have to really understand PHP and OOP, else you step through 5000 files and stare at code you have no idea how you got there.

Another point that threw me off was the resources a CMS like statamic needed (and I think that's because of laravel) - The execution time and memory consumption for a vanilla project was so high - what if you have really heavy things to lift?

1311 ms Total execution time (Statamic) vs 339 ms (Kirby)
24 MB (Statamic) vs 8 MB (Kirby) memory consumption

Talking about memory - the vendor folder gets huge (carbon is thousands of files) and at some point Composer always ran out of memory if I wanted to pull some library in. Again I ran 2 full laravel apps from one root - but that's the promise right?
I don't know how this would have performed in the real world - maybe a bit better because of more optimized server settings than my local dev machine, but still.

And a last point - I follow the php ugly podcast and their grievance with laravel over a long time was the weird update cycles and the removal of functionality. If you run a business on laravel you need to know your stuff and all the internals to fix stuff after major updates.

Again - Laravel is nice - but it's more hype driven development for people who tweak their VS Code for hours so it looks nice and then write 3 lines of code to call an api. Beginners should not fall for this. They need to know the basics.

Cheers.

Collapse
 
ericchapman profile image
Eric The Coder

You make good points but in my opinion you can apply your points to all battery included framework. Rails and Django face the same challenges. Only micro framework like Express or Flask can boast of being lightweight but you have to do many thing manually or use external packages. At this point it's a personal preference. But for my part I prefer battery included framework. I am a freelancer and time is money.

As for Laravel update cycle. Laravel have now 2 officials schedule update per year with plan LTS release update. Much easier to follow now.

And I fully agree with you on beginner must know the basic. That also apply to all framework.

Collapse
 
marcusatlocalhost profile image
Marcus

Good points as well. If one is familiar with a framework, quick results are the selling point.
And if you hand over your work, the client profits from a well documented framework as base instead if you come up with your own. That's a plus too.
Do you maintain some of your apps?
I think that's were it comes down to in development in general. Writing a new app with the latest tech is fun. But maintaining that once new app, 5 years later is a lot of pain, especially if so much is abstracted away. (JS tooling shows that, trying to add functionality to a project you glued together with a grunt task 5 years ago is a job nobody wants to do, contrary to add some code to a project you built 15 years ago with jQuery in a single file).

Anyway - I definitely keep an eye on that (and it's hard to not do it ^^)

Thread Thread
 
deleugyn profile image
Marco Aurélio Deleu

Maintaining a Laravel app in the long term isn't hard at all. People complain about the releases, but it's been the same release cycle for 9 years. It brings new features fast and it always has a migration path to follow. I can not remember a time where an upgrade had 2 major breaking points in the same release.

Collapse
 
ecourtial profile image
Eric COURTIAL

TROLL ON
Laravel, the framework buildt over a dozen of Symfony components...
TROLL OFF

Joke aside, I agree with the comments, starters should not use big framework and learn how to do the basics. I have seen this issue so many times with people changing of carreer. During their formation, they learned how to practice Symfony/Laravel/Whatever but they don't know PHP or how to program.

Collapse
 
agitri profile image
agitri

the only thing with laravel is that the ORM is really slow with big data set insertion, through relationships.

Collapse
 
ecourtial profile image
Eric COURTIAL • Edited

So far ORMs are not designed to handle huge amount of data, unless you have a very decent caching system (for reading) and do your operations asynchronously, and even in this case, writing operations should be delegated to the DB connector, bypassing the ORM. That's the hard lesson I have learn over the last 8 years using Doctrine and other secondary ORMs.
You can afford to use ORM for huge operations, but you need the infrastructure (and the logic) that can follow.

Collapse
 
deleugyn profile image
Marco Aurélio Deleu

You can always paginate your result set or pushdown aggregation to your database engine.

Collapse
 
mrweb profile image
Mr.Web

Also, that is the default ORM you can install another one as you please.

Collapse
 
l3lackheart profile image
l3lackheart

have u tried saveQuitely() or QueryBuilder update() yet?

Collapse
 
mehradsadeghi profile image
Mehrad Sadeghi

Learning materials can be another reason. Laracasts is one the bests around.