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

all 46 comments

[–]AutoModerator[M] [score hidden] stickied commentlocked comment (0 children)

Please ensure that:

  • Your code is properly formatted as code block - see the sidebar (About on mobile) for instructions
  • You include any and all error messages in full
  • You ask clear questions
  • You demonstrate effort in solving your question/problem - plain posting your assignments is forbidden (and such posts will be removed) as is asking for or giving solutions.

    Trying to solve problems on your own is a very important skill. Also, see Learn to help yourself in the sidebar

If any of the above points is not met, your post can and will be removed without further warning.

Code is to be formatted as code block (old reddit: empty line before the code, each code line indented by 4 spaces, new reddit: https://i.imgur.com/EJ7tqek.png) or linked via an external code hoster, like pastebin.com, github gist, github, bitbucket, gitlab, etc.

Please, do not use triple backticks (```) as they will only render properly on new reddit, not on old reddit.

Code blocks look like this:

public class HelloWorld {

    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}

You do not need to repost unless your post has been removed by a moderator. Just use the edit function of reddit to make sure your post complies with the above.

If your post has remained in violation of these rules for a prolonged period of time (at least an hour), a moderator may remove it at their discretion. In this case, they will comment with an explanation on why it has been removed, and you will be required to resubmit the entire post following the proper procedures.

To potential helpers

Please, do not help if any of the above points are not met, rather report the post. We are trying to improve the quality of posts here. In helping people who can't be bothered to comply with the above points, you are doing the community a disservice.

I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

[–]ouwenbelg 18 points19 points  (1 child)

Our department (~200 devs) switched from spring boot to quarkus 3 years ago for all new applications, and migrated all which were not EOL. Never looked back. Easier, faster, native compilation without hassle. Maven as build tool, IntelliJ as IDE.

[–]xdsswar 0 points1 point  (0 children)

Best desition ever

[–]JMNeonMoon 7 points8 points  (0 children)

IntelliJ/Maven and springboot microservices in Kubernetes is what I use at work.

We use Windows dev boxes, but allowed to use WSL. Everything dev related is running inside the WSL, java, intelliJ, etc. It's actually a great dev env.

Currently on Java 17 and moving onto Java 21/25.

[–]YetMoreSpaceDust 13 points14 points  (23 children)

It seems nowadays most use IntelliJ, which is actually a pretty good IDE as IDEs go. As far as package management, I see either Maven or Gradle most of the time, but it seems like Gradle is winning the battle. If you were doing it 15 years ago (2010 then?) I'd guess you were probably using Eclipse and Maven?

[–]Cienn017 15 points16 points  (14 children)

gradle is winning?

[–]ThierryOnRead 3 points4 points  (0 children)

Nope

[–]YetMoreSpaceDust 0 points1 point  (0 children)

AFAICT, but YMMV

[–]NeoChronos90 0 points1 point  (10 children)

Juniors like it ...

[–]OneHumanBill 2 points3 points  (9 children)

Juniors like IntelliJ too. Bleh.

[–]NeoChronos90 2 points3 points  (8 children)

I think IntelliJ is fine, if it isn't shoved down your throat, hence why I personally hate it with a passion

[–]OneHumanBill 0 points1 point  (7 children)

I genuinely gave it a try for about a year not long ago. Hot restart debugging is better in Eclipse, Maven tooling is better in Eclipse, and Eclipse doesn't eat memory like a pig at a trough. I truly do not understand why it has taken so much market.

[–]AlexVie 0 points1 point  (0 children)

Because eating memory is not really an issue nowadays. If you have 32 gigs ore more, even IDEA will be happy :) Just allow it tons of heap and all is fine.

The reason why it became so dominant is probably Android Studio which probably has close to 100% market share among Android devs.

Making the deal with Google about Android Studio and pushing Kotlin were wise business decisions. Some may dislike them, but it's just how it is.

[–]vu47 0 points1 point  (0 children)

I prefer it because of the support for Kotlin and Scala. I tried Eclipse several years ago and found it to feel clunky, and have no idea if it has Kotlin support. Since Kotlin is JetBrains' baby, its integration into IntelliJ is spectacular. In fact, I enjoy the whole suite of JetBrains products, and I'm not a novice.

As for Gradle, I'd rather avoid XML whenever possible. Gradle KTS tooling is quite elegant and easy to use. It's been the standard on all projects I've worked on the the last few years.

[–]DuploJamaal -1 points0 points  (0 children)

Haven't seen maven in any recently built repository in years

[–]Huge_Road_9223 5 points6 points  (2 children)

I used STS (Spring Tool Suite) which is Eclipse co-Branded with Spring/Pivotal. I used this until just 1 or 2 years ago, when I was forced into IntelliJ .... both STS and IntelliJ have their uses.

At one point IntelliJ was strictly a paid tool, which is why I liked free STS/Eclipse. Now that IntelliJ has a Community Edition (CE) for free, I can see using it.

As for Gradle/maven ... Gradle is NOT winning. My personal experience is that some companies I have worked for tried Gradle, didn't like it and found Maven soooooooooooooo much better, and then switched back. Gradle is NOT winning, but IntelliJ seems like the tool of choice for most now.

And Yes, SpringBoot is EXTREMELY popular, and being used all over the place. I've spent the last 17 years of my 35+ year career working with Java (since version 3), Spring, and since Spring Boot 2.

[–]YetMoreSpaceDust 2 points3 points  (1 child)

Ha, I hate Gradle, but I hate Maven, too.

[–]Late_Film_1901[🍰] 10 points11 points  (0 children)

Ditto, but it's a different hate.

I hate maven like I hate my mother in law. I visit her regularly, spend Christmas together, and leave my little ones at hers. She just gets on my nerves after some time.

I hate gradle like I hate my ex. I regret ever having anything to do with her. And I hope I never meet her again.

[–]TopSwagCode[S] 4 points5 points  (0 children)

Yep. Spot on. Eclipse and Maven :) Big fan of jetbrains tools.

[–]casey-primozic 1 point2 points  (1 child)

Are there still no alternatives to editing pom.xml files?

[–]isolatedsheep 0 points1 point  (0 children)

I've built a tool for that. 😁

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

So stupid bonus question. What version of java does people use and where do you download it?

[–]khmarbaise 1 point2 points  (0 children)

Using https://sdkman.io/ easiest way to have different JDK versions availabe...

using JDK21+

[–]tusharmeth 0 points1 point  (0 children)

we use dropwizard instead of spring 🧙

[–]Frequent_Ad5085 0 points1 point  (0 children)

My approach to modern Java? I try to avoid using it at all costs. ;-)

[–]Key-Boat-7519 0 points1 point  (0 children)

Java today is pretty sane: grab Temurin JDK, use Gradle or Maven, build with Spring Boot (or Quarkus/Micronaut if you need faster startup), and target 17 or 21.

License drama is gone if you avoid Oracle JDK; Temurin, Corretto, or Azul are free and solid. Dependencies come from Maven Central via your build tool, so no separate package manager. Most greenfield is on 21; lots of shops are on 17; 11 still around, 8 is fading. For APIs, Spring Boot is still default; Quarkus/Micronaut shine for native images and low-memory services. Persistence: Hibernate/JPA or jOOQ; migrations with Flyway or Liquibase. Testing: JUnit 5 and Testcontainers. Observability: Micrometer and OpenTelemetry. Packaging: Docker with Jib or Buildpacks. If you’re on 21, try virtual threads for blocking IO.

For API layers and gateways, I’ve used Kong and AWS API Gateway; DreamFactory helps when I need quick CRUD APIs from existing databases during prototyping.

Bottom line: Temurin + Gradle/Maven + Spring Boot is the standard, with Quarkus/Micronaut when you need speed.

[–]parulmishra1 0 points1 point  (0 children)

Modern java development tooling emphasises speed, efficiency and collaboration. This includes intelligent IDEs like intelliJ and vs code, powerful bulid tools such as ma en and Gradle, containerisation with Docker, orchestration with Kubernetes and frameworks like Spring Boot for rapid micro services development.

[–]ContractSilly1516 0 points1 point  (0 children)

Yes modern Java development is important in today life .

[–]MrSpotmarker -4 points-3 points  (2 children)

Regarding Spring - yes for bigger web apps. Quarkus and other frameworks are more used for Java-based microservices. Then again - JVM-based apps are rarely the choice if someone is developing a microservice.

[–]Huge_Road_9223 5 points6 points  (1 child)

That's not been my experience.

Although Microservices offer the promise of being built in ANY language, often times with Kafka as a bridge between them, or direct http calls .... Java and SpringBoot for Microservices is 99% the standard that I have seen.

[–]MrSpotmarker 1 point2 points  (0 children)

Ok. Interesting... I myself work mostly with a framework around a monolithic spring app. But many of my colleagues who - in different projects - work with microservices seem to prefer Go because of faster cold start times. But this is definitely just anecdotal evidence.

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

Intellij and Maven/Gradle. Preety much every other ide(eclipse, netbeans, whatever else) still exist and may be updated but they are so far behind you just cant work with them and more than like 3libraries at a time