TechnionYP5777 / UpAndGo

UpAndGo
16 stars 4 forks source link

Decide Which Web Framework We Will Use #171

Closed danabra closed 7 years ago

danabra commented 7 years ago

After some research, I've narrowed down the options into three candidates:

Play Framework: from the official website https://www.playframework.com/ - "Play is a high-productivity Java and Scala web application framework that integrates the components and APIs you need for modern web application development.

Play is based on a lightweight, stateless, web-friendly architecture and features predictable and minimal resource consumption (CPU, memory, threads) for highly-scalable applications thanks to its reactive model, based on Akka Streams."

Spring Framework: from the official website https://projects.spring.io/spring-framework/ - "The Spring Framework provides a comprehensive programming and configuration model for modern Java-based enterprise applications - on any kind of deployment platform. A key element of Spring is infrastructural support at the application level: Spring focuses on the "plumbing" of enterprise applications so that teams can focus on application-level business logic, without unnecessary ties to specific deployment environments."

GWT: from the official website http://www.gwtproject.org/overview.html - "GWT is a development toolkit for building and optimizing complex browser-based applications. Its goal is to enable productive development of high-performance web applications without the developer having to be an expert in browser quirks, XMLHttpRequest, and JavaScript. GWT is used by many products at Google, including AdWords, AdSense, Flights, Hotel Finder, Offers, Wallet, Blogger. It’s open source, completely free, and used by thousands of developers around the world." Reasons why we should use GWT: http://stackoverflow.com/questions/13714018/spring-gwt-or-spring-vs-gwt http://stackoverflow.com/questions/8455435/jquery-vs-google-closure-va-gwt-pros-cons-for-large-web-application-developmen/8458169#8458169

eastimated time: 2-3 hours

nikitadizhur commented 7 years ago

@danabra, from what I have read, Play needs some code in Scala, so I don't think it will suite our goals. From one hand GWT is much easier to learn and is more suitable for small applications, but from the another it relies on MVP (which is more suitable for desktop-like web application as I see now) and not on MVC model. Maybe we can change the model, though, or try to incorporate GWT with Spring and thus minimize the usage of the last. Maybe it will really be better to switch to MVP, but it will demand some work to do.

danabra commented 7 years ago

@nikitadizhur Where did you read that? because I'm pretty sure you don't need any scala code - There are two different API's one for java and one for scala, so we'll use only the java API.

nikitadizhur commented 7 years ago

@danabra http://stackoverflow.com/questions/17743671/do-you-need-to-know-scala-to-play-around-with-java-play-framework https://zeroturnaround.com/rebellabs/the-curious-coders-java-web-frameworks-comparison-spring-mvc-grails-vaadin-gwt-wicket-play-struts-and-jsf/ (e.g. pages 3 and 4)

danabra commented 7 years ago

@nikitadizhur Well it does not say that you have to code in scala (only read some scala code in the worst case), but either way we can still use spring.

nikitadizhur commented 7 years ago

@danabra okay. I would even consider switch to MVP and Sencha GXT, as it is more suitable for our type of application, but you decide.

danabra commented 7 years ago

@nikitadizhur I suggest that we'll discuss this in our upcoming meeting.

kobybs commented 7 years ago

according to Sencha website it is not free, check it out and let me know. also, GWT & going MVP should be an option too.

danabra commented 7 years ago

@kobybs Yes, it does seem to be not free. @nikitadizhur After further reading, I have come to the conclusion that GWT is probably the most suitable option for our application like you said, even if it means that we'll need to switch to MVP. Plus, switching to MVP should not be so bad since we are going to implement a new GUI anyway. http://stackoverflow.com/questions/13714018/spring-gwt-or-spring-vs-gwt http://stackoverflow.com/questions/8455435/jquery-vs-google-closure-va-gwt-pros-cons-for-large-web-application-developmen/8458169#8458169

kobybs commented 7 years ago

great. I think it's the best option too.

yossigil commented 7 years ago

👍

nikitadizhur commented 7 years ago

we decided on MVP with GWT.