Hi. I am a backend developer in a company tasked with recoding a legacy application, choosing the right technology stack, and then later hiring for that stack.
This is a freight/logistics/courier application made 15 years ago in PHP with no modern framework used. In this application, customers from different countries login into their accounts and add a huge number of shipments, like let's say 500, and then, later on, generate PDFs for them after calling third-party APIs. This application has API integrations with lots of other companies and also offers API access to its own software as well. This application is also used in-house by warehouse people to scan different shipments using barcode scanners and to process shipments by performing different actions on them. The database being used currently is MySQL.
Now we have the choice to write this application in a modern technology stack. Performance, speed, reliability, and security are the primary concerns here.
Should I go with Java/Spring Boot with Angular2+ as the front end or PHP/Laravel with Vue.js as the front end?
Switching at this point from PHP to Java will not be hard if Java is considered better here because we can hire as per our final decision.
As a Laravel developer, I'd have to say go with Laravel. Although you can move away from PHP, it means any of that legacy code will still need to be completely ported to Java or whatever other language you use. Whereas, staying with PHP, you may find it easier to re-use/adapt that existing code.
Of course, if you're going for a full rewrite, then that might not be a useful consideration. However, even a full rewrite will introduce a lot of changes. When having to do this kind of thing, I recommend changing as few things as possible at once. So staying in the same language while upgrading may keep some pain points down.
Vue.js with PHP/Laravel (vue.js is much better than Angular for building the frontend. I feel much cleaner and faster). you already using MySQL database PHP is prefered.
Are your only choices Java+Angular or PHP+Vue? My recommendation as an engineer with 10 years in a few fortune 50 companies:
(Option 1) React: This will probably be your best bet as it has a huge market share and will be the easiest to hire for. Less opinionated which leads to a billion different libraries to choose from but also potential for bloat when hiring developers that want to use the tools and libraries they know.
(Option 2) Angular: This is also a good option still a decent market share share slightly more difficult to hire for but more suitable for large scale applications as it is more opinionated and more structured, in general, than React is.
(Option 3) Vue: Ive never recommended this before but it is a fine option, will be harder to hire for but not that much, not as mature as the other options but has as solid following.
I typically would never recommend PHP, it used to be a trouble child but in recent years has picked up in quality. Still would recommend lots of other options first but if you want to minimize the amount of refactoring this could still be fine.
Java/Kotlin great options, Java is a mature language that will interface with MySQL with no problems. Should be easy as any to hire for these roles.
Golang is a younger popular Language for building microservices architectures, could be a good option if you want to change the architecture to be more resilient.
Tons of other options here as well C# and .NET, NodeJS with something like NestJS, etc...
Thank you for the detailed answer.
we already have an application running on Angular and have a resource for it also so would be okay to just keep on going with Angular?
Our existing application on PHP has matured over the years and is mostly in maintenance mode. Would you still recommend to rewrite this in Java? Thanks
Angular is a perfectly acceptable option for a front-end framework as Google has committed to consistent LTS (long term support) with 6 month cadence on major releases. For reference I work with VMware on their UI and it is nearly 100% Angular and has worked very well for them.
Regarding backend, if you are in maintenance mode with PHP I dont see any reason you should need to rewrite unless you are unable to fix issues for reasons related to the language. Just remember to keep security updates current and should be fine.
Best of luck