Whenever we do a new project, we tend to ask ourselves the following question: what is the best current technology suitable for this project? We do not hide from you that it is often the subject of passionate debates internally because each team preaches for its chapel!
Far from us the idea of wanting to decide frankly and definitively the question, we want in this article to highlight the arguments of each one so that you can see there more clearly. Either way, we cannot repeat it enough, there is no absolute and unsurpassable technology! Each of them has its strengths! And it is in particular for this reason that we must ask the question ‘which technology to choose to realize my business web application in 2020’.
First of all, we want to clarify that we assume that our application is composed of a REST API as well as an Angular, Vue.js or React.js type web application. This implies that we are not going to evaluate the capacities of the languages to generate pages on the server side, but rather all the questions relating to how to make a great API. In this test, we could have included other technologies such as Python for example, but we had to make choices so as not to make a long article!
Java is a language which, let us remember, was designed for white collar workers. It is easy to learn, very reliable, very stable and has a long support life for each version.
Java has long established itself as a standard in the software development industry. A little heckled at the beginning of the 2010s, it has rebounded well with a lot of contributions since JAVA 9. Very versatile, it allows you to easily achieve great things.
Generally, using a framework on top of JAVA provides essential functionality. Internally, we use Spring Boot in particular, which makes it possible to very efficiently frame and develop Web APIs with a very light container.
With JAVA, we know where we are going! It could also be the slogan! What we mean by that is that you know that the code you write today will still work in 10 years and that it will still be compatible (the same for libraries!). All this makes JAVA the language of choice for applications intended to be used for many years. Because yes, we can never say it enough, but the maintenance and development of an application are the keys to its success! These factors must therefore be taken into account when choosing the technology.
In terms of libraries, you will find all the best on the market, with connectors for almost all APIs on the market! As we said, learning JAVA is rather simple, but it can quickly get tough when you get to advanced features. Likewise, mastering JVM can be scary for the uninitiated (but don’t panic, it can be learned J)
In the negative, or can cite the ‘sluggish’ start. Indeed, launching a JAVA application will always take a few seconds. Either if your server is running 24 hours, this is not a problem, but if you want to run your application on an on-demand service like Lambda AWS, then JAVA is not the right language.
On the other hand, in terms of performance, JAVA is very fast in execution and offers analysis tools that are unmatched on the market today to analyze precisely what is happening. In short, you will understand, JAVA is big artillery, it’s a bit heavy but it goes everywhere!
C# & .NETCore, Microsoft’s Comeback!
The C# is a language of the famous Microsoft. It is just as easy to learn, very reliable and stable with a long support life for each version. In the past, C# has often been associated only with Windows… but those days are over with the release of .NET Core! C# is now multi-platform and all of its frameworks have been lightened in the wake of cloud systems (Azure). C#, can be used with great tools (Nuget, Azure)
In terms of libraries, with the NuGET package system, Microsoft offers a reliable system that checks the dependencies and compatibility between libraries and that, we appreciate it!
Although Windows Server systems still exist and are as complex to set up and maintain as ever, the Azure cloud system is well thought out and easy to use. In addition, for Linux enthusiasts (server level), .NET Core can be installed and parameterized with disconcerting ease! On the negative side, the migration from .NET Framework to .NET Core is almost impossible for the time being and that’s an infamy!
On the other hand, in terms of performance, C# is very fast in execution! To conclude, C# has indeed come back to the level to be one of the main players in the web world!
PHP is a very popular language! PHP is basic personal language to a small website which was subsequently published in open access. The language has become extremely popular because of its ease of learning and flexibility at the code level. WordPress development is for example based on PHP and today represents almost 50% of websites in the world!
For the implementation of a web API, we mainly use Symfony which is today the most used PHP framework in France. In its latest version, Symfony brings essential features to a web API, in addition to being a stable and easy-to-use framework.
On the library side, the Composer tool allows you to add and update our libraries while checking their dependencies and compatibilities.
PHP: it was slow, but now things are much better!
On the downside, PHP is an extremely permissive language up to version 5.6 unlike JAVA and C #, which makes it very unstable and exposes it to all kinds of bugs that are very difficult to fix. The slowness of PHP is also a big problem, although using PHP FPM does a bit of work around the problem.
Since PHP 7, PHP developers have done a lot of work obtaining a + 100% performance level. They added better error handling, and most importantly, implemented (finally) data typing! There is also an ongoing project to create a new PHP based language, P ++, which will be a strongly typed language with even better performance. Case to follow! For now, PHP is back and for a very long time to come in the web world!
The JS, it is far from the ‘Callback hell’, welcome Async/Await!
Since that time, the language has evolved a lot! Global organizations have tackled it in order to standardize it as much as possible and thus restore its image within the community. In this sense, ECMAScript releases new standards every year which are integrated by all browsers and by Node.js.
Since ES2016, a solution has been proposed to specifically resolve the Callback Hell problem: The Async/Await couple. Quickly, this allows ‘to wait’ for an asynchronous function, so as not to have to chain callbacks, which creates a much more readable code!
Today, even if the language has managed to regain the trust of developers, in the eyes of the ‘general public’, JS remains largely a messy and dangerous language, and that’s a dishonor!
|Main Advantage||Main Drawback||Performances||Framework / Associated Tool At AXOPEN||For Which Project?|
|Java||Robust & reliable language over time!||Slow at startup.||JAVA is very fast at execution and provides good performance analysis tools!||Springboot||Big Web Application|
|VS#||Easy to learn & multi-platform!||Migration from .NET Framework to .NET Core is almost impossible at this time.||C# is very fast at execution!||.NET Core||Big Web Application|
|PHP||Easy to learn & flexible in terms of code.||Extremely permissive language up to version 5.6. It’s slow!||PHP improves with better error handling, and most importantly, an implementation (finally) of data typing!||Symfony/ Laravel||Website|
You know, we believe that there is no good or bad techno… As we said in the preamble, there is no absolute and unsurpassable technology! The languages that we have presented to you are equal, and after that, it is above all a story of preferences and convictions.
On our side, when we want to start new big web apps, Java and C # are clearly the two languages that will clash! For all light and fast applications, we will automatically turn to JS with Node.js. And finally, even if it is not unanimous in our team, PHP can be used to create small applications or websites!