DEV Community

Cover image for How to build Enterprise Level Web Applications using Java?

How to build Enterprise Level Web Applications using Java?

Abdur Rehman Khalid on June 10, 2021

Java has been used most of the time for learning the various concepts of Object Oriented Programming and concepts. Majority of us also knows that J...
Collapse
 
honatas profile image
Jonatas de Moraes Junior

Although Node and Go are getting a lot of traction, I wouldn't call Java a legacy just yet. Spring Boot REST servers are my top choice among everything else for backend, because of Spring mostly: extremely stable and battle-tested, its facilities ultimately compensate for Java's verbosity.

I just can't think the same of Spring MVC and Thymeleaf though: going full JAMStack makes development much faster (and also pleasant) than having to rebuild a whole application just to be able to see that css change applying. Also, by doing that you are already separating your application in at least two parts - front and back - being then a small step ahead on modularity.

As for Hibernate, well ... just check my profile for a post about it if you have the time to listen to me whine. ;)

Collapse
 
matthewekeller profile image
matthewekeller

I always hated hibernate. Why is anyone afraid of SQL? First hibernate said "you won't have to write sql". Then they said "We invented hibernate sql". Really?? There is no reason to be afraid of SQL. It works pretty darn well. If you are worried about managing transactions, you can do that all with annotations in Spring now.

Collapse
 
lexiebkm profile image
Alexander B.K.

My main reason to stick to SQL is code transformation.
I mean, suppose that I write backend using PHP + Laravel and MySQL. When someday I have to use ASP.net or Node, then I need to rewrite my database related code using different ORM provided by these stacks.
Whereas, with T-SQL, I can just use the same SQL code in the new backend stack.
Although I am currently using Laravel, I don't use its Eloquent ORM for complex computation, especially when stored procedures seem to be the only solution.

Thread Thread
 
abdurrkhalid333 profile image
Abdur Rehman Khalid

You have explained that in a very nice and attractive way. Thank you for that.

Collapse
 
abdurrkhalid333 profile image
Abdur Rehman Khalid

To Be Very Honest, I Love to Write Queries Manually, But, In Simple words, Hibernate is there to easily understand the Relationships and Entities, and It also supports the thing called one thing for everywhere kind of concept as well. This is why the ORMS are in much demand these days.

Collapse
 
abdurrkhalid333 profile image
Abdur Rehman Khalid

Yes, I totally agree with you on these points as Spring MVC and Thymeleaf has been a kind of old fashioned but there are some projects which have been made using these frameworks and they are working fine to the time.

And I will definitely checkout your profile for the Hibernate topic :)

Collapse
 
matthewekeller profile image
matthewekeller

I recently learned Node and it is a brittle pile of overcomplicated crap chained to a single threaded runtime engine. This terrible idea will not be around in 10 years, I guarantee it.

Collapse
 
abdurrkhalid333 profile image
Abdur Rehman Khalid

Actually, I am currently working on a Large Scale Project and I have selected Node for that Project, Yet Node is very fast but it has code scattered everywhere. And it is also a different and abstract architecture that makes it a kind of crappy.

Thread Thread
 
matthewekeller profile image
matthewekeller

The more I learn about Node, the worse it gets. It seems that library versioning is a real pain point for everyone, and Lerna doesn't seem to make things much better. Here is an example of how developers have to manually enforce patterns on their team just to keep things from getting out of control jackcuthbert.dev/blog/managing-a-m.... This kind of thing is so straight forward in java and maven that no one even thinks about it.

On an even more basic level developers always wonder about things like, should I check in my lock file to git, or should I delete my lockfile when I build. Is there a lockfile in a sub folder that I don't know about. Yuck!

Collapse
 
matthewekeller profile image
matthewekeller • Edited

JSP is still the most common view used with Spring MVC and everywhere I have worked is still heavily used. The reason for its popularity is that it is so intuitive to use and performs very well. I could teach 14 year olds to write JSP. It's that simple. Like a wise man once said, the most brilliant solutions are the most simple ones.

Collapse
 
abdurrkhalid333 profile image
Abdur Rehman Khalid

The easy to memorise and easy to grasp concepts of Java and related frameworks makes it favourite for many classical framework and classical programmers.

Collapse
 
lexiebkm profile image
Alexander B.K.

Classical ? I have not tasted classical ASP when it gained success in its era alongside JSP and PHP.

Collapse
 
golfman484 profile image
Driving change • Edited

All of our enterprise apps have been built in Java. You just can't beat it for runtime performance, ease of use, development productivity, type safety (for robust apps!), the JVM and, of course, its all conquering ecosystem.

Our stack looks like this:

UI: Wicket - JavaScript powered/AJAX capable components but all driven from Java - no ugly JavaScript to write...ever! HTML layouts for pages, panels and components are specified with stock standard, legal HTML markup which can be edited by any HTML editor.

ORM: DataNucleus (alternative to Hibernate) - for speed and more transparent persistence (i.e. not having to adjust your object model or code to cater to limitations/nuances of the ORM).

Collapse
 
abdurrkhalid333 profile image
Abdur Rehman Khalid

Thank you for that valuable addition.

Collapse
 
ishakmohmed profile image
Mohmed Ishak

Is Java dying? Do big companies like Google or Facebook prefer to use Java as a backend in 2021? Btw nice article.

Collapse
 
abdurrkhalid333 profile image
Abdur Rehman Khalid

Java will never Die as this is the base of the big enterprise level applications and projects, google has used java fro big data analytics and platform building and also facebook has used PHP to build their various platforms so these languages will not die.

Collapse
 
ishakmohmed profile image
Mohmed Ishak

Cool. Thanks man.