Need advice about which tool to choose?Ask the StackShare community!
Laravel vs Spring Boot: What are the differences?
Laravel and Spring Boot are popular frameworks used for web application development. Here are the key differences between the two:
Language and Ecosystem: Laravel is a PHP-based framework that leverages the PHP ecosystem. It provides a rich set of libraries and tools specifically tailored for PHP development. On the other hand, Spring Boot is a Java-based framework that utilizes the extensive Java ecosystem.
Architecture: Laravel follows the Model-View-Controller (MVC) architectural pattern, which separates the application's business logic, presentation, and data. It provides a structured approach to building web applications. Spring Boot, based on the Spring framework, adopts a flexible architectural approach. It promotes the use of Dependency Injection and offers various architectural patterns like MVC, RESTful APIs, and Microservices.
Learning Curve: Laravel emphasizes developer-friendly syntax and conventions, making it relatively easier for beginners to grasp. It provides a straightforward and intuitive API for common tasks. Spring Boot, while powerful, has a steeper learning curve due to its extensive features and configuration options. It requires familiarity with Java and the Spring framework, making it more suitable for experienced Java developers.
Community and Ecosystem: Laravel has a large and active community of developers, offering extensive documentation, tutorials, and community-driven packages and extensions. It provides a vibrant ecosystem for PHP web development. Spring Boot benefits from the vast Java community, with comprehensive documentation, forums, and a wide range of third-party libraries and integrations. Its ecosystem covers enterprise-grade solutions and integration with various Java tools.
Database Support: Laravel provides an elegant database abstraction layer called Eloquent ORM, which simplifies database interactions and supports multiple database systems. Spring Boot, being based on the Spring framework, provides robust database integration with support for popular databases through Spring Data JPA and JDBC templates. It offers powerful ORM capabilities and flexible database configuration.
Development Philosophy: Laravel focuses on developer productivity and simplicity. It aims to provide an enjoyable development experience with expressive syntax, built-in features like routing, caching, and authentication, and a rich ecosystem of packages. Spring Boot, on the other hand, emphasizes enterprise-grade development with a focus on scalability, performance, and maintainability. It provides extensive support for building robust, production-ready applications.
In summary, both Laravel and Spring Boot are strong frameworks for building web applications, but they differ in terms of architecture, learning curve, community and environment, database support, and development philosophy.
I need to build a system(web app) where people will share their projects and will receive funding against those projects if someone likes the projects. The backend should be secure, and the tools that will be needed to build that system should be free. We are a startup that can't invest too much in tools right now. We need to build it in 3-4 four months.
The application should be able to support 10k users for now and should be able to scale later.
Also, please suggest what front-end technologies I should use.
Depending on the backend I would pick the technology you feel most comfortable with, although, my preference would go to Django with Django REST Framework considering the timeframe you mentioned.
As for the front-end, React.JS and Vue are easy to get started with.
What will be better Laravel or Node.js to handle a logistics portal which displays thousands (20-50k) of delivery data information in an interactive table (searchable, filterable), live delivery tracking, basic user management, and report creation?
Data comes usually in CSV (manually uploaded or via API from courier companies). Live tracking uses checks tracking numbers on the courier page using API.
My question for you is: "Which one are you familiar with?" Following your needs, both could do it, but think about it. Now talking about Node.js, in my opinion, if you use JavaScript, there are lots of packages to support your entire project, including native ones for testing TDD and others for BDD. Also the best support on AWS (Amazon Web Services) and GCP (Google Cloud Platform).
Is learning Spring and Spring Boot for web apps back-end development is still relevant in 2021? Feel free to share your views with comparison to Django/Node.js/ ExpressJS or other frameworks.
Please share some good beginner resources to start learning about spring/spring boot framework to build the web apps.
Java in general, in my opinion, is somewhat outdated in 2021. C# is a better language, and therefore, I think ASP.NET (Core/.NET 5) should be used over it. Node.js isn't bad if you are getting started, or if you need to prototype an app. I use Node in production because of TypeScript, but .NET is a really good framework that has excellent performance.
Hi, I am a new developer using Ionic to develop a mobile app. I have recently tried to build a social mobile app which will have video calling, payment transaction, chatting, sharing, etc. I am now confused as to which framework I should use for the backend: Spring Boot or ExpressJS or NestJS? Any detailed advice will be better for my development. Looking forward to your valuable reply.
Any tools that achieve your software functionalities is good. you should check if with these frameworks you can do video-call, chat etc. how the scalability is achieved and the complexity of using it with them. since you are starting from scratch you can do this kind of feasibility before starting
If I want to write server api, I will use NestJS as primary framework. It base on express | fastify so I can use anything of expressJs. SpringBoot is a java framework. I will think to write as payment transaction service. If you are Ionic developer. you will know Js / ES6. You can try NestJS / ExpressJS. - video calling: You can not create video calling feature. Some keywords: ffmpeg / coturn / webrtc - chatting: realtime (socket.io / websocket) - you can try some opensource as rocketchat. It also have video calling feature.
I am looking to make a website builder web app, where users can publish built websites with a custom or subdomain (much like Wix, Weebly, Squarespace, etc.), and I was wondering about any advice on which web framework to build it on? I currently know Node.js, but I would be excited to learn Laravel or Django if those would be better options. Any advice would be much appreciated!
The tools you mentioned are all backend focused frameworks. I will say, you can choose one of them as you may prefer (maybe Laravel and Django will be better since it's more organized than Node.js). But no matter what, if you will create a website builder application, today you'll need a frontend framework like Vue.js, React or Angular - or maybe Ember.js, Svelte and Meteor.
If you use Nodejs, you should use one more frontend language like reactjs or angularjs. Laravel is the better option. They are more power for rendering.
Hi. We are planning to develop web, desktop, and mobile app for procurement, logistics, and contracts. Procure to Pay and Source to pay, spend management, supplier management, catalog management. ( similar to SAP Ariba, gap.com, coupa.com, ivalua.com vroozi.com, procurify.com
We got stuck when deciding which technology stack is good for the future. We look forward to your kind guidance that will help us.
We want to integrate with multiple databases with seamless bidirectional integration. What APIs and middleware available are best to achieve this? SAP HANA, Oracle, MySQL, MongoDB...
ASP.NET / Node.js / Laravel. ......?
Please guide us
i recommended .NET because the library so rich, you can integrated any sources to computed , compiling, integrating, your apps to high complexity, easy to communicated with SAP BAPI. used Oracle DB, Cheers.
I would like to share my stack in Web/Mobile application Development for Mid Sized Applications.
Project-1 : Laravel + jQuery + Android Java + IOS Swift
Project-2 : Node.js + React + React Native + Electron.
This is my current Stack, Can you comment on my selection and add your thoughts if my choice is a perfect match? Thanks
I would say go for Node.js since you probably would only build a REST API that would talk to the frontend and some communication with the database.
On the other hand, Laravel is a much heavier framework that follows MVC pattern. Since you don't need the V in the MVC of Laravel. You can go for a straight Express that just handles the API request and return a response.
Hello Varun S,
Project-1 : If the Laravel part is an API, you should check Flutter or Quasar Framework for your frontend in order to reduce the development time and process.
Hi
Iโve been using Django for the last year on and off to do my backend API. Iโm getting a bit frustrated with the Django REST framework with the setup of the serializers and Django for the lack of web sockets. Iโm considering either Spring or .NET Core. Iโm familiar with Kotlin and C# but Iโve not built any substantial projects with them. I like OOP, building a desktop app, web API, and also the potential to get a job in the future or building a tool at work to manage my documents, dashboard and processes point cloud data.
Iโm familiar with c/cpp, TypeScript.
I would love your insights on where I should go.
Spring Boot is the lightweight of the Spring framework. I used the Spring framework before, and I fall in love with the Spring Boot. I also use .NET core, but still, I like Spring boot the best. If you have time then you should experience both. You are more than halfway in gaining experience. My suggestion is always to try to learn many things as you can.
I see what you're going through and I extend my hands to you. I felt the same frustration after almost 1.5 years of working with Django and Node.js in the parallel. And since the last one year, I've transitioned into Spring Boot. I think its fair to say, that its quite different when you're going from Django background as a framework, but otherwise. I think it's one of the robust ones out there. Scalability is seamless and you get most of the things out of the box or easily supported by dev dependencies. You should definitely check it out! :)
Hello, I am a fullstack web developer. I have been working for a company with Java/ Spring Boot and client-side JavaScript(mainly jQuery, some AngularJS) for the past 4 years. As I wish to now work as a freelancer, I am faced with a dilemma: which stack to choose given my current knowledge and the state of the market?
I've heard PHP is very popular in the freelance world. I don't know PHP. However, I'm sure it wouldn't be difficult to learn since it has many similarities with Java (OOP). It seems to me that Laravel has similarities with Spring Boot (it's MVC and OOP). Also, people say Laravel works well with Vue.js, which is my favorite JS framework.
On the other hand, I already know the Javascript language, and I like Vue.js, so I figure I could go the fullstack Javascript route with ExpressJS. However, I am not sure if these techs are ripe for freelancing (with regards to RAD, stability, reliability, security, costs, etc.) Is it true that Express is almost always used with MongoDB? Because my experience is mostly with SQL databases.
The projects I would like to work on are custom web applications/websites for small businesses. I have developed custom ERPs before and found that Java was a good fit, except for it taking a long time to develop. I cannot make a choice, and I am constantly switching between trying PHP and Node.js/Express. Any real-world advice would be welcome! I would love to find a stack that I enjoy while doing meaningful freelance coding.
Hi Eva, As you have solid experience with Spring already, you should jump into freelancing with that. It would be quite stressful to start freelancing with a tech stack you don't know well. Then in the background you can keep learning/practicing an alternative and switch over when you are confident enough (eg. 0.5-1 year later). I think you should learn Laravel as you already like it and find it easier. Express has better performance but that is not required for most of the small freelancer projects.
Looking at current technological trends and rise of JavaScript, you cannot go wrong with JavaScript. - There's an abundance of libraries to get most things done - You can use JavaScript for both the frontend and the backend - this allows you potentially share your logic/models/code across both stacks - A dynamic/interpreted language such as JavaScript is great for serverless (there's somewhat of a trend towards serverless aswell - especially in modern projects) - If you like/need static typing, you can always migrate seemlessly to Typescript - VueJS is a lightweight framework (compared to Angular), it has more GitHub stars and most would argue it's easier to work with (beginner friendly). Additionally most modern webapps do not use JQuery anymore (even though a lot of legacy projects continue to do so). You don't need JQuery if you use Vue/Angular/React
Additionally it doesn't seem like performance is a hugely important metric in your scenario, so JavaScript would suffice.
Note: These are all my opinions and what I've seen in the current market when recently searching for jobs.
I think Patrik and Alex are right: if you're comfortable with Spring Boot already, you'll be more productive right from the start.
If you wish to learn something else besides, both Laravel and Express are good choices. They aren't in the same category of frameworks: Laravel is an all-in-one solution, while Express is more like "build your own stack from different parts". Which implies that you can use whatever you want as a database engine: MySQL or PostgreSQL are perfectly valid choices (in my school, we teach Express with MySQL, because SQL is still a big thing here in France, and a sought-after skill). You can use Sequelize or TypeORM which support all major SQL DBMS.
Express is widely used, but if you're seeking the JavaScript equivalent of Spring Boot or Laravel, you probably want to look at NestJS. The only potential downside is that it's still young, maintained by a small commmunity, compared to those behind Spring Boot and Laravel.
Bottom line: using a stack tech, that you enjoy and are comfortable with, matters. Spring Boot + Vue.js seem perfectly fine to me. But do forget jQuery if you're using Vue.js, React or Angular, because it will definitely bring more harm than good!
Hi as someone who employs and select developers i agree with a lot almost sayed but think of what are your strengths and where you are or better where your customers are. If you search for big enterprise projects spring boot is ok sql is must and html css as well. if you want to go more to internet related companies (like airbnb, what sup, facebook ) or similar (and not asia) then react is a must node js as well. The libraries tools etc which are used you need to adopt fast. If asia then VUE is a must. but if you like small projects with individuals or like wordpress or similar then you can learn php but i think in 2020 it is wasted time. Same for python in that area. and i also see that we often have problem that developer at least must understand docker docker compose better as it works with kubernetes ,.. just my 5 cents
I would definitely recommend you to go with Spring Boot + AngularJS + jQuery. Reasons: 1- You have an experience of 4 years with the above-mentioned stack. 2- As you mentioned that you wish to work as a freelancer, your stack is the perfect one for finding good bids with a little less effort than that of PHP + Laravel + Vue.js.
in order to stay employable, I'd work with something you can deliver with. if I'd be your client and you'd have to get comfortable with a new stack, I would 100% not pay you for this startup time. learn new stuff in your free-time. or set aside time for learning.
that said, if you want to reorientate, php (even though i personally hate it) is extremely wide spread. but so are java and nodejs. so I'm not a fan of that argument... i recommend building something in each language, and see what you enjoy more. for me it was nodejs, because I already enjoy frontend JavaScript, and appreciate the ecosystem and community.
regarding expressjs and mongodb: yes, it is a goto solution for a lot of tutorials, because its as simple as it gets. especially wben using something like monk. BUT if you want to use mysql, posgres or similar, check out TypeORM, Prism or another ORM-like solution. you can use any db with express, and there's plenty of abstraction layers, which make your life easier. but i noticed that expressjs does a lot less "holding hands" compared to .net core (c#), or laravel (php). can be a pro or a con.
As a developer myself, I would recommend you not to restrict yourself to JAVA, PHP or any other language. New Tools/languages keep coming every day. If you do plan to move to freelancing. PHP has a lot of options in the freelance space and a lot of competition too.
Learning PHP is as simple as learning any other language. It depends merely on your interest.
Personally if you can code, you should not restrict yourself. I have had to code in many languages, PHP, Perl, shell script, Python, Java, Javascript, Ruby etc... I would keep your developing skills and logic, algorithms etc.. and increase your knowledge and experience in the different languages.
I agree with you JAVA is a lot more time consuming. But it also has its enterprise level scope.
At the same time learning a new language should not be a barrier for you to stop exploring what's out there and keeping your skills up to date. Learning new technologies should be your primary focus and getting project out of your stack helps you build a good reputation.
There are many options for you to pursue. Having an open mindset will help you move forward. If you look to learn now, you are setting yourself up for a brighter future.
I like fullstack freelancers who stacks are clean as one of below
PHP (laravel ) + Jquery + Bootstrap
Python(Django) + Angular JS or VueJS
NODEJS + REACTJS
Hey There, I would recommend going fullstack javascript since you already have experience with javascript on the front end it would be very easy to pickup node and express js. You can use sql with node and express if you please, but mongo is pretty easy to get going with.
Please, try to work with your comfortable stack, here is some recommendation
I am currently planning to build a project from scratch. I will be using Angular as front-end framework, but for the back-end I am not sure which framework to use between Spring Boot and NestJS. I have worked with Spring Boot before, but my new project contains a lot of I/O operations, in fact it will show a daily report. I thought about the new Spring Web Reactive Framework but given the idea that Node.js is the most popular on handling non blocking I/O I am planning to start learning NestJS since it is based on Angular philosophy and TypeScript which I am familiar with. Looking forward to hear from you dear Community.
NestJS is an excellent framework (they both are). I would say the fact that you're working with Angular makes NestJS a great match, unless you're splitting front and back end between developers. But even in that case I would still go with NestJS for a new project.
Regarding the single threading point, take a look at PM2 which helps to run Node in multiple processes (we use it with NestJS) https://pm2.keymetrics.io/docs/usage/cluster-mode/
Also regarding web server performance in general this is an interesting post showing how Node with outperform Java in a web situation (be careful though, best to check a few posts to make sure these aren't totally biased benchmarks!): https://www.tandemseven.com/blog/performance-java-vs-node/
Node.js has only 1 real thread per process; Java JIT will mostly run faster than JS one; So if it happens to be not only I/O... Why do you need most popular, not simply popular? Does Node.js have tech advantages?
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.
Starting a new company in 2020, with a whole new stack, is a really interesting opportunity for me to look back over the last 20 years of my career with web software and make the right decision for my company.
And, I went with the most radical decisionโ which is to ignore "sexy" / "hype" technologies almost entirely, and go back to a stack that I first used over 15 years ago.
For my purposes, we are building a video streaming platform, where I wanted rapid customer-facing feature development, high testability, simple scaling, and ease of hiring great, experienced talent. To be clear, our web platform is NOT responsible for handling the actual bits and bytes of the video itself, that's an entirely different stack. It simply needs to manage the business rules and the customers experience of the video content.
I reviewed a lot of different technologies, but none of them seemed to fit the bill as well as Rails did! The hype train had long left the station with Rails, and the community is a little more sparse than it was previously. And, to be honest, Ruby was the language that was easiest for developers, but I find that most languages out there have adopted many of it's innovations for ease of use โ or at least corrected their own.
Even with all of that, Rails still seems like the best framework for developing web applications that are no more complex than they need to be. And that's key to me, because it's very easy to go use React and Redux and GraphQL and a whole host of AWS Lamba's to power my blog... but you simply don't actually NEED that.
There are two choices I made in our stack that were new for me personally, and very different than what I would have chosen even 5 years ago.
1) Postgres - I decided to switch from MySql to Postgres for this project. I wanted to use UUID's instead of numeric primary keys, and knew I'd have a couple places where better JSON/object support would be key. Mysql remains far more popular, but almost every developer I respect has switched and preferred Postgres with a strong passion. It's not "sexy" but it's considered "better".
2) Stimulus.js - This was definitely the biggest and wildest choice to make. Stimulus is a Javascript framework by my old friend Sam Stephenson (Prototype.js, rbenv, turbolinks) and DHH, and it is a sort of radical declaration that your Javascript in the browser can be both powerful and modern AND simple. It leans heavily on the belief that HTML-is-good and that data-* attributes are good. It focuses on the actions and interactions and not on the rendering aspects. It took me a while to wrap my head around, and I still have to remind myself, that server-side-HTML is how you solve many problems with this stack, and avoid trying to re-render things just in the browser. So far, I'm happy with this choice, but it is definitely a radical departure from the current trends.
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 architecture554
- Growing community392
- Composer friendly370
- Open source344
- The only framework to consider for php325
- 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 Boot
- Powerful and handy149
- Easy setup134
- Java128
- Spring90
- Fast85
- Extensible46
- Lots of "off the shelf" functionalities37
- Cloud Solid32
- Caches well26
- Productive24
- Many receipes around for obscure features24
- Modular23
- Integrations with most other Java frameworks23
- Spring ecosystem is great22
- Auto-configuration21
- Fast Performance With Microservices21
- Community18
- Easy setup, Community Support, Solid for ERP apps17
- One-stop shop15
- Easy to parallelize14
- Cross-platform14
- Easy setup, good for build erp systems, well documented13
- Powerful 3rd party libraries and frameworks13
- Easy setup, Git Integration12
- It's so easier to start a project on spring5
- Kotlin4
- Microservice and Reactive Programming1
- The ability to integrate with the open source ecosystem1
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 Boot
- Heavy weight23
- Annotation ceremony18
- Java13
- Many config files needed11
- Reactive5
- Excellent tools for cloud hosting, since 5.x4
- Java ๐๐1