5 Pillars of a Successful Java Web Application
Last week, Alex Porcelli and I had the opportunity to present at JavaOne San Francisco 2017 two talks related to our work: "5 Pillars of a Successful Java Web Application” and The Hidden Secret of Java Open Source Projects.
It was great to share our cumulative experience over the years building the workbench and the web tooling for the Drools and jBPM platform and both talks had great attendance (250+ people in the room).
In this series of posts, we’ll detail our "5 Pillars of a Successful Java Web Application”, trying to give you an overview of our research and also a taste of participating in a great event like Java One.
There are a lot of challenges related to building and architecting a web application, especially if you want to keep your codebase updated with modern techniques without throwing away a lot of your code every two years in favor of the latest trendy JS framework.
In our team we are able to successfully keep a 7+ year old Java application up-to-date, combining modern techniques with a legacy codebase of more than 1 million LOC, with an agile, sustainable, and evolutionary web approach.
More than just choosing and applying any web framework as the foundation of our web application, we based our web application architecture on 5 architectural pillars that proved crucial for our platform’s success. Let's talk about them:
1st Pillar: Large Scale Applications
The first pillar is that every web application architecture should be concerned about the potential of becoming a long-lived and mission-critical application, or in other words, a large-scale application. Even if your web application is not exactly big like ours (1mi+ lines of web code, 150 sub-projects, +7 years old) you should be concerned about the possibility that your small web app will become a big and important codebase for your business. What if your startup becomes an overnight success? What if your enterprise application needs to integrate with several external systems?
Every web application should be built as a large-scale application because it is part of a distributed system and it is hard to anticipate what will happen to your application and company in two to five years.
And for us, a critical tool for building these kinds of distributed and large-scale applications throughout the years has been static typing.
Static Typing
The debate of static vs. dynamic typing is very controversial. People who advocate in favor of dynamic typing usually argue that it makes the developer's job easier. This is true for certain problems.
However, static typing and a strong type system, among other advantages, simplify identifying errors that can generate failures in production and, especially for large-scale systems, make refactoring more effective.
Every application demands constant refactoring and cleaning. It’s a natural need. For large-scale ones, with codebases spread across multiple modules/projects, this task is even more complex. The confidence when refactoring is related to two factors: test coverage and the tooling that only a static type system is able to provide.
For instance, we need a static type system in order to find all usages of a method, in order to extract classes, and most importantly to figure out at compile time if we accidentally broke something.
But we are in web development and JavaScript is the language of the web. How can we have static typing in order to refactor effectively in the browser?
Using a transpiler
A transpiler is a type of compiler that takes the source code of a program written in one programming language as its input and produces equivalent source code in another programming language.
This is a well-known Computer Science problem and there are a lot of transpilers that output JavaScript. In a sense, JavaScript is the assembly of the web: the common ground across all the web ecosystems. We, as engineers, need to figure out what is the best approach to deal with JavaScript’s dynamic nature.
A Java transpiler, for instance, takes the Java code and transpiles it to JavaScript at compile time. So we have all the advantages of a statically-typed language, and its tooling, targeting the browser.
Java-to-JavaScript Transpilation
The transpiler that we use in our architecture, is GWT. This choice is a bit controversial, especially because the GWT framework was launched in 2006, when the web was a very different place.
But keep in mind that every piece of technology has its own good parts and bad parts. For sure there are some bad parts in GWT (like the Swing Style Widgets, multiple permutations per browser/language), but keep in mind that for our architecture what we are trying to achieve is static typing on the web, and for this purpose the GWT compiler is amazing.
Our group is part of GWT steering committee, and the next generation of GWT is all about JUST these good parts. Basically removing or decoupling the early 2000 legacy and keeping only the good parts. In our opinion the best parts of GWT are:
- Java to JavaScript transpiler: extreme JavaScript performance due to compiling optimizations and static typing in the web;
- java.* emulation: excellent emulation of the main java libraries, providing runtime behavior/consistency;
- JS Interop: almost transparent interoperability between Java <-> Javascript. This is a key aspect of the next generation of GWT and the Drools/jBPM platform: embrace and interop (two way) with JS ecosystem.
Google is currently working on a new transpiler called J2CL (short for Java-to-Closure, using the Google Closure Compiler) that will be the compiler used in GWT 3, the next major GWT release. The J2CL transpiler has a different architecture and scope, allowing it to overcome many of the disadvantages of the previous GWT 2 compiler.
Whereas the GWT 2 compiler must load the entire AST of all sources (including dependencies), J2CL is not a monolithic compiler. Much like javac, it is able to individually compile source files, using class files to resolve external dependencies, leaving greater potential for incremental compilation.
These three good parts are great and in our opinion, you should really consider using GWT as a transpiler in your web applications. But keep in mind that the most important point here is that GWT is just our first pillar implementation. You can consider using other transpilers like Typescript, Dart, Elm, ScalaJS, PureScript, or TeaVM.
The key point is that every web application should be handled as a large-scale application, and every large-scale application should be concerned about effective refactoring. The best way to achieve this is using statically-typed languages.
This is the first of three posts about our 5 pillars of successful web applications. Stay tuned for the next ones.
[I would like to thank Max Barkley and Alexandre Porcelli for kindly reviewing this article before publication, contribute with the final text and provided great feedback.]

