DEV Community

Discussion on: How to build Enterprise Level Web Applications using Java?

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
 
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 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
 
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!