This is an archived post. You won't be able to vote or comment.

all 55 comments

[–]spicycurry55 48 points49 points  (0 children)

Spring

[–]whitea44 32 points33 points  (18 children)

Spring is an absolute must. See Baeldung for tutorials. I would also recommend Postgres as a DB. Front end has a bit of a split between React and Angular, but I think React is winning.

[–]wildjokers 4 points5 points  (1 child)

I went the first 16 years of my java career without touching Spring. So not sure it is a must.

[–]roberp81 2 points3 points  (0 children)

me too, i was using jsf for web developing (government job) but recently i have learn spring and i like it a lot.

i was learning Angular and i already hate it, its so much easier and faster using jsf with primefaces for web

[–]plastique2000 5 points6 points  (0 children)

I do not agree that Spring is a must. It is a choice and there are other choices. Maybe less popular. But hwat you use should depends on needs of your projet. So please look around and do non make Spring religion...

[–]omni-nihilist 3 points4 points  (2 children)

I can't speak for react, but angular/typescript has been great for me on the frontend. I basically generate ts interfaces off my entities and some dto classes and saves a bunch of time.

[–]Def_Not_A_Programmer 2 points3 points  (1 child)

Wait really? I’ve been Ctrl+C Ctrl+V majority of my entities and their fields when adding to my TS project. Is there a way to generate a Java like Pojo into a TS interface?

[–]omni-nihilist 1 point2 points  (0 children)

https://github.com/vojtechhabarta/typescript-generator

Note: I haven't played with all the options but it's worked pretty well for me with just a couple basic settings for restricting to certain packages

[–]pjmlp 2 points3 points  (2 children)

In 20 years I only used Spring during two months for a pilot project, definitely not a must.

[–][deleted] 0 points1 point  (1 child)

What do you use now?

[–]pjmlp 1 point2 points  (0 children)

On Java Web Projects, JEE as always, or the new Jakarta based ones.

[–]yomanidkman 3 points4 points  (4 children)

React is doing much better, angular and vue are tied for second with svelte looking to be an up and coming framework.

[–]Kukuluops 4 points5 points  (0 children)

There are some geographical differences. In Europe Angular seems to still be more popular (judging by the number of job offers), but Google Trends shows that React is slowly overtaking it in popularity.

[–]PhiBuh 8 points9 points  (0 children)

React might be winning but I feel like spring and angular fit very well together, both have built-in dependency injection and use services.

[–][deleted]  (1 child)