Awesome blog. I would love to see true life prepared to walk, so please share more informative updates. Great work keeps it up. 300-115 exam questions
ReplyDeleteGreat Article android based projects
DeleteJava Training in Chennai Project Center in Chennai Java Training in Chennai projects for cse The Angular Training covers a wide range of topics including Components, Angular Directives, Angular Services, Pipes, security fundamentals, Routing, and Angular programmability. The new Angular TRaining will lay the foundation you need to specialise in Single Page Application developer. Angular Training
No body has presented this kind of information before.Really nice for reading and you made a great job.
ReplyDeleteHadoop Training in Chennai
Android Training in Chennai
Selenium Training in Chennai
Digital Marketing Training in Chennai
JAVA Training in Chennai
German Classes in chennai
SEO Training in Chennai
best selenium training in chennai
well said! This content is the right way to enhance your knowledge and I like it this post. I want more new updates and keep posting...!
ReplyDeleteTableau Training in Chennai
Tableau Course in Chennai
Spark Training in Chennai
Oracle Training in Chennai
Oracle DBA Training in Chennai
Social Media Marketing Courses in Chennai
Tableau Training in Chennai
Tableau Course in Chennai
I would definitely thank the admin of this blog for sharing this information with us. Waiting for more updates from this blog admin.
ReplyDeleteweb designing training in chennai
web designing course
ccna Training in Chennai
PHP Training in Chennai
ReactJS Training in Chennai
Web Designing Course in chennai
Web designing training in chennai
This was an excellent post. This blog was really comprehensive and helpful to me. Thanks for sharing.
ReplyDeleteSpoken English Classes in Chennai
Spoken English Class in Chennai
Spoken English in Chennai
Best Spoken English Classes in Chennai
Best Spoken English Institute in Chennai
IELTS Coaching in Chennai
English Speaking Classes in Mumbai
Spoken English Classes in Anna Nagar
Spoken English Classes in Chennai Anna Nagar
IELTS Classes in Mumbai
Very useful information, Keep posting more blog likes this, Thank you.
ReplyDeleteAviation Academy in Chennai
Air hostess training in Chennai
Airport management courses in Chennai
Ground staff training in Chennai
best aviation academy in chennai
Air Hostess Training Institute in chennai
Airline Courses in Chennai
airport ground staff training in chennai
Your Blog is amazing...Thanks for sharing this helpful article..
ReplyDeleteArticle submission sites
Education
This comment has been removed by the author.
ReplyDeleteDefinitely it is very important to keep the code base updated with latest frameworks to enable long sustained operation for any Client. Especially SMEs like us who specializes in Java based application development services
ReplyDeleteexcellent post
ReplyDeleteoracle training in chennai
This is a very amazing post for cheap web hosting services. in this post, you have provided all the basic information regarding.
ReplyDeletewebsite builder for reseller
Comfortabl y, the post is really the freshest on that deserving topic. I harmonise with your conclusions and definitely will thirstily look forward to your next updates.
ReplyDeleteprivate label website builder
Thank you for the link building list.I am going jot down this because it will help me a lot.Great blog! Please keep on posting such blog.
ReplyDeletewhite label website builder
Looking for best TNPSC study materials to prepare for the examination? Make use of our samacheer kalvi books and other study guide to learn from experts. TNPSC One Time Registration
ReplyDeleteThanks for the useful information, give more updates like First time I visit your site really nice, here after a daily visit.
ReplyDeleteecommerce website development company in chennai
Home buying mistakes costs the investors more. Thanks for sharing an informative post. This helps me to rectify the mistakes when buying a home.
ReplyDeleteNew projects in Chennai
Apartments in Chennai
best body massager
ReplyDeletefmovies
ReplyDeleteSuperb post...! I really enjoy reading your impressive post. Keep doing and update more information.
ReplyDeleteLinux Training in Chennai
Linux Course in Chennai
Advanced Excel Training in Chennai
Oracle Training in Chennai
Job Openings in Chennai
Unix Training in Chennai
Tableau Training in Chennai
Oracle DBA Training in Chennai
Power BI Training in Chennai
Linux Training in Adyar
movies123
ReplyDeletefriendship whatsapp groups
ReplyDeletetravel whatsapp groups
ReplyDeleteGreat blog... it is very help to enhance your knowledge.
ReplyDeleteweb design training programs
php training institute with placement
magento development training
Good information and, keep sharing like this.
ReplyDeleteCrm Software Development Company in Chennai
thanks for your extrodinary services , go ahead
ReplyDeleteScaffolding dealers in chennai
We help you to get best websites and good ranking in search engines, visit us
ReplyDeleteErp software development company in chennai
Professional webdesigning company in chennai
Best seo company in chennai
Crm software development company in chennai
Thanks for providing this information .I hope it will be fruitfull for me. Thank you so much and keep posting.web portal development company in chennai
ReplyDeleteprofessional web design company in chennai
smo company in chennai
seo company in chennai
sem company in chennai
twitter marketing company in chennai
erp software development company in chennai
best seo company in chennai
Thanks for providing this information .I hope it will be fruitfull for me. Thank you so much and keep posting.scaffolding dealers in chennai
ReplyDeletealuminium scaffolding dealers in chennai
Thanks for providing this information .I hope it will be fruitfull for me. Thank you so much and keep posting.web portal development company in chennai
ReplyDeleteprofessional web design company in chennai
smo company in chennai
seo company in chennai
sem company in chennai
twitter marketing company in chennai
erp software development company in chennai
best seo company in chennai
Thanks for providing this information .I hope it will be fruitfull for me. Thank you so much and keep posting.web portal development company in chennai
ReplyDeleteprofessional web design company in chennai
smo company in chennai
seo company in chennai
sem company in chennai
twitter marketing company in chennai
erp software development company in chennai
best seo company in chennai
Good information and, keep sharing like this.
ReplyDeleteCrm Software Development Company in Chennai
web portal development company in chennai
web portal development services in chennai
professional web design company in chennai
smo company in chennai
seo company in chennai
best seo company in chennai
erp software development company in chennai
sem services in chennai
twitter marketing company in chennai
Nice post, you provided a valuable information, keep going.
ReplyDeletePrestashop ecommerce development company chennai
Prestashop ecommerce development company in chennai
Prestashop ecommerce development company
Prestashop ecommerce development company in india
Nice information keep sharing like this.
ReplyDeletescaffolding dealers in chennai
Aluminium scaffolding dealers in chennai
Aluminium scaffolding hire
I admire this article for the well-researched content and excellent wording. I got so involved in this material that I couldn’t stop reading. I am impressed with your work and skill. Thank you so much. Miami Web Development
ReplyDeleteWow, Great information and this is very useful for us.
ReplyDeleteprofessional bridal makeup artist in chennai
best bridal makeup artist in chennai
Excellent post. I always check this type of blog, and I’m impressed with Extremely useful info, I care for such information a lot. I am exploring this particular info for a long time. Thanks to this blog my exploration has ended. Maine web design company
ReplyDeleteThis is the nice blog. I have read fully. Thanks for posting. PHP web development services|
ReplyDeletePHP Development Company
I have inspected your blog its associating with and essential. I like it your blog.
ReplyDeleteppc marketing services
pay per click advertising services
ppc campaign management services
ppc marketing company
ppc management services
ReplyDeleteNice information keep sharing like this.
scaffolding dealers in chennai
Aluminium scaffolding dealers in chennai
Aluminium scaffolding hire
WhatsApp Status Video:WhatsApp introduced the status feature in 2015, in which we can share images, videos, and gifs as our story for 24 hours. Before this feature, WhatsApp had only text status option in which we can write our bio, but the new status feature is different. The story or status disappears after 24 hours and can’t be archived as still in WhatsApp.
ReplyDeleteBoy attitude status video download for whatsApp
Boy attitude status video download
Most romantic status video download for whatsApp
Most Romantic status video download
video status download for whatsApp
we have latest & best collection of video status download for whatsapp
Thanks for sharing your knowledge to us
ReplyDeleteBilling Software in Chennai
Retail Billing Software in Chennai
Pos Software in Chennai
Restaurant Billing Software in Chennai
ReplyDeleteWow, Great information and this is very useful for us.
professional bridal makeup artist in chennai
best bridal makeup artist in chennai
ReplyDeleteGreat information and this is very useful for us.
post free classified ads in india
ReplyDeleteNice information Keep going
vito food oil dealers in chennai
freezer with plastic body dealers in chennai
very useful information for us.
ReplyDeletebest cafe in chennai
Good information
ReplyDeletesecurity agency in chennai
best security service in chennai
The registrations and auditions for the Bigg Boss 13 are going to start soon. The official list of contestants is not yet announced by the officials. That will be announced by the makers on the inaugural day which is 15 the of September. bigg boss 13 contestants name list with photo and details Though a few rumored names are coming up as the expected celebrity contestants of the year. They are Nia Sharma, Raghav Juyal, Punit Pathak, Divyanka Tripathi, Garima Chaurasia, Ridhima Pandit, Aditya Narayan, Jasmin Bhasin, Zain Imam, Bhuvan Bam, Chetna Pande, Krystle D’Souza, and Devoleena Bhattacharjee. This year too, the show will be back with a new theme and the star host, Salman Khan. Though the theme is not declared yet officially. Stay tuned with us to know more about the show Bigg Boss 13.
ReplyDeleteI admire this article for the well-researched content and excellent wording. I got so involved in this material that I couldn’t stop reading. I am impressed with your work and skill. Thank you so much. Website Development Kerala
ReplyDeleteI think this is an informative post and it is very useful and knowledgeable. therefore, I would like to thank you for the efforts you have made in writing this article.
ReplyDeletewebsite designing company pakistan
Great job for publishing such a nice article. Your article isn’t only useful but it is additionally really informative. Thank you because you have been willing to share information with us. corporate web design Florida
ReplyDeleteVery informative article, Which you have shared here about the Java web applications. After reading your article I got very much information and it is very useful for us. Thanks for sharing this article here. website development Indonesia
ReplyDeletevery nice article you can watch here saaho movie
ReplyDelete
ReplyDeleteNice infromation
Selenium Training In Chennai
Selenium course in chennai
Selenium Training
Selenium Training institute In Chennai
Best Selenium Training in chennai
Selenium Training In Chennai
ReplyDeleteRpa Training in Chennai
Rpa Course in Chennai
Rpa training institute in Chennai
Best Rpa Course in Chennai
uipath Training in Chennai
Blue prism training in Chennai
Data Science Training In Chennai
Data Science Course In Chennai
Data Science Training institute In Chennai
Best Data Science Training In Chennai
ReplyDeletePython Training In Chennai
Python course In Chennai
Protractor Training in Chennai
jmeter training in chennai
Loadrunner training in chennai
Milkchoco online fps mod apk Download
ReplyDeleteHappyMod
Teleplus
Very nice job... Thanks for sharing this amazing and educative blog post! ExcelR Pune Digital Marketing Course
ReplyDeleteVery informative article, which you have shared here about the Java Web Application. After reading your article I got very much information and it is very useful for us. I am thankful to you for sharing this article here. edmonton web design
ReplyDelete
ReplyDeleteSuper Dj Remix Song New Latest Song Available On This Website,
Good Job Sir
Latest Official Song Download Now Click Here
Download Now Click Here
This comment has been removed by the author.
ReplyDeleteThis is such a great resource that you are providing and you give it away for free. I love seeing blogs that understand the value of providing a quality resource for free. Web Design Firms Vancouver
ReplyDeleteI truly appreciate this post. I’ve been looking all over for this! Thank goodness I found it on your blog about java web application. You have made my day! Thanks again! Keep updating more excellent posts. video advertising production company USA
ReplyDeleteI was very impressed by this post, this site has always been pleasant news about java web application. you very much for such an interesting post, thanks for these type of informative content. Digital Marketing Prahran
ReplyDeleteWonderful Message for all which you have shared here about java web application. This is very informative for those who need this. In the future share this type of informative article here with us. ios development services Denver
ReplyDeleteGreat information for java developers and after reading the article i get an overall way of doing such a things.Thanks to blogger.
ReplyDeleteoverseas education consultants
decided then to find a way to learn how to get into digital. digital marketing training in hyderabad
ReplyDeleteI exactly got what you mean, thanks for posting. we provide Ecommerce Website Development Company in Dubai at affordable charges. to know more visit our website.
ReplyDeletehttps://www.guest-articles.com/education/1z0-1067-oracle-cloud-infrastructure-2019-cloud-operations-associate-02-12-2020
ReplyDeleteMua vé máy bay tại Aivivu, tham khảo
ReplyDeleteve may bay di my gia re
vé máy bay từ mỹ về việt nam hãng korea
giá vé máy bay từ nhật về việt nam
chuyến bay từ canada về việt nam
You have provided a richly informative article about java web application. It is a beneficial article for me and also helpful for those who will read it. Tour CMS website Development costThanks for sharing this information here.
ReplyDeleteWonderful blog found to be very impressive to come across such an awesome blog. I should really appreciate the blogger for the efforts they have put in to develop such an amazing content for all the curious readers who are very keen of being updated across every corner. Ultimately, this is an awesome experience for the readers. Anyways, thanks a lot and keep sharing the content in future too.
ReplyDeleteDigital Marketing Training
Informasi yang sangat baik, saya sangat berterima kasih kepada Anda karena Anda telah membagikan informasi ini kepada kami. Saya mendapat beberapa pengetahuan yang berharga, dan itu sangat membantu semua orang. Terima kasih telah membagikannya. agency seo jakarta
ReplyDeleteThe post you have shared here is really great as it contains some great knowledge which is very useful for me. Thanks for posting it. Keep posting. website design Seattle WA
ReplyDeleteThe post you have shared here is really informative as it contains some best knowledge which is very essential for me. Thanks for posting it. Keep it up. San Antonio website design company
ReplyDeleteI’m genuinely impressed with your knowledge. You have great knowledge of this. It was a really attractive blog. Please keep sharing your post with us. wordpress website designing company in India
ReplyDelete