Need advice about which tool to choose?Ask the StackShare community!
Laravel vs Spring: What are the differences?
Introduction
Laravel and Spring are two popular frameworks used for web application development. They have their own unique features and functionalities, making them suitable for different types of projects. In this article, we will highlight the key differences between Laravel and Spring.
1. Programming Language:
Laravel is a PHP-based framework, while Spring is a Java-based framework. This difference in the programming language impacts the syntax, libraries, and ecosystem available to developers. PHP is known for its ease of use and widespread adoption, whereas Java offers more enterprise-level capabilities and superior performance.
2. Architecture:
Laravel follows the Model-View-Controller (MVC) architectural pattern, which promotes separation of concerns and modular development. On the other hand, Spring provides a more extensive set of architectural options, including the MVC pattern but also additional patterns like Model-View-ViewModel (MVVM) and Model-View-Presenter (MVP). This flexibility allows Spring to cater to a wider range of application architectures.
3. Database:
Laravel uses Object-Relational Mapping (ORM) with its built-in ORM called Eloquent. This makes database operations and query building more intuitive and easier to manage. Spring, on the other hand, provides support for multiple ORM frameworks, such as Hibernate and Spring Data JPA, giving developers the freedom to choose the most suitable ORM for their project.
4. Community and Ecosystem:
Laravel has a large and active community, which contributes to its rich ecosystem of packages and extensions. There are numerous pre-built packages available for common functionalities, allowing developers to leverage existing solutions and save development time. Spring also has a vibrant community and a vast ecosystem with support for various technologies and integrations, making it a preferred choice for enterprise-level applications.
5. Learning Curve:
Laravel is known for its simplicity and beginner-friendly nature, making it easier for developers to get up and running quickly. It has clear documentation and provides a gentle learning curve for those new to web development. Spring, on the other hand, has a steeper learning curve due to its extensive functionality and enterprise-oriented features. It requires a deeper understanding of Java and object-oriented programming concepts.
6. Integration with other frameworks:
Laravel integrates well with other PHP frameworks, such as Symfony components and Composer for dependency management. It allows developers to reuse existing components and libraries, enhancing code efficiency. Spring, on the other hand, provides seamless integration with other Java-based frameworks and technologies, such as Hibernate, Spring Security, and Spring Boot, offering a comprehensive development ecosystem.
In summary, Laravel and Spring differ in terms of programming language, architecture, database handling, community support, learning curve, and integration capabilities. The choice between Laravel and Spring depends on project requirements, development experience, and scalability needs.
So currently I have experience in Node.js, but just to expand my stack knowledge and for getting backend developer roles, I thought of learning another backend-related language/framework. I have heard about Django, Golang, and Spring. I am mostly trying for backend API roles, and far as I've heard, Django REST framework can be a pain to work with. I've heard there are issues with Golang for package management (like how recently the Gorilla web toolkit is archived) and as for Spring, it's a vast ecosystem to learn so not sure if it's worth investing in. I would like to know which tool/framework to learn, which can help me get high-paying jobs and has a lot of scopes, and also which is great for making REST APIs. Any other tool that can do the job better than these three is also welcome!
Try thats, is really lightweight and little bit similar like node, before you jump on djanggo stuff, hopefully it's helpful https://fastapi.tiangolo.com/
Hello, I am trying to learn a backend framework besides Node.js. I am not sure what to pick between ASP.NET Core (C#) and Spring Boot (Java). Any advice, any suggestion is highly appreciated. I am planning to build only Web APIs (no desktop applications or something like that). One thing to mention is that I have no experience in Java or C#. I am trying to learn one of those 2 and stick to it.
UPDATE: The project I am trying to build is a SaaS using microservices that supports multi tenancy.
I'd recommend to learn Spring as it is very widespread in the industry and provides a lot of easy integration into most of the common backend tech stacks. Rather than learning Java you could look into Kotlin. It's a very consistent, stable and well-thought language in my opinion and not as verbose as Java. Many problems can be solved with Kotlin in a clear and elegant way while also always having the option to use data structures and libs in JVM. It is also has a very good support in Spring.
I have worked in a Spring environment for many years and I still love working with it. Super quick to get a base application running and get coding, thanks to Spring Boot's easy and straight forward integration with Tomcat. However, I will try and answer this question from another perspective: look at topics such as popularity of the language, average statistics on community contribution to their repositories and hiring availability from companies. If you are going down the API route for backend, leverege on your experience in the Node world by looking into ExpressJS (or even NestJS). The JavaScript world is really excellerating at a lightning speed, and I could recommend exploring those worlds a bit more, should it be a comfort level for you. However, my biased answer is tryout Java, followed by Spring afterwards. No disrespect to any .NET developers out there, as there are a few topics in there which are fantastically implemented.
Should I continue learning Django or take this Spring opportunity? I have been coding in python for about 2 years. I am currently learning Django and I am enjoying it. I also have some knowledge of data science libraries (Pandas, NumPy, scikit-learn, PyTorch). I am currently enhancing my web development and software engineering skills and may shift later into data science since I came from a medical background. The issue is that I am offered now a very trustworthy 9 months program teaching Java/Spring. The graduates of this program work directly in well know tech companies. Although I have been planning to continue with my Python, the other opportunity makes me hesitant since it will put me to work in a specific roadmap with deadlines and mentors. I also found on glassdoor that Spring jobs are way more than Django. Should I apply for this program or continue my journey?
I would recommend you change and get the easy path, but there's no easy path. When you are working in something like development you have to learn every day, stick with a specific niche, learn from others to apply to yours, and improve to be a specialist. If Spring and Java are technologies you're not enjoying, why are you going to waste your time with them? If you check the market, the higher salaries are in the specialization. For example, I was sticking with Erlang and Elixir in high volume, high availability, and concurrent systems. Don't check the number of works about Python, Java, or whatever else, you only need one job, and you have no idea about the quality of these. Most of the demanding jobs for Java, Python, and PHP are usually not covered because they request a lot and pay too less. Believe me, there are not a lot of Erlang and Elixir jobs and I always found one. And finally, don't expect too much from big companies, they are all glamorous from the outside, but they are usually a deception when you start working for them.
Hi Mohamed, I love Django for its "batteries included" philosophy, meaning that you get the backend for free and a lot of stuff for database abstraction. But often you just need some kind of webserver backend logic and Django is oversized for that purpose. In that case I go with Flask which has a modular approach so that you need to gather the parts yourself that you need. If you come from a Python background I think there is a lot to explore with Python for the web and it very well into the data science landscape.
I am wondering which language would you guys suggest learning if productivity & "future-proofing" is the focus?
I have now 2 years of experience with React Native & Firebase and 3 years of experience with Next.js and ExpressJS. As I like the idea of separating backend & frontend I think as a solo developer the MVC approach will get you way further and overall I started second guessing the whole js ecosystem and its quality.
What I am currently considering the most is Django, even if I am giving up major productivity I think the opportunities Python offers with AI/ML & scrapping are way superior then Rails. I would like to know how much productivity would get lost by deciding on Django.
Python is simple to read. Easy to use and import libraries. It is widely used in many different application domains. It is very easy to learn compared to other languages.
Considering your background is in front end technology; why not try some other language that can help you become more well rounded? Besides, there are always more and more python jobs.
Django is very easy to learn. If you use Django, I recommend the Django-Rest-Framework. This will save you a lot of time. But you need to understand some Python first. I think Python is as simple as: interpreted, dynamically typed language where you use lists and dictionaries a lot.
What should be used Node.js or Laravel to create a course search portal having about 50K courses, where users will create a profile and enter their academic credentials, scores, language tests, fee range, subject area, etc, and the system will filter and suggest courses meeting the entry requirements and other criteria. The applicant will then shortlist courses, he should be able to compare courses, apply for courses, upload documents and fill in application details, etc.
It's not a fair comparison. Laravel is a PHP web framework, Node is a web server runtime around JS. The question should be either:
- PHP or Node? => take what you know/can work fast in
- Laravel or ExpressJS/MeteorJS => take what you know/can work fast in
If it were up to me, I'd choose Laravel because I know it and can work fast in it :-)
I need advice. Am currently building a real estate marketplace mobile app using Flutter for frontend. I am not sure which backend solution to use, and thinking of using Firebase, Django or Laravel for backend and MongoDB/MariaDB for the database. I want to build an API backend and then use RESTful API calls for the frontend.
I think you should first choose either a database or server side programming language then you can streamline your other choices based on that, but I think if you are building a big project then going with django + firebase / mongodb would be a good choice else choose laravel + firebase.
I'm working as a full stack web developer and have been given an opportunity to re-frame the whole website which is written in PHP and JavaScript. Our website is required to be fast, efficient, having good analytics, easy to maintain and rework, and subject to frequent changes. It would be handling some medium size files like resumes, video recordings, etc. So I am thinking of changing the tech stack but confused for which backend to choose for the long run. Which back-end would prove to be better in terms of learning, development, and maintenance?
If it was me, then I would go with node.js because it has huge a number of packages,community,support & good dev experience and learning curve is also not that steep, if coupled with express.js, its gonna be efficient and fast in serving web requests, and if we adopt good design patterns and follow best practices, I guess it will be easy to maintain it as well, and for storing resumes, video rec etc.., I would use assest management tools like cloudinary etc.., rather than storing in db, coz Its gonna be much more faster this way.
Nuxt + Fastify + GraphQL + Nginx + Memcache = fast, confortable and a lot of plug-ins. Apache is realy slow :(. Nuxt is great and easy to use. Nginx, Memcache and Fastify it's very efficient. GraphQL require much more from You then REST, but give You flaxibility, order, plugin etc. We tried and don't regret .
Hi all. I want to rewrite my system. I was a complete newbie 4 years ago and have developed a comprehensive business / finance web application that has been running successfully for 3 years (I am a business person and not a developer primarily although it seems I have become a developer). Front-end is written in native PHP (no framework) and jQuery with backend and where many processes run in MySQL. Hosted on Linux and also sends emails with attachments etc. The system logic is great and the business has grown and the system is creaking and needs to be modernised. I feel I would stick with MySql as DB and update / use Django / Spring or Laravel (because its php which I understand). To me, PHP feels old fashioned. I don't mind learning new things and also I want to set the system up that it can be easily migrated to Android/iOS app with SQLite. I would probably employ an experienced developer while also doing some myself. Please provide advice -- from my research it seems Spring/Java is the way to go ... not sure. Thanks
PhP might be old fashionned but Laravel is really great. I've tried nodeJs backend with express, python with flask and a little bit of serverless, and quite frankly, laravel was by far the best in my opinion. It has a lot of official packages that speeds up development (from authentification to serverless deployement), it also uses Eloquent ORM that support Mysql databases. Finally it works great with VueJs for the front end development.
I recommend ExpressJS or NestJS as BackEnd and React as Front-End and PostgreSQL as the database. The reason is as follows. First of all, since it is a financial system, various services will exist, and each service must be well connected and combined with each other. The organic combination of small services that work very well is the foundation of a great system. For this, it is best to use Node.js based, and I think ExpressJS or NestJS is the best choice. We recommend choosing React or Vue as the FrontEnd. PostgreSQL is currently the best performing database. These three combinations have many examples, and their superiority has been confirmed by my implementation in many projects already. If you are interested in my advice and have any questions, please feel free to contact me.
On my end for me it's better to choose Laravel. It has very good documentation and easy to code. The framework supports MVC and you can create either monolithic or API only. The community is also big. If you combined a Domain Driven Development (DDD) and Test Driven Development (TDD) on Laravel then it will be a superb.
Since you are using PHP more natural is Python - it can handle high traffic - Python is very effective in coding. Python is superset of Java and C++ - True Object Oriented and have very clear syntax (Spring is hard to learn and debug - you can be confused many times). It is human readable you can code 2-4 times faster with small speed sacrifice. Jinja2 is more faster/flexible Django - whatever Django is better with ORM. Flask is just proposal - many other options of web servers.
Hello Guys
I am a newbie here and not very well experienced with different stacks. I have primarily programmed in C lang/C++ and am somewhat proficient in it.
I am now considering taking up Spring as a new framework to learn to get into Web dev as I know a little Java. But I have concerns about choosing it and am confused with JavaScript frameworks.
Could you please tell me which stack should I choose from?
What is your objective here? It sounds like this is not to solve a particular issue, but is about learning? If so, do you have a preference for things used on the front-end or the backend? That decision would typically lead down a JAVA-oriented path or a JavaScript-oriented path.
If you decide to learn JAVA, then Spring + Spring-boot is a very relevant framework. A competitor is Microprofile + Quarkus. The Quarkus part is newer, but gaining a lot of traction.
Javascript is not a framework, it's programming language that can run in browser or as server side application developed with node.js framework.
Hi everyone! I'm starting a personal project that I've been postponing for a little while and I'm starting with the backend first.
It's an app that needs to query open APIs (It could go up to a hundred APIs) and do filtering and other manipulations onto the data and then store it in my own database. So basically, the end result medium/long term is a lot of data!
Besides filtering/storing data from other APIs, the API will interact with my client application. I should note that the client app attempts to give real-time information.
Question: I would want to launch the API within 6 months as I'm also planning to make it available for other devs through platforms like RapidAPI. With all being said, my question is twofold:
Which backend framework would allow me to do these operations with the best response time possible?
Which framework would be the easiest to deal with deployment on AWS?
Background:
I have a background in Spring since I'm using it at work, I have none in Rails and Django but I don't mind trying something new as long as the learning curve isn't crazy. I know python but not Ruby. Beginner on AWS and choose that one after some research.
Thank you very much, sorry it was a bit long. Cheers
The most relevant part is the central architecture more than the specific backend. For me, it makes sense to go for an event-driven solution. In this case, an event is emitted on every new data, and one or more listeners react to it. In AWS, you can easily get this by storing your data in DynamoDB, which is pretty fast, and have as many lambdas working on the received data (here you can find more details). This way, you keep your worker(s) busy fetching data while others consolidate it. I wouldn't get too crazy on the lambdas, and I'd start with one as there will be only one client by your description. My only concern is how similar the APIs you're consuming are. Depending on that, it may be easier to have different lambdas by target API. My only note on the backend language is that if you want low latency, I'd discard Python and Ruby and choose Go (I know that is not in the list, but given that you're open to learning a new language, you could give it a try). It is easy to learn, has excellent performance, and is the only Lamdba runtime with an X (1.X) in the supported language, making it a great choice.
Laravel is so very friendly in coding in backend and has a good documentation and easy to understand. It's also easy and rapid to create application on this framework. The community is also big where you can get a lot of other solutions from other developers. Same as well in Vue Js, its lightweight and very fast to compile and load. The coding is very well structured and clean. PHP has now also the features of strict type rules and Vue Js too since it's now support Typescript.
For a full-stack app or just simple APIs I'd go 100% with Laravel. You get a clean architecture, beautiful documentation and friendly and always growing community: the project is yours, from A to Z. With their docs and resources like Laracast you can start from zero and build what you want, when you want. The learning curve is definitely smaller when compared to Symfony and, with the help of a bit of "magic" (Facades etc.) you get the same results in the half of the time with cleaner code.
I am planning to develop project management system SAAS based. Can any one help me with selection of platforms from Django or Laravel and for database MongoDB or Firebase/Firestore or MySql? On front end I am going to use Quasar Framework (VueJS). Note : project will be Webapp, Mobile app and desktop app.
i find python quite resourceful. given the bulk of libraries that python has and the trends of the tech i find django which runs on python to be the framework of choice to the upcoming web services and application. Laravel on the other hand which is powered by PHP is also quite resourceful and great for startups and common web applications.
When I started on this project as the sole developer, I was new to web development and I was looking at all of the web frameworks available for the job. I had some experience with Ruby on Rails and I had looked into .net for a bit, but when I found Laravel, it felt like the best framework for me to get the product to market. What made me choose Laravel was the easy to read documentation and active community. Rails had great documentation, but lacked some features built in that I wanted out of the box, while .net had a ton of video documentation tutorials, but nothing as straightforward as Laravels. So far, I am happy with the decision I made, and looking forward to the website release!
Pros of Laravel
- Clean architecture553
- Growing community392
- Composer friendly370
- Open source344
- The only framework to consider for php324
- Mvc220
- Quickly develop210
- Dependency injection168
- Application architecture156
- Embraces good community packages143
- Write less, do more73
- Orm (eloquent)71
- Restful routing66
- Database migrations & seeds57
- Artisan scaffolding and migrations55
- Great documentation41
- Awesome40
- Awsome, Powerfull, Fast and Rapid30
- Build Apps faster, easier and better29
- Eloquent ORM28
- Promotes elegant coding26
- JSON friendly26
- Modern PHP26
- Most easy for me25
- Easy to learn, scalability24
- Beautiful23
- Blade Template22
- Test-Driven21
- Security15
- Based on SOLID15
- Cool13
- Clean Documentation13
- Easy to attach Middleware13
- Simple12
- Convention over Configuration12
- Easy Request Validatin11
- Simpler10
- Easy to use10
- Fast10
- Get going quickly straight out of the box. BYOKDM9
- Its just wow9
- Laravel + Cassandra = Killer Framework8
- Simplistic , easy and faster8
- Friendly API8
- Less dependencies7
- Super easy and powerful7
- Great customer support6
- Its beautiful to code in6
- Speed5
- Eloquent5
- Composer5
- Minimum system requirements5
- Laravel Mix5
- Easy5
- The only "cons" is wrong! No static method just Facades5
- Fast and Clarify framework5
- Active Record5
- Php75
- Ease of use4
- Laragon4
- Laravel casher4
- Easy views handling and great ORM4
- Laravel Forge and Envoy4
- Cashier with Braintree and Stripe4
- Laravel Passport3
- Laravel Spark3
- Intuitive usage3
- Laravel Horizon and Telescope3
- Laravel Nova3
- Rapid development3
- Laravel Vite2
- Scout2
- Deployment2
- Succint sintax1
Pros of Spring
- Java230
- Open source157
- Great community136
- Very powerful123
- Enterprise114
- Lot of great subprojects64
- Easy setup60
- Convention , configuration, done44
- Standard40
- Love the logic31
- Good documentation13
- Dependency injection11
- Stability11
- MVC9
- Easy6
- Makes the hard stuff fun & the easy stuff automatic3
- Strong typing3
- Code maintenance2
- Best practices2
- Maven2
- Great Desgin2
- Easy Integration with Spring Security2
- Integrations with most other Java frameworks2
- Java has more support and more libraries1
- Supports vast databases1
- Large ecosystem with seamless integration1
- OracleDb integration1
- Live project1
Sign up to add or upvote prosMake informed product decisions
Cons of Laravel
- PHP54
- Too many dependency33
- Slower than the other two23
- A lot of static method calls for convenience17
- Too many include15
- Heavy13
- Bloated9
- Laravel8
- Confusing7
- Too underrated5
- Not fast with MongoDB4
- Slow and too much big1
- Not using SOLID principles1
- Difficult to learn1
Cons of Spring
- Draws you into its own ecosystem and bloat15
- Verbose configuration3
- Poor documentation3
- Java3
- Java is more verbose language in compare to python2