Need advice about which tool to choose?Ask the StackShare community!
Laravel vs React Native: What are the differences?
Introduction:
Laravel and React Native are two popular technologies used in web and mobile app development respectively. While Laravel is a PHP framework used for backend development, React Native is a JavaScript framework used for building mobile apps. Despite their differences, both technologies have their unique advantages and use cases.
1. Scalability and Performance: Laravel is known for its robustness and scalability. It allows developers to build complex web applications that can handle a large number of concurrent users without sacrificing performance. On the other hand, React Native excels in delivering high-performance mobile apps. It allows developers to build native-like mobile apps that can run smoothly on both iOS and Android platforms.
2. Development Speed and Code Reusability: Laravel provides a wide range of ready-to-use components and utilities that can significantly speed up the development process. Its simple syntax and powerful features enable developers to write clean and maintainable code efficiently. Contrarily, React Native enables code reusability by allowing developers to write code once and run it on multiple platforms. It saves significant development time and effort by providing a unified codebase for both iOS and Android.
3. Community Support and Ecosystem: Laravel has a large and active community that constantly contributes to its extensive ecosystem. It offers a wide range of built-in features, libraries, and packages, making it easier for developers to implement various functionalities in their web applications. In contrast, React Native, backed by Facebook, has a rapidly growing community and an extensive ecosystem. It provides numerous third-party libraries and tools, allowing developers to leverage existing solutions and enhance the app development process.
4. Learning Curve and Flexibility: Laravel, being a PHP framework, has a gentle learning curve, especially for developers already familiar with PHP. Its well-documented architecture and comprehensive tutorials make it relatively easier to learn and get started with. React Native, although built on JavaScript, can have a steeper learning curve due to its more complex concepts like state management and component lifecycle. However, React Native offers great flexibility by allowing developers to build mobile apps using familiar web development technologies like HTML, CSS, and JavaScript.
5. Platform-Specific Features and UI/UX: Since Laravel is primarily used for backend development, it offers limited support for platform-specific features like push notifications, geolocation, and camera. On the other hand, React Native provides extensive support for native device features, making it easier for developers to integrate platform-specific functionalities into their mobile apps. React Native also provides a set of pre-built UI components, helping developers create highly interactive and visually appealing user interfaces.
6. Deployment and Maintenance: Laravel requires a web server and a compatible hosting environment for deployment. It provides robust tools and options for code deployment, including shared hosting, virtual private servers, and cloud-based platforms. React Native, being a mobile app development framework, allows for easy deployment through various app distribution platforms like Google Play Store and App Store. Moreover, maintaining and updating React Native apps is relatively easier since changes made to the codebase take effect immediately without requiring the users to update their apps.
In summary, Laravel is a powerful PHP framework known for its scalability and development speed, while React Native is a flexible JavaScript framework that excels in building high-performance mobile apps. Both frameworks have their unique strengths and use cases, making them popular choices in their respective domains.
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.
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!
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 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.
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
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
Please, try to work with your comfortable stack, here is some recommendation
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.
Hi Friends, I am new to #MobileAppDevelopment and I need to make a #CrossPlatformMobileApp. I want guidance regarding which tools should I use to build a mobile app. Main requirements: integrate Unity game engine and provide a platform for social chats.
Past experience - C++ and Python
I have tagged Flutter and React Native but if anything better than both please suggest them.
Hey, If you are using Unity you are going to have to do the end to end development on Unity, you can directly build for android and iOS on Unity. I dont see how Flutter or React Native fit into this equation. Unity is a standalone engine. As for Social Chats, you could use Firebase or your own API and integrate that in Unity in C#
I agree with Sahil. If Unity is a requirement, best way is to use just that to create your app.
If you really want, it should be possible to use Flutter and Unity together. Using Flutter Unity Widget. Although I wouldn't recommend it just yet. It's too early days.
If you do end up using it, I would be very interested in reading about your experiences.
You can start by small steps with Flutter and after Unity. Flutter = best choice to build a small cross-platform mobile app. With or no flutter, use directly Unity. Y'll have complete control but it's harder for new mobile developers. Keep in mind, the requirement is Unity!
Hello guys, I am new here. So, if I posted without specific guidelines, please ignore.
Basically, I am an iOS developer and developing native apps for the last three years. Recently, I started learning React Native to develop apps for both platforms. If anyone out there knows any useful resources that will become a better react native developer.
#newbie
Well, the first resource I would recommend you is my upcoming book by Packt Publishing, "Professional React Native", but it's due late January next year :) . Now jokes aside (the book's real by the way :) ), the easiest way to build a iOS/Android/Web app with React Native is to do: npm install -g expo-cli expo init some-project cd some-project expo eject
You might have heard of Expo, but trust me, stay away from it. Expo highest value is that it's an already pre-configured 3 platforms environment, but if you don't eject then you're vendor-locked to what Expo has to offer in iOS and Android, which is very poor compared to going full React Native on these platforms, they can't even handle Google Sign In properly and by the way, even if your app is 10 lines of code your app size will be over 40 MB if you don't eject, yep it's that bad, plus the performance is regular and the loading times slow, not to mention that you're stuck with their build service which the free tier makes you wait for hours for a free build slot. It's important to note that when ejecting you don't lose the Web, you simply do expo start --web to start your dev environment and expo build:web to build a static website that you can serve with any web server. Regarding state management, don't bother with "lifting state up" philosophies mixed with Context API to manage your state, lifting state is a great pattern and helps your codebase, Context is great to avoid prop-drilling, but NEVER mix them to achieve app-wide state management, for that, simply go for Redux or MobX, the hype is all about Redux, but I consider MobX far better in many aspects. However, as you're getting new into this I would recommend you start with Redux AND PLEASE grab yourself npm install @manaflair/redux-batch so that you can batch updates and don't bring your app to a crawl. Forget that "connect HOC" thing with React-Redux, don't bother for a second with it, go with Hooks and useSelector and useDispatch and the likes, it will make your code SO much cleaner and smaller. Adopt clean and new Hooks philosophy, avoid writing class components as much as possible and write function components augmented with Hooks.
I'm a huge fan of Vue.js and I'm pretty comfortable with it. I need to build a mobile app for my company and I was now wondering whether I could make use of VueJS with Vue Native instead of switching to React. I know Vue Native builds on top of RN. My question is whether I'd have as much freedom with Vue Native over RN and whether you feel like Vue Native is "production ready" or not. Not sure of which shortcomings I may find using Vue Native... Thanks a lot!!!
Vue Native is definitely production-ready in my experience. I've used both, have apps built with both in production right now, and both are fine technologies. As far as I can recall, there's nothing in RN that you can't do in VN. Given that, I would say go with "the devil you know".
That said, the one downside of VN over RN is that there are a lot more people using RN last I checked, so there are likely more resources readily available.
Hello... I hope everyone is ok amid today's global situation.
I'm trying to choose the perfect stack for a new mobile app project that resembles the super apps like GoJek & Grab.
I have gone to BUILTWITH and seen what their stack on all fronts.....however, and even though, they both differ from one another, I'm still looking for the perfect stack that will give us PERFORMANCE & SCALABILITY for years to come.
Your comments & suggestions are very important to us, so please share your thoughts.
We recommend Laravel over Ruby on Rails (Ruby) and Express.js (JavaScript/Node.js). We chose Laravel ourselves for our own internal software project, recently after comparing these same 3 software frameworks. In selecting Laravel, we chose to build our app using the software language PHP. PHP has the largest market share of all the web-based software languages (close to 80% of all websites use PHP). Also, Laravel is the fastest-growing software framework based on PHP making it a wise choice.
We also plan to integrate WordPress and WooCommerce later with our Laravel web-app. WordPress and WooCommerce like Laravel are all built using PHP. WordPress is the most popular Content Management System in the world. This will allow us to build out the front-end marketing website in WordPress. Also, we plan to offer subscriptions and sell products. For this, we will use WooCommerce. WooCommerce is the most used e-commerce platform in the world. We’ll be able to use our same Laravel developers to extend our app to WordPress and WooCommerce. By standardizing on PHP, we’ll be able to use the same software developers on all 3 platforms. PHP’s large market share will be an asset to us as we start recruiting talented software developers.
Lastly, we are gaining access to a fast-growing and awesome community that supports Laravel. Before we made our decision, I personally met Laravel’s founder Taylor Otwell along with several of his team members. After meeting with the Laravel team at Laracon US in New York City and learning more about the direction they are going with the framework, we’re confident we made the right decision.
To read the longer version of this answer where we go into more detail behind our recommendation, visit https://rackless.com/laravel-rails-expressjs
Before I recommend a tool, I think it is important to look at your requirements and capabilities - as you have looked at 3 very different tools: different programming languages, different implementation strategies and different target audience. It sounds like you don't already have a set of dedicated developers, so it is likely that your choice should be mainly driven by how easy it is to get developers that are familiar with the tools - so I'm going to list some considerations that I think you should review, starting with what I believe would be the most important for your bootstrap process:
Mindshare: how easy it is to get developers that are familiar with the technology and can immediately start working on your project. This is definitely where Node.js shines - Javascript is one of the fastest growing languages and Node.js played a huge part in this. I would bet that wherever you are located, Javascript developers would be the easiest to come by.
Fit for purpose: from your description we can understand that you are looking at a backend technology to implement some sort of REST API for a mobile app. The 3 different options you offered each fit on a different place on such a stack: Ruby is a programming language and not even a service framework - if you choose it, you then have to choose a server implementation and REST framework (and there are a lot, mostly as Ruby has a standard API for connecting a web server and application frameworks, and so this space has blown up) it used to be that Rails was the most popular, so you may choose that, but the interest in it has waned a bit in recent years; Node.js is a server framework, but it also has a dominant application framework called Express, that is geared well to your usage, so you'd likely work with that; Laravel is an application framework - it uses the PHP programming language, whose use has declined a bit in recent years, and was originally built for MVC type applications - though it has workflows for REST APIs and would probably work well for you as well.
Scalability: while this is probably the least significant issue at the moment (when it gets to a point where the backend service is your bottleneck, you'd likely have enough resources for a rewrite), and also the most dependent on factors that you didn't specify and are hard to estimate (such as: session complexity; amounts of data; sensitivity to locality; sensitivity to latency), it is still worthy to address it. Unfortunately, I don't have any good news: Ruby is notoriously bad at getting the best performance (the current BKM for milking performance from a Ruby codebase is to run the app on the Java virtual machine); Node.js has severe memory limitations that will make it very hard to scale if your backend needs to do a lot of work (I have a very personal and troubling experience with this issue); and PHP has as many scalability optimization strategies as there are PHP developers (this is not a good thing).
My suggestion to you as to how to proceed can be summarized to this prioritized list of options: 1. Get a good head developer with a lot of experience and let them choose the best tool - they'd likely go with what they know, which is likely to be a good choice - and if not, when scalability will become an issue, you could rewrite. 2. Choose something (likely Node.js) and don't worry about scalability - see (1) above. 3. Use Vert.x: it is a highly scalable application and service framework that offers great performance as well as a lot of tools to solve data scalability, locality and latency, and it works with multiple programming languages, such as Javascript and Ruby.
That's a really ambitious project. So you're going to want to move as quickly as possible. That means choosing a software stack that will allow you to move the most quickly. Of the ones you've listed, Ruby (Ruby on Rails, more precisely) will give you that. There are probably other options that would allow you to move even more quickly than Rails, but developers for those more advanced stacks are much more expensive, and hard to find.
Rails can and does scale to millions of users. It's not necessarily easy, but if you're running a successful app, you'll be able to afford people to help you scale out when you reach that point. But if you choose a slower framework (or have bad developers) you won't even reach the point of needing scalability.
Node.js would be the best choice among all, you can compare all 3 of them on Stackshare and you will find that Node.js is on the top on almost every aspect, and since your focus is primarily on Performance and Scalability you won't regret after choosing Node.js. Also, the JavaScript open-source community has made a lot of effort and created numerous packages that will give you the speed and smooth execution of your project you need. Though your question was regarding backend, but if you choose JavaScript(Node.js) at your backend, then you can have a cross-functional team that can work on both, frontend as well as backend because JavaScript is everywhere, React Native for Android and iOS apps, React.js for single page web apps and Node.js ofcourse for your backend. And I don't have to tell you how much easier it would be to code and manage in a single language to build your complete system end-to-end. I hope it helps.
Hi, I'm a web dev and am using Electron for a desktop app. Now I have to develop a mobile app with the following features:
- Posting/uploading files by users, private messaging between users, download files, moderation of the uploads, push notification of new posts.
- Mods can ban users and delete files.
- Share buttons from the library folder of the user phone.
- When a user uploads a photo, a pencil tool for deleting staff on the pic.
Which tool is better for such a project?
Thanks in advance
Given your experience in electron I think the shortest hop is going to be React Native. Especially since half of the requirements are server-side. Google is doing a pretty great job bringing up Flutter and the tooling is pretty great. For me however, dart seemed like quicksand and not everything is in its final home. React Native is mature, and considering my cursory analysis of your experience and the low complexity of this project, you've got quite a lot of room to grow into Javascript Land. Ultimately, my recommendation is always "play with both, see what you like, and get to know the documentation and the community." Keep your head on a swivel and set aside time to peek greener pastures, but spend most of your time delving deeply into what you're already doing.
But yeah, go with React Native first, get bored of it, learn what the shortcomings are through experience and then see if something else is really more attractive or just a new shiny.
Well, I will personally recommend to go for React Native as I have worked in both of them. React native has big community and it is easy to opt as compared to Flutter. There no doubt about the fact that Flutter is a great framework for developing both Android/IOS apps. However, you should have some experience to go for the same. Both will require prior knowledge as for React Native you have to go through Javascript first with which you are already familiar and for Flutter you need to go through Dart. So being familiar with Javascript you should go for React Native. You can go expo which has lot of inbuilt functionalities for the React Native developers.
Hi Team
I want your suggestions in order for me to decide which stack is suitable for the below-mentioned requirement.
Currently, I am considering building it in Wordpress (Starting with prebuilt plugins and develop on it)
But I am skeptical, so I am considering Laravel.
And recently I found one very good solution built in Angular, Node and MySQLHere are the high-level goals I am trying to achieve:
The system has 3 modules
- Multi-Vendor e-commerce Market Place
- Peer to peer Selling of used items
- Listing/ Directory kind of portal for the service industry
I would lean between Drupal and Laravel. Peer to peer selling shouldn't be too hard to set up using Drupal Commerce based modules (search for Marketplace). But if you don't find most of your requirements being met, you might want to go with Laravel. I know there are modules for Drupal that would help you achieve most of your requirements, so I would suggest doing some research there first.
It has the necessary packages for what you need, in addition to optimizing your time with what is needed.
Depends where you find more confortable, ever tech work good. the most important is the what do you are looking in you scalable project
Hi, we are an early startup (with an iPOC prototype) but need to get started on our MVP, and our tech developers in India recommended a hybrid, and they use Ionic, then we spoke with a software company in the US and he recommended Flutter or React Native. Any advice or input for us on the differences between these? Our app will need Bluetooth GPS for "near me" and social media sharing reviews capability, and also link on the backend with businesses. Thanks in advance for any help you can give!
I would never recommend you to go with Ionic, Because of the User experience it provides is subpar. Flutter is most promising, Can be easily used to develop great user experience in no time. React native is also good, but it's phasing out in my opinion, while Ionic has already phased out. Flutter also provides great developer experience, resulting in fast and productive developers. I would have to press hard to think of a CON about flutter when recommending it for your needs.
Maturity, Community, Facility, Libs React Native is the principal platform of mobile cross-platform development today, Flutter is it's a promise.
Flutter is built on DART which is written in GO. GO compiles to binary. Hence is faster than any java based framework. It provides superior performance and has a simplified UI process for designing apps.
Even if React Native is older (I didn't say mature) you should go for Flutter, It's works really well and the developer experience is great (auto-completion, plugin etc). I spent years with React Native and now I am using Flutter and I don't regret It. Even if you have to learn a new language, It's pretty simple even more If you know some OOP, Java and Javascript ES6 syntax in some case. One other advantage is the facility to design app in Flutter, you have widgets for everything and you can adapt any design made by your designer. For example you can't make a simple custom box shadow with React-Native ...
I don‘t have practical experience with flutter but between ionic and react native I‘d say both a perfectly viable options and we have used both for a number of production apps. We normally go with ionic on capacitor because we build a lot of pwa/web apps so we can use the same code for all. We don‘t use much of ionic elements, we do most styles on our own.
The comments that the user experience is bad I cannot agree with. A well designed and developed ionic apo can hardly be distinguished from a native app. But obviously that depends also on the usecase and type of app.
I hope this helps
It depends also on your team skills. Flutter is fast to learn, fast to develop with and the performance is much better in comparison to React. If your team is already highly skilled in React Native it could be the better option - if not Flutter is my 100% recommendation. We rapidly prototype and deliver MVPs with Flutter since two years.
Hi, We are thinking to rebuild a website and need your suggestion on which platform to choose from NodeJs, Laravel & CodeIgnitor. Since it's an education base website and there will be multiple functionalities like the use of graphics, video, animation and off-course forms for lead generation. Please advise us which tool to use to build the website considering load-time, server security, code vulnerability, etc.
It has the necessary packages for what you need, in addition to optimizing your time with what is needed.
Node.js is great but if I had a choice for something like this I would pick Elixir and Phoenix. They have LiveViews and channels which be one step up then the other 3 plateforms. It will also scale better and respond faster. Last will probably far less code as well.
Node.js is the perfect tech to real-time features like chats, forums, quizzes and polls. Additionally it has great support for objects storage like Mongodb and its important for file media management.
I would suggest you to pick the right stack for the right purpose. My suggestion would be to go for Microservices approach and break your app into smaller pieces according to the type of functionality like you mentioned above. E.g if you would be expecting the high traffic on you platform, then Node.js can be used as the endpoint there to handle that traffic. Normal form processing can be done in Laravel but I would not suggest codeigniter as managing code is difficult there.
So this way you can decide do architecture you app and can use the best of the feature from all the languages. Even it would be easier for you to manage your app based on the functionality and team who will be working on that. Hope you would like my suggestions.
I want to create a video sharing service like Youtube, which users can use to upload and watch videos. I prefer to use Vue.js for front-end. What do you suggest for the back-end? Node.js or Laravel ( PHP ) I need a good performance with high speed, and the most important thing is the ability to handle user's requests if the site's traffic increases. I want to create an algorithm that users who watch others videos earn points (randomly but in clear context) If you have anything else to improve, please let me know. For eg: If you prefer React to Vue.js. Thanks in advance
Node is light and scalable and has been used widely for enterprise solutions that need faster response, reliability and better performance. But at the end of the day, for me, when I start a project, I don't shoot for the stars. I build a small application with the possibility to scale in the future that will test my business idea. If the idea is getting volume then I really start thinking about how am I going to build this aiming a specific volume.
Hello , Our first version of www.voilacabs.com was programed with Code Ignitor PHP API's, and at times during peak hours when there were huge request's made the response time use to vary from 500 MS to 1 Minute, also at time's we might have to end up restarting PHP-FPM which use to bring things to normal.
Also PHP lacks features like promises queue, Asyc task, etc. which is supported in Node.js. In our V1 release we shifted to Node.js and since last 7 month's we see no lag in any API response, also all our API's are responding in 200-300 Milli Second's with about 8000+ Fleet's in peak hours. So my suggestion is to go with Node.js also you can either go with Mysql or MongoDB ( depending on the usage ) for DB choice's.
When it comes to hosting you can go with group replication which can be replicated across 3 different datacenters for your data safety. This approach will make your system largely scalable at 80% less price then amazon webservcies.
I hope that help's .
Hey Mohammad,
In your case I would definitely recommend Node.js as you already seem familiar with JavaScript and that experience will give definitely help you accomplish things faster in the backend side. The best advice I've always seen is to use what you already know, or something you enjoy using, and your passion will do the rest. As some folks have mentioned, Node.js is single-threaded by default but there's a lot of resources available on how to overcome that. Both Node.js and PHP have scaled for many companies, the examples are endless. If something gets heavy you offload it to a background job, if your reads and writes are getting heavy you can do some database optimizations, use an in-memory database and/or caching layers. Most scaling problems are related to how you read/write/process data and infrastructure more than they are to frameworks and programming languages. If you do indeed hit a wall with either of those programming languages being a bottleneck then in you could rewrite that one component only in a more performant language (e.g. Go/Rust/C/C++/Crystal and so on) but that's most likely something you won't have to think about for quite a while. Focus on the stack that you know so you can acquire more users and get to launch your product, scaling problems are nice to have and can be solved if they happen.
Good luck!
I have used both node and php in different projects. If it is true that initially node has better performance, in reality there is not much difference and feeling comfortable in the environment you use is very important. Also well written and optimized code. Php is also used by small and large companies. We have a file processing project that responds in less than 300ms with thousands of concurrent users and more than a million daily visits. And the key is to be able to develop quickly and efficiently. Personally I am much better in php than in node, so my code in php is much more clean and optimal than in node, so that's my option. I also find it easier to find php professionals than node, something very important to consider in a project. So the answer would be: choose the environment with which you feel more comfortable, because it will be with which you will have to fight every day.
Node is single-threaded by default, so you'll need to work on it. In the other hand, Node is better because you are already working with JavaScript as Frontend developer. Also, all you need is to make a prototype and Node is great for building simple API prototypes so I think the best way would be: make a nodejs prototype and test it - you'll get numbers with which you can work later. Take a look at Artillery.io and Mocha for testing. After that you can ask for someone's help in rewriting some endpoints or even make a separate api endpoint using another framework / language. Nginx would be helpful in this.
Laravel is a great solution to build web-based application using php. Of course it is matter which php version will you use, but php is much easier to develop, maintain and deploy.
You can also have a look as Symfony. This has individual components that you can use based on the problem you are solving. In fact, Laravel users few of the Symfony components at core.
Laravel has the necessary resources for you to develop a product (MVP) in which you can scale it over time. Despite saving development time.
- Javascripts is the most populated language in the world.
- Easy to learn & deployed production
- Fast development
- Strong community
- Completed Documents
- Native performance with lower RAM used.
- Easy to handle native issues by using native code like Java / Objective C
- Powered by Facebook.
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.
We built the first version of our app with RN and it turned out a mess in a while. A lot of bugs along with poor performance out of the box for a fairly large app. Many things, that native platform has, cannot be done with existing solutions for RN. For instance, large titles on iOS are not fully implemented in any of existing navigations libraries. Also there's painfully slow JSON bridge and many other small, yet annoying things. On the other hand Flutter became a really powerful and easy-to-use tool. A bit of a learning curve, of course, because of Dart, but it worth learning. Flutter offers TONS of built-in features, no JSON-bridge, AOT compilation for iOS.
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!
I've done some Hybrid Mobile apps with both technologies Apache Cordova
and React Native
and described my experience in my blog.
In a few words, I would suggest to use each technology in accordance what what is your current code base and what do you want to achieve.
React Native is a great option if you need that extra edge in performance with multi-threading and native UI rendering. Or you already have a web app based on React which you want to port to mobile.
On the other hand, if you have an existing web application code and you want to reuse some or all, including the ability to use web third-party libraries, then Cordova is the best option.
Pros of Laravel
- Clean architecture556
- Growing community392
- Composer friendly370
- Open source344
- The only framework to consider for php325
- Mvc221
- 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
- JSON friendly26
- Modern PHP26
- Promotes elegant coding26
- Most easy for me25
- Easy to learn, scalability24
- Beautiful23
- Blade Template22
- Test-Driven21
- Security15
- Based on SOLID15
- Clean Documentation13
- Easy to attach Middleware13
- Cool13
- 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 React Native
- Learn once write everywhere214
- Cross platform174
- Javascript169
- Native ios components122
- Built by facebook69
- Easy to learn66
- Bridges me into ios development46
- It's just react40
- No compile39
- Declarative36
- Fast22
- Virtual Dom13
- Livereload12
- Insanely fast develop / test cycle12
- Great community11
- Easy setup9
- Backed by Facebook9
- Native android components9
- It is free and open source9
- Scalable7
- Highly customizable7
- Awesome6
- Great errors6
- Win win solution of hybrid app6
- Everything component6
- Not dependent on anything such as Angular5
- Simple5
- OTA update4
- Awesome, easy starting from scratch4
- Easy to use3
- As good as Native without any performance concerns3
- Over the air update (Flutter lacks)2
- Can be incrementally added to existing native apps2
- Hot reload2
- Web development meets Mobile development2
- 'It's just react'2
- Many salary2
- Ngon1
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 React Native
- Javascript23
- Built by facebook19
- Cant use CSS12
- 30 FPS Limit4
- Slow2
- Generate large apk even for a simple app2
- Some compenents not truly native2