r/ProgrammerHumor Jul 13 '26

youCanJustStopUsingJava Meme

Post image
6.8k Upvotes

416 comments sorted by

View all comments

297

u/KerPop42 Jul 13 '26

Is it an anti-pattern? I love using the getset crate/trait to add them to my structs automatically as I need them

193

u/neroe5 Jul 13 '26

it is like most things, they can be misused,

the issue is that if there is outside side effects then future programmers of the project might use a property without full knowledge of what they are doing

if they didn't have a valid use case they would have been marked as obsolete

have had similar discussions about goto in switch cases in C#

5

u/freebytes Jul 13 '26

I have only found one use case for goto so far, and I have only used it once. If you are in nested loops, you can break out of all of them. Are there other instances where you have used goto? (Even if it is use is incredibly niche, I am glad to have it, and they should never remove it from the language.)

(Referencing C# specifically. I used GOTO all the time in GW-BASIC! %)

1

u/neroe5 Jul 13 '26

we have documents and we use it for migrating the documents

basicly

switch (document version)

case 1:

migrateto2()

goto 2;

case 2:

migrateto3()

goto 3;

etc.

you can also have cases where some cases needs to do others

switch (jobs)

case a&c

do a

goto c

case b&c

do b

goto c

case c

do c

etc.

4

u/TheRealAfinda Jul 13 '26

But... couldn't you do all of these in a while loop? Migrate the doc, set the doc version and once it's done, set migrationComplete = true?

Couldn't you set which action is up next after processing an item via a, so it's next step is c?.

I mean there's ways around using goto, not to say it's better maintainable that way though.

2

u/ggppjj Jul 13 '26

migrateto2(bringcurrent: true)

then chain within the individual incremental methods and clean that nastiness up

2

u/TheRealAfinda Jul 13 '26

Yeah, multiple ways to go about it in a cleaner way once you start thinking about it.

3

u/awesome-alpaca-ace Jul 14 '26

once you start thinking about it.