This is the new UpStage team, sorry for the late updates. The new team members are Alyssa, Jing and Joshua, who will be working with 2 ongoing members, Siatua and William.
In the previous 2 months, we have made a proposal and got approved by our supervisors. After that, we talked to our clients and supervisor about the suitable Architecture and programming languages for the new UpStage. We are going to use MVC as the main architecture pattern, but there is a possibility of integrating the Microservices or Event-driven pattern into it for certain parts.
For the programming languages, we had lots of discussion. At the beginning we thought Java would be the best choice for the new UpStage, because Java is the main programming language taught to AUT students. If we take into account future team members, Java seems like an ideal choice as they will not need to learn a new language. We did not research other options as we thought Java would be suitable, but our supervisor suggested us to evaluate several other options and compare them according to some criteria.
The languages we have decided to research are C#, Python and Node.js, in addition to Java. The criteria we have set are Readability, Testability, Learnability and Performance. At first, we put too much emphasis on Performance as we thought it will be integral to the success of the project. Thus, we thought Node.js would be the best choice, as it can ensure consistent asynchronous communication, whereas languages like Python is known to be slow at runtime, while heavyweight languages like Java and C# can be inconsistent and experience performance spikes. However, after talking with our clients, we realized that we did not put enough importance in Testability and overestimated the importance of Performance. Java and C#, being old and popular languages, have a vast library of modules and tools that we can use to help testing.
As we are not sure which of the two is more suitable, we decided to create simple prototypes of a small part of UpStage using Java and C# to see which one will be better for the project team and the project.
Best regards, UpStage team.