Nowadays, one of the most most in-demand IT Job Titles is the server-side programmer. Most people choose among programming languages according to their own ideology. Java and C# belong to the most popular ones, and Node.js is becoming more and more widespread. So the question arises, when it comes to choose, which one should we immerse in? Choosing the proper one is not easy, because Java and C# has a strong past, with big community. On the other hand, a Node.js developer is rare, so they can be more valuable in the labor market.
In order to decide, I implement a project on the three languages. The project is about the users after login can apply for the advertised events on a webpage till a deadline. As the deadline has past, the application assigns the users applied for the event to locations based on their gender in proportion, where they can get to know new people.
At the beginning of the thesis, I have done some research in technologies related to these three languages, which i.e. makes it easier to communicate with database or developing the graphical user interface. I have compared them and chosen the most appropriate ones for my project. I have done the functional specification and the technical plan of the project. After that, I have set up a subjective and objective concept system, which served as a basis for my comparsion.
I have extended the project with social login, so I can use their data for a recommender algorithm. I have implemented an algorithm to assign people to concrete locations.
After finishing development, I have done the comparison. In the subjective comparison, I presented the advantages and disadvantages of some technologies I had used based on my experiences and the implementation time of each project.
The objective comparison has been done according to the following measurable concepts: processor usage, response time, memory usage, project size, and costs. After this, I did some research about the demand of the developers of each languages.
In the end, I make a proposal based on my experiences and comparison about which language to choose to implement the current project.