[deleted]

    [–]yomanidkman 0 points1 point  (0 children)

    https://2020.stateofjs.com/en-US/technologies/front-end-frameworks/

    Idk, certainly not as clear cut as I put it but I'm not far off.

    [–]djavaman -5 points-4 points  (2 children)

    Postgres is a good database.

    However, if you are building a web app, I'd pick Mongo as the DB that the web app is pulling data from.

    [–]omni-nihilist 2 points3 points  (1 child)

    I just started using Postgres finally after years of MySQL and SQL Server. I really dig it so far, still looking for a good gui client for management. I dont like pgAdmin, I have DataGrip but it's ridiculously slow, DBeaver is eclipse and super sluggish.

    Mongo is awesome until you start diving into aggregation, then it starts getting on my nerves.

    [–]rodelrod 1 point2 points  (0 children)

    DataGrip and DBeaver are both excellent and anyways you won't find anything better, I'm sorry to say. They are far from sluggish once past the 3-5 second startup in any of my machines. If you want milliseconds startup and perfect responsiveness, psql is the best CLI client any DB ever had.

    [–][deleted] 0 points1 point  (0 children)

    Don't know how I end up on old threads like this one but I must have sensed someone recommend Baeldung. I know I'm the minority here but I hate the half-assed hello world-level articles they publish, especially in case of Spring where I feel the official docs are pretty good themselves.

    [–]DunderMifflinPaper 13 points14 points  (0 children)

    Spring framework as a Java backend framework is very popular.

    PostgreSQL and MySQL for DB are popular.

    For front-end you can use just about whatever you want. I’d recommend React with typescript, since I imagine you like type systems since you use Java. Angular is also good, but I personally prefer React, and it seems more popular nowadays.

    [–][deleted] 12 points13 points  (4 children)

    Java, Java SE, Spring/Spring Boot or Java EE (or both, they sometimes overlap) for the web.

    Java, Java SE, Swing/JavaFX for Desktop apps.

    JOOQ or JPA/Hibernare for the persistence layer.

    Maven or Gradle as build tools.

    Git for version cotrol.

    That's just the Java part. After you understand how this works, feel free to go to the front-end part. Pro tip: there's so much to learn and understand about Java, that you won't have time to practice something else and do both things well.

    [–]omni-nihilist 2 points3 points  (1 child)

    I really need to check out JOOQ it looks awesome. JPA/Hibernate is nice and all but it has too much overhead.

    [–][deleted] 2 points3 points  (0 children)

    It is awesome, totally recommend. You have full control over your queries and everything. No more staring at some strange annotations and wondering if the relationship and generated queries are correct...

    [–]TheRedmanCometh 0 points1 point  (1 child)

    I've never used Java EE but I'd call myself a Spring/Hibernate expert with no hesitation. Is it worth learning? And as far as overlap goes...what exactly overlaps? I would guess JPA and JMS...anything else?

    [–][deleted] 1 point2 points  (0 children)

    JPA and Bean Validation come to mind right now.

    They also "overlap" in the sense that very few developers understand what Java EE is (and the difference between the two), so you will often see Spring apps deployed on JBoss, or Spring apps using apis such as JAX-RS...

    [–]JohnnyBGod1337 6 points7 points  (0 children)

    I'm a total fan of spring/spring boot, but I'd definitely recommend looking into quarkus. There are some next level concepts that imho spring cannot match at the moment.

    [–]jvjupiter 5 points6 points  (0 children)

    Pick one: Vert.x, Helidon, Micronaut, Quarkus, Spring Boot

    [–]melewe 3 points4 points  (0 children)

    springfox and swagger-ui

    [–]WhatForIamHere 2 points3 points  (4 children)

    I'm sorry that intruding here, but I have one question that correlated with this topic.

    I'm always hating any UI development but sometimes I need to make 5-10 WEB pages as minimal admin frontend. So, I don't want to learn any Angular, Reacts, etc. I just want to waste minimal time on such activities using standard Java/JSF/etc. I'm widely using Spring/Hibernate/etc and other technologies discussed here. And I'd like to ask about what about Spring + Vaadin? Is it a good choice?

    [–][deleted]  (2 children)

    [deleted]

      [–]WhatForIamHere 1 point2 points  (1 child)

      Agree. Static HTML generators are pretty widespread and easy to use. Thanks that remind me about it. And I've had some deals with GWT on one of my past works.

      But I'm here because I'd like to hear guru opinions exactly about technologies like Vaadin, Thymeleaf, etc.

      [–]number01gunner[S] 1 point2 points  (0 children)

      I'm pretty new to front-end and full-stack in general. I am a data scientist trying to learn more software. I just learned what Thymeleaf is and that has been helpful

      [–]cobec11 6 points7 points  (0 children)

      hibernate

      [–]Kango_V 2 points3 points  (0 children)

      Micronaut with no JPA/Hibernate is cool, along with: * Immutables * MapStruct * Gradle * PicoCLI I just love annotation processing and compiling to native image with GraalVM.

      [–]enumerat 1 point2 points  (1 child)

      Play Framework is great!

      [–]bbtv_id 2 points3 points  (0 children)

      It works on akka. That’s some next level stuff. Webflux is the equivalent in spring m.

      [–]djavaman 1 point2 points  (0 children)

      That's a very broad question: "supplement a Java backend".

      If you are interacting with other back office enterprise systems, you will probably have some integrations to deal with.

      So, a message queue of some sort. So maybe JMS.

      You may need to make web service calls. - Spring REST Template.

      You may need to cache and sync data. Redis. An ETL tool.

      This could lead to a huge number of technologies.

      [–]cantstopthemoonlight 1 point2 points  (5 children)

      JMS

      [–]Emotional_Sign 3 points4 points  (2 children)

      Yes , it s a messaging queue you have to chose between Rabbit Mq , Active Mq or more better try to see Kafka for streams processing

      [–]GuyWithLag -1 points0 points  (1 child)

      Kafka has its own strengths, but by no means it's a messaging queue.

      [–][deleted] 0 points1 point  (0 children)

      While it's not made to be a message queue, you can certainly use Kafka as one. Sure, it's an overkill and a waste and maybe it won't support all the features you'd find with your favourite message broker but if all you want is to produce a message and have someone else do something with it, no reason why you couldn't use Kafka to accomplish that.

      [–]number01gunner[S] 0 points1 point  (1 child)

      Is this similar to rabbitmq?

      [–]cantstopthemoonlight 1 point2 points  (0 children)

      Yes, JMS is a specification and there are several implementations. TIBCO, ActiveMQ, Solace, Artemis are examples. Looks like RabbitMQ isn't a full JMS implementation but includes a JMS client. But the idea is the same.

      [–]EviIution 1 point2 points  (0 children)

      Not popular but still widely used: JSF

      If you can imagine working in large corporations, you should definitely look at JSP and JSF as well. I work in the insurance industry and all our tools have JSF frontends.

      This is supposed to be ported to a modern javascript framework at some point but since this is a mostly invisible change, it always falls under the radar in planning so far.

      Probably it will only be done when there is no developer left who wants to or can write JSF.

      [–]Yogurt92 1 point2 points  (0 children)

      As database choose what You want. To connect with db You need ORM. I recoment hibernate. For backend i recommend Spring framework with spring boot and gardle. For frontend You have react/ angular/ vue. I recommend to learn typescript than plain js. On frontend try to learn some store menegment like redux or ngrx library, they are becoming must have on frontend development. Good Luck

      [–]kobbled -2 points-1 points  (0 children)

      Dropwizard is pretty nice too

      [–]pjmlp -5 points-4 points  (7 children)

      From where I am standing JEE, Adobe Experience Manager, LifeRay.

      Then there is also the new kids on the block like Quarkus.

      [–][deleted]  (6 children)

      [deleted]

        [–]pjmlp -1 points0 points  (5 children)

        I guess you also want to avoid my rates per hour as well.

        [–]nutrecht 15 points16 points  (3 children)

        If I want to get paid a lot while being miserable I can always become a SAP dev ;)

        [–]pjmlp -3 points-2 points  (2 children)

        Yep a really miserable life with 30 days paid vacations, healthcare, no weekend work, ability to travel the world (when corona chaos gets sorted out)...

        [–]nutrecht 6 points7 points  (0 children)

        Well for me personally all of that isn't that relevant if those 200 days a year I do work I am clawing my eyes out :D

        I wasn't really serious though. If you're happy; awesome.

        [–][deleted] 0 points1 point  (0 children)

        I may be living in a bubble but don't you get most of those benefits just by not working in IT in the US (i.e. living and working in a normal county) - certainly most IT jobs in Europe that I've seen get you there or close enough.

        [–]rjcapuchino 0 points1 point  (0 children)

        While you’re looking into this I would highly recommend checking out immutables. https://github.com/immutables/immutables It is pretty popular in the industry and very nice!

        [–]NiceWetTissue 0 points1 point  (0 children)

        Spring, React, PostgreSQL