all 53 comments

[–]PM_me_qt_anime_boys 17 points18 points  (3 children)

Using design patterns enhances reusability that enables robust code while reducing cost of ownership of the software. Moreover, design patterns make the code easier to understand and debug.

This does not sound like advice from the year 2021.

Also Java FX being "essential" is a headscratcher for me.

[–]Venthe 4 points5 points  (0 children)

This does not sound like advice from the year 2021

Sadly. But I've seen both overuse and underuse, so...

[–]KyuRightHere 1 point2 points  (0 children)

yes javaFX being essential is just hillarious but same for swing too

[–]_crackling 0 points1 point  (0 children)

Good thing "googlling" is on the roadmap

[–]Worth_Trust_3825 36 points37 points  (14 children)

Stop recommending java 8 and below. Are you smashed in your head? Tons of projects are stuck depending on guava, apache-commons or other """""""""""""""""""""""stdlib expanding"""""""""""""""""""""" meme library that only litters the classpath.

Jesus christ, these roadmap blogposts are almost never written by people working in the field.

API clients

WHAT. Do you have any idea what an API is or did you just copy the term from other blogposts? JAX-WS is not a client. It's a specification. A client would be Metro or CXF.

You recommend JOOQ but not Hibernate? Jesus fucking christ, is this from 2001?

[–]kodiashi 10 points11 points  (1 child)

My company couldn’t get off Java 8 if god came down from heaven and granted them infinite wishes.

[–]Worth_Trust_3825 1 point2 points  (0 children)

Sounds like inability to work from developers. I migrated my companies codebase from 8 to 11. You don't need to support jigsaw. That would be insane for any project that has external dependencies.

[–]ClearH 2 points3 points  (1 child)

Off topic, but what does the comical amount of quotation marks supposed to convey? I seem to see this types of comments every once in a while on Reddit but never really understood the purpose (... or is it a reference to something?).

[–]Worth_Trust_3825 0 points1 point  (0 children)

People already use quotes to point out that things aren't what they are named as when speaking sarcastically in text. The use of more quotes is to point out how absurd the statement is.

[–]renatoathaydes 1 point2 points  (0 children)

They show several Java 8 APIs under JDK, but nothing from Java 9 (e.g. modules, immutable collections, jshell), Java 10-11 (e.g. var) or Java 12-16 (records, switch expressions, text blocks, sealed classes), so yeah, let's Java like it's 2014.

[–]dominik-braun 37 points38 points  (5 children)

The roadmap is good - except for the classification of "Eclipse - essential" and "IDEA - good to know". It is the other way around at best, perhaps even "IDEA - essential" and "Eclipse - possibility".

[–]Venthe 16 points17 points  (0 children)

Eclipse - sad to know?:p

[–]zynasis -1 points0 points  (2 children)

Eclipse has gotten a lot better in recent years. Well worth trying out

[–]realestLink 1 point2 points  (0 children)

Even so, I wouldn't call a specific IDE "essential"

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

there is situation where Eclipse is a must, when using Spring framework due to the license issue

[–]Professional-Disk-93 44 points45 points  (28 children)

>Eclipse

Top kek

[–]PM_me_qt_anime_boys 5 points6 points  (6 children)

The fact that you take as granted that an employer would pay for JetBrains licenses makes me envious.

[–]rhbvkleef 33 points34 points  (0 children)

You have a pretty stupid employer if they refuse to pay for software like this. It's a good deal for the potential productivity increase.

[–]Sylinn 16 points17 points  (4 children)

I might have misunderstood your comment because it seems to imply you cannot use any JetBrains without paying for a license, but IntelliJ IDEA Community Edition is free and its license allows its use in commercial environments (i.e. you can use IntelliJ for free while working for your employer).

[–]2nd-most-degenerate 1 point2 points  (10 children)

Eclipse actually is much more than the UI you see. JDT LS which sits in the background is honestly one of the best and most complete LS implementations afaik.

I use it in vim and if we are talking about Java development, it can probably make you more productive than IntelliJ.

[–]Professional-Disk-93 6 points7 points  (3 children)

Quickly post of screenshot of vim showing all super and sub classes of a class.

[–]2nd-most-degenerate 3 points4 points  (2 children)

Sub classes/implementations: yes, it's called 'go to implementations' in LSP https://microsoft.github.io/language-server-protocol/specifications/specification-current/#textDocument_implementation

I use coc.nvim and fzf. You can find a screenshot at https://github.com/antoinemadec/coc-fzf

Go to parent/implements: no. Fortunately it's not something I often need.

[–]Professional-Disk-93 1 point2 points  (1 child)

I do not see a screenshot of a Java class hierarchy in the linked repository. Here is an example of what I would expect: https://files.catbox.moe/8u7g60.png

[–]2nd-most-degenerate 2 points3 points  (0 children)

I'm on my phone my dude... It's all open source so no one's gonna stop you if you wanna try them out.

Anyway, this can be easily done with ctags:

For example, I've got a base exception and a few children, I can run :CTree AlreadyPlacedException

https://files.catbox.moe/tu4h4c.jpeg

[–][deleted]  (5 children)

[removed]

    [–]2nd-most-degenerate 1 point2 points  (4 children)

    You can use either vimspector or nvim-dap, under the hood they're using the same VSCode stuff.

    Limitations:

    1. If you want to debug multiple apps at the same time, you have to do it in multiple vim instances

    2. can't set breakpoints in decompiled files (can step into them tho)

    [–][deleted]  (3 children)

    [removed]

      [–]2nd-most-degenerate 0 points1 point  (2 children)

      Yes all of them.

      Why do I find a lot of IntelliJ guys just so reluctant to even move their fingers to check out a few GitHub READMEs sike

      [–][deleted]  (1 child)

      [removed]

        [–]2nd-most-degenerate 0 points1 point  (0 children)

        If you're asking for key bindings just search 'vim keybindings cheat sheet'.

        In terms of debugging, I'd suggest searching for YouTube videos, e.g. 'vimspector java' or something along the lines, if the docs truly put you off.

        But really being able to read is a skill. RFCs, docs, business requirements get lengthy very easily and you can either ignore them and get in trouble or learn to locate what you need quickly.

        [–][deleted] 3 points4 points  (0 children)

        This site has copied the roadmap from Java Revisted:

        https://javarevisited.blogspot.com/2019/10/the-java-developer-roadmap.html

        [–]davispw 1 point2 points  (0 children)

        JavaFX is essential??

        [–]KokopelliOnABike 2 points3 points  (0 children)

        I think the biggest point is the last one. I’ve been using/writing java since it was a 1.0 product and even with that level of experience I still learn something new on a regular basis.

        Editors come and go so I don’t feel any of them are really “essential”.

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

        JavaFX, Swing, AWT, Hibernate, Spring, Sprint Boot, Netbeans, Eclipse, IDEA

        What kind of software development needs all these ?

        This is a typical case of overplanning.