This is a transcript. For the video, see Laravel - from the evolution of monolithic applications to the revolution of fully decoupled systems: An overview of Laravel.
[00:00:00] Michael Meyers: Hello, and welcome to our Tag1 TeamTalk on Laravel from the evolution of monolithic applications, to the revolution of fully decoupled systems. I'm Michael Meyers, the managing director of Tag1 Consulting. And I'm joined today by Laslo Horvath, one of our senior software engineers, Laslo.
[00:00:19] Thank you so much for joining us. We broke today's talk down into three segments. This is part one where Laslo and I are going to talk about Laravel in general and just give you a quick overview, be sure to check out part two, the evolution of web development from monolithic apps to fully decoupled systems.
[00:00:37] And part three, the future of application development in Laravel. All right. Let's jump in. Stepping back Laslo, you know, I don't think all of our listeners are familiar with Laravel. I think it would be really helpful to give people an overview at a high level. What is Laravel?
[00:00:55] Laslo Horvath: So Laravel is currently the most popular PHP framework. So to construct, contrast it with Drupal or WordPress, something that the listeners may be more familiar with. it's not like a system, a CMS system or a content management system. It's really a fully fledged framework. so it exists alongside Symfony and coding CodeIgniter maybe the most popular PHP frameworks out there.
[00:01:22] Currently, it's I think it has. four times the downloads that Symfony has. So it's currently really the most popular framework out there. I read some interesting statistics and basically in all areas of, of applications. So business marketing, e-commerce you name it? It's currently the most popular framework only in the health care system.
[00:01:46] So in the health, Symfony is more popular. It's, which is really an interesting thing for me, because I I'm, like I tried to wrap my head around it. So why would in all the other areas, it's basically the same ratio. So about three times as, as used as Symfony and somehow in healthcare Symfony, Symfony is like dominating, but yeah, that's it.
[00:02:07] So basically it exists as long as Symfony does. So, but they both started in 2011. And it, it grew in popularity in the last couple of years. So it has a really vibrant ecosystem. And I think what really separates it from, from the others is it has a massive and really great documentation and the great general experience about how you can learn things where you can look things up.
[00:02:34] They have Laracasts. They have a bunch of useful podcasts where they, we can learn about new things. They have Twitter accounts where they publish like interesting tidbits where you can just read like a tweet of like 120 characters and you can learn something interesting. So this is, this is what really keeps the community engaged and.
[00:02:54] Through this, they, they managed to build an ecosystem where the community contributes with great packages, with great extensions with, things like this, where, you know, the core team, actually the core team is like 10% , of the Symfony core team. So the Symfony core team is more than 2000 people who are involved.
[00:03:12] And the Laravel core team is like 200 something contributors. So it's not really that big, but the ecosystem around it is so well, so nicely developed that that people are contributing from all areas. And then in the end, you get, you get the much more, much better experience and basically whatever you need, you can find.
[00:03:35] I really recognized version because you know, generally the problem is when you, when you're using something like what to choose which, which package to choose, is it well maintained what's, what's it like, is it, or is it covered with tests? Is the coverage. Okay. You, you know, you usually people are like, okay, this is mostly used.
[00:03:55] This has the most installs. This has the most feedback, stars, whatever, on GitHub. or install some composer and then you pick it like that. And here generally Laravel it's somehow it, it just like. Weeds itself out. And then you just know like which packages are, are the best. Plus there are some officially maintained packages as extensions to the core framework which you can use and this just, just whatever you use, it feels the same.
[00:04:24] So. Whatever you take from, the extensions, from, contributed stuff from the community, it still feels like Laravel, it still feels the same as you still write it the same way you use the same things. And, you know, you can just jump in and, and, and be productive straight away.
[00:04:39] Michael Meyers: It's interesting.
[00:04:40] I knew that Laravel was really popular. I didn't realize how much more popular than Symfony it was. That's, that's pretty astounding. and as someone who does a lot of, you know, work with open source and open source communities, It's amazing to see that such a small group of people are having such an impact.
[00:04:59] Typically in a, in a large project, a small number of people are contributing the majority of the changes, but it's interesting how small the overall community is. You know, there must be a larger number of people making changes. I want to do that and learn more.
[00:05:14] Laslo Horvath: Yeah. Yeah. So we actually, I have had an experience, sorry to interrupt you where like, I was trying to do something to make a change on the DB schema to Laravel.
[00:05:25] Well, I stumbled up on a bug. So I actually submitted the PR to the core team where we fixed it. It's actually, it was using doctrine in the, in the background to generate the schema changes. So the author author statements, and basically we figured out I had a colleague and we fixed it together.
[00:05:45] We submitted a PR. And basically a small change of a couple of lines of code. They really looked at it. They really analyzed it. And we had to write tests. We have to cover everything. So it was, I mean, it was a bit stressful because you know, for a change of a couple of lines of code. Where we took two hours to figure out what the problem is.
[00:06:03] And one minute to fix it. In the end, we had like three days worth of work because we need to really make sure that, that it was perfect. And I think that speaks to the overall quality of the software. I like to dive in. So I, everything I use, I do a deep dive so that I know what it's like. I extended doctrine extended Symfony core components.
[00:06:24] So I really know my way around them. And for me, the best experience, the most consistent experience is Laravel, you know you can find beautiful code in all of them. There are people who write amazing code, but then there's sometimes, okay, let's get this done. Let's get this fixed. And maybe you overlook something.
[00:06:43] You don't do such a good job in the, in the code review phase. And then some bad code sneaks in. I've seen bad code, basically all over the place, but in Laravel it's consistently, it's not perfect, but it's really consistently good. And I like it because I want the things I use to be consistent, and to be reliable and.
[00:07:03] This is from my experience like really, I used to be a huge Symfony fan because I come from an engineering background. So I have a master's degree and everything, but for me, it's like, it was eye opening, one side, put my biases aside and said, okay, I'll, let's, let's give it the chance and really dive into it.
[00:07:22] I was, I was amazed. And since then, I really love it. So
[00:07:25] Michael Meyers: I, I hear people say that a lot. So it's a framework used by pretty much every industry pervasively. Is there, you know, how are people using it? You can give us some examples of.
[00:07:39] Laslo Horvath: Yeah. So it used to be like, if you want to do I don't know if you want to create APIs, for example, then you take Symfony because it has API platform.
[00:07:48] It has a bunch of cool extensions and it's, it's really structured in a way so that it's easy to use it like that. And if you, if you mean like, like this if it's used, like for decouple things for, for, for normal old school development, it's, it's basically not used in every form and fashion. So as I said, it has a really cool extension.
[00:08:10] So From from web shops to, from e-commerce to really huge B2B and ERP systems, it's used everywhere. It used to be that notion that, you know, Symfony is more for business like software, where you need a structure and, and you need to make sure that everything's correct. But now that has shifted entirely and, and like Laravel is taking over.
[00:08:33] Basically, as I said in almost all areas except healthcare. So I'm not sure what's going on there. Maybe it could be interesting to figure out why that's happening, but yeah, it's, it's used as primarily , as, as yeah, so web development framework people use it mostly as, as in a normal standard, you know, tightly coupled way where you, basically do server-side rendering for everything.
[00:08:57] But in the last couple of years, since, since the whole expansion began and we started decoupling things and doing more like front-end stuff and communication with the API and everything. Yeah. And everything they really integrated. This was I think the best move they did, but they integrated with the correct technologies and they did.
[00:09:15] They did a really great integration with everything. So how people are using it like that as well. So I've done projects, we've done a project actually in Tag1 like that, where we had Laravel backend VueJS in front end. So it's now basically same as every other framework you can use it. In ever which way you want it.
[00:09:33] Michael Meyers: You, you talked about a lot of advantages, you know, consistent feel across it. Awesome. Documentation code quality. What else? Like, how does it affect say like development experience or, you know, the speed of processes.
[00:09:48] Laslo Horvath: So It's it's really because it has this, this consistent feel to it. And it is actually consistent, consistent all across the board.
[00:09:57] It's very, it's much faster than developing in other frameworks. At least that was my experience. So, you know, if, if you want to do something, you do it, then it's there. It's very easy. So it helps you, like, it tells a lot of this. They used to say like, like it's a framework for web artisans and really it is like that because it takes away.
[00:10:17] A lot of, a lot of things that are, you know, a lot of configuration, a lot of, a lot of things that you would normally do, maybe in other frameworks, it just does it for you. It helps out a lot. Then you just, you can really just jump in and code. And that that really helps. Plus of course, if you have any questions, you need to look something up, the documentation is extensive.
[00:10:39] You have a bunch of Laracasts, you can look up things up. It's really a good experience. So, you know the thing, when you, you need to, I don't know, you need to do something quickly. For example, you have like one user story that you need to develop. And the user stories, maybe a couple of hours long, like if I have to do it in Symfony, I would, I would have to.
[00:11:01] I, I wouldn't say I wouldn't struggle. Of course, when you're experienced, it's not the problem, but you somehow have this block in your head, very like, okay, I need to do this and this and this. And then you get to the brunt of the work where you need to work actually. And with Laravel, well, it's like, you just jump in and you're done.
[00:11:18] And somehow this whole process is a lot simpler. This has, this has maybe a negative side to it. And because if you, if you look at projects that are written, for example, in Symfony people know People know where to like the style of, of the, the code will be in a certain way with Laravel. If, you know, if you know, Laravel, if you do it the Laravel way, then it's perfect, but it's so easy to use that you can basically do it whatever way you like.
[00:11:47] So you may end up with you check, two projects, and it's like, they're different. They're written in, in totally different things. One of them can look like it's done by an engineer. And the other, like an artist, you know, it's, it's totally different. It lets you basically be in charge of how you, how you want to solve things, which is of course it has a negative side as well.
[00:12:07] But for me, that's great because you can just jump in and work right away.
[00:12:11] Michael Meyers: Flexibility can, can be a curse. You know, I grew up, you know, 25 years ago with Perl and you know, I've pretty much had the same problem. It was both amazing and infuriating at the same time. I mean, the fact that you can do things so many different ways and so quickly and easily does this impact security like our, you know or if you do things the Laravel way that way, it's just, you know, taking care of,
[00:12:36]Laslo Horvath: Actually it's, it's pretty security.
[00:12:38] It's pretty, I mean, I never know some like security issues and some holes, of course, if you don't do the, I mean, it, it takes away all the necessities where you have to take care of a bunch of security features. So it's really good in that regard. It's it's as safe as any other systems. It actually relies on some Symfony core components in the background.
[00:13:00] So it's basically from that, in that regard, it's the same. It's like with everything else. If you don't know what you're doing, you can, it can go wrong. But it actually masks out a lot of, a lot of issues that you would normally maybe take, have to take care of yourself. It does it for you. So things like cross-site scripting SQL injections, stuff like that.
[00:13:23] We don't have to worry about it at all. So it, it takes care of all of those things I cannot on its own. So these, this most basic stuff will be covered. Automagically that's like, I think the perfect word for it. And the rest you have to take care of your own on your own. Like, like in any other. Framework or language.
[00:13:46] Michael Meyers: You mentioned that you know, Laravel is a framework.
What you know is, does it have any front end components that, you know, is it also a front end application? Is it purely a backend framework? How does.
[00:13:55]Laslo Horvath: Well, basically you can use a lot of variations with Laravel. So it comes out of the box. It comes with the so-called blade templates. So it now has blade X as well.
[00:14:06] So you can choose like what rendering engine you want to use for the front-end. It doesn't come with ready-made components, so you're free to choose whatever you want. what's really cool about Laravel is there are now. Now choosing, enforcing, and, and really tight tightly, but really well integrated with Tailwind CSS.
I know we at Tag1 now are also using Tailwind on, on now across the board. Not, not everywhere, but we are trying, or we are starting to use it. It's really great. I love it. It also, it also adds this layer of consistency. Everywhere. And I liked that they chose that. So as I was saying, you can, you can choose which like engine you want to use for, for rendering.
[00:14:49] You can, you can also choose, it's really easy to integrate with both React and VueJS, so it's also like comes pre-prepared for. For those front-end frameworks where it really helps out then. Sort of gets out of the way for you. So you can, you can do your work. So, you know, normally if you, if you do like really decoupled apps you have, like on one side, you have your backend framework.
[00:15:14] So you do Laravel, you would use APIs as end points. And the other side, you would have a totally different repository with just the front-end code with maybe even totally different development teams who work on those too. And Laravel is so well integrated with both React and Vue that. You don't have to separate them at all.
[00:15:31] It's just, you have your entry point and then you can work basically on the same code base. So it takes away some of this clutter on its on its own.
[00:15:41] Michael Meyers: One last question, before we jump into the next segment Are there tight, you know, Laravel being a backend framework, you know, you talked about the difference between, you know, some of the CMSs that are out there, you know, is there an obvious use case where you would say, you know, Laravel is not a fit, you should be using a CMS and are there applications any that really stand out as, you know, no way should you be using a CMS, you know, a framework like Laravel is the best idea.
[00:16:08] Laslo Horvath: So if basically, if you need something to manage, to really manage content, like, you know, you have you have a strong online presence. You have a, you have an internal network where you want to share some things you have like where you, you need to really take care of your content, then you need to use a CMS.
[00:16:26] So Drupal is perfect for that. I don't think there's anything else better, not just in PHP, but like in any other. In any other language. And for that, you know, it's not Laravel because you would need to do that, all that on your own. There are some CMS, CMS is in Laravel. I think the most popular is a October CMS.
[00:16:46] I actually did some extensions for it a while back. it was fine, but it's really not popular. So, you know, Laravel was, if you want to do something from scratch, if you need to do to implement something you take Laravel, and And you just it, [00:17:00] and, you know, you implemented the Laravel that's, that's basically the way it goes. So my, my answer would be, if you need to implement something, you have custom logic. You have, you have some requirements and it's not about, you know, managing content. It's not about just content on a website. It's really But like some, some business logic it's about, you know, calculations, whatever you do.
[00:17:23] It's, it's a good choice. If, if you are about content, if you really need to manage content. And as I said, we have a strong online presence or something, then you need something like, like Drupal. That will be the biggest difference. So Drupal has everything out of the box. We just, you can basically not be a developer and do, and, and already have a website.
[00:17:44] And with Laravel it's like, You can only use it as a developer. So.
[00:17:51] Michael Meyers: Awesome. Well, that was, that was fantastic. I really appreciate you giving us an overview. I'm eager to jump into, you know, monolithicapplications and decoupled systems in the future of development in Laravel. And those two segments are coming up.
If you liked this talk, please remember to upvote, subscribe, and share it with your friends. you can check out past Team Talks at tag1.com/tagteamtalks where we'd love your feedback on the segment and episode, as well as future topic ideas, you can write us at tag1teamtalks@tag1consulting.com.
[00:18:25] A huge thank you to Laslo and to everybody who tuned in. We'll see you soon. Thank you.