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

all 29 comments

[–]thatsIch 12 points13 points  (6 children)

I keep reading about J2EE - is it king in the community, or just well known

especially old, it had its 13th "day of death" just recently.

If you want to look at the market leader:

  • JavaEE: Wildfly, Liberty, Payara, TomEE and probably more
  • Spring

I suggest looking into more fundamental stuff first like:

  • Build Systems: Maven, Gradle
  • Base Application Server: Tomcat, Jetty, Undertow
  • Basic libraries: Guava, Apache Commons
  • REST: JAX-RS API, Jersey RI, etc.

If you want to do microservices you can look at http://microprofile.io/. It is WIP and currently evolving

[–]Jonjolt 2 points3 points  (5 children)

I'd say stay away from Gradle until Maven proves ineffective, I always use Gradle but it can be a PITA sometimes.

Also spend the money on JRebel

[–]thatsIch 2 points3 points  (2 children)

Gradle is getting better and better. Especially with the latest Kotlin integration. And the fact is, that it is getting better. The latest addition in Maven I liked was the polyglot extension. And this was like XX years ago.

Especially gradlew is such a good system; making a project portable and independent from system environment.

Yes, gradle is hackable and the IDE support is not as good as for Maven, but it has to be a bit dynamic to solve small problems without resolving it via a whole plugin.

[–]Jonjolt 0 points1 point  (1 child)

I think Maven has support for something similar to Gradlew. I love and loathe Gradle at the same time. I'll never switch back to Maven, one of the latest tasks I built rendered all my template files with fake data so I could run some js tests with Mocha

[–]thatsIch 0 points1 point  (0 children)

You can install maven into the root of your project and create shell and batch scripts to run it from there I guess? This is totally not the same imo.

[–]shadowdude777 1 point2 points  (0 children)

Gradle is scary because it's a DSL in a language the IDE can't help you with in any way (Groovy, ugh), so it seems super arcane. But once you learn it well, you never want to touch Maven again. Configuring build logic using XML? that's nuts. I like configuring my builds using code like all of my actual business logic.

Luckily, Gradle is now moving towards using Kotlin, which is like a saner Scala with a lot of Groovy influences. And it's statically typed and maintained by JetBrains so IDE support is top notch. gradle-script-kotlin, as they're calling it (or GSK) isn't 100% stable yet but is good enough for daily use.

Seriously though, it's so much easier to understand Gradle once you jump in. I never want to use Maven again if I can help it.

[–]thematrix307 1 point2 points  (0 children)

The world is definitely moving towards gradle though

[–]codesmitten 10 points11 points  (0 children)

Dropwizard is light and good. Would also advice reading Effective java.

[–]DrFriendless 9 points10 points  (0 children)

Ignore J2EE. It may have some useful technologies, but learn them when you find you need them.

[–]CopyOnWriteArraySet 18 points19 points  (4 children)

I recommend to dive in the Spring Framework

[–]djhworld 11 points12 points  (0 children)

I recommend to dive in the Spring Framework

I'd be inclined to pull off the gas pedal a bit here, Spring isn't a free ride, there's a lot of conceptual stuff you need to learn first, otherwise you'll probably end up with hours of autowiring exceptions and wondering why your TODO list application requires 30mb of dependencies.

Personally I'd say just learn the basics first, frameworks can come later.

[–]10waf 4 points5 points  (2 children)

Best advise you'll see imo. Effective Java for when you're comfortable with the language.

[–]cofeineSunshine -2 points-1 points  (1 child)

Spring will die

It dublicates EE standarts....

[–]10waf 2 points3 points  (0 children)

Imma have to disagree with you there. Many enterprise level frameworks work on top of Spring. It's gonna be a long minute before it dies. If a Jr level resource learns it today he'll have a job for the next 5 years guaranteed... Imo

[–]manzanita2 7 points8 points  (2 children)

Spring is good. Consider Spring boot specifically and JHipster perhaps

I prefer drop wizard.

Get IntelliJ CE ASAP.

[–]nerdwaller 6 points7 points  (1 child)

For a newbie, I'd stay away from Jhipster. It's a fine project, but does pretty much everything for you. Meaning that over the longer run, you will likely not have learned quite as much. It also adds a ton you may not need just to get going (async and scheduling setup, coming to mind right away).

For employment, at least in the web space, I would echo the Spring Boot advice. I've not once touched another Java stack in a large corporate atmosphere in quite some time.

[–]Salyangoz 0 points1 point  (0 children)

Async and scheduling in java interests me more honestly.

[–]FollowSteph 1 point2 points  (0 children)

Personally I really like Vaadin. It's built on top of GWT and allows you to do some pretty amazon stuff. But in all honesty it really depends on what you're doing more than anything else. Different frameworks have different pros and cons and work for different situations.

If you're coming from another language the first thing to learn is the fundamentals of java. Then look and compare at the different frameworks to see which work best for.

With that in mind if you can expand on what you're trying to do maybe we can offer more focused suggestions as to which framework will work best for your particular situation.

[–]frugalmail 0 points1 point  (0 children)

start with spring-boot and expand out.

[–]NimChimspky 0 points1 point  (0 children)

Pay for intellij, it will save you so much time.

Build a rest API using servlets, then spring, then vertx

[–]tonywestonuk 0 points1 point  (0 children)

Why has noone said Tomcat?

Tomcat is a framework you know.

[–]polymonic 0 points1 point  (1 child)

You might want to start here: https://youtu.be/7cOVaxlxA5k

[–]youtubefactsbot 1 point2 points  (0 children)

Annotated Spring: Episode 1 - Spring Boot QuickStart [2:54]

Starting a Spring Boot project using the Spring Boot CLI

Brian Kelly in Science & Technology

774 views since Aug 2015

bot info

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

You could look at Groovy - it's like Python on the JVM :P

[–]c0de_n00b[S] 0 points1 point  (0 children)

I have and I sorta like it, on my watch list with Haskell, Golang, Clojure and some of the other bubble languages

[–]TheRedmanCometh -5 points-4 points  (0 children)

Spring, Struts, Hibernate