7 ms·
run code anywhere hamstrung by 90s syntax and hidden code indirections
by throwawaymaths 10mo ago
run code anywhere hamstrung by 90s syntax and hidden code indirections
- groundzeros2015 10mo agoHaven’t checked in on Java in a while?
- ozim 10mo agoFrom what I gather everyone is still stuck on Java 8 so no need to check?
- foo4u 10mo agoThis is absolutely untrue. Code from JDK 8 runs fine on JDK 25 (just released LTS). It is true that if you did something silly that locks you into certain dependency versions, you may be stuck, but this is not the majority of applications.
- vips7L 10mo agoNo, everyone isn’t. You really should check.
- throwaway7783 10mo agoWhere do you gather this from? We are a startup, on Java and on 25.
- pylotlight 10mo agoWhy didn't you choose something more modern/sensible. go/kotlin/anything else on the planet?
- gf000 10mo agoGo is more verbose than Java though, in what way would it be more sensible? Also, Java's ecosystem is unparalleled (top 3 in size, depending on domain it usually has the best packages (e.g. typical backend-related functionality)), has stellar performance, a huge developer base, best-in-class IDE support, even LLMs understand it exceptionally well (given how widely represented it is in the training corpus, plus has a decent type system) if that's your thing. For a typical backend system, you really have to have a good reason to choose something else at this point.
- codr7 10mo agoExcept for Kotlin, which is a much nicer language to deal with.
- throwaway7783 10mo agoLittle nicer for sure
- lenkite 10mo agoA nicer language which is much slower to compile compared to Java.
- codr7 10mo agoIf that's the only price, I'll take it.
- zeroc8 10mo agoJava is ok for typical backend stuff, but Go doesn't hide things the way Java does. With Go, you actually learn what's going on, while with Java, you just learn your way around the various frameworks. As a programmer, I don't want that That said, my current company uses Spring Boot. It does its job, but it wouldn't be my top choice.
- throwaway7783 10mo agoIt is the programmer's job to learn what is going on. Java itself doesn't hide anything from you. You are free to write a servlet from scratch, or use a framework like Spring to hide everything. Your (company's) choice really. People end up choosing something that has batteries included so they can focus on solving business problems. A programmer who will superficially understand SpringBoot without understanding how it works. Really, there is no magic there - its a few core concepts - annotations, bytecode enhancement and dynamic proxies. Maybe Im missing one or two. Everything else is built on top of this. This is regardless of language/ecosystem. If I do not understand the fundamental concepts, I will never be successful in that ecosystem.
- throwaway7783 10mo agoWhile kotlin is somewhat nicer, it is not making a huge difference compared to java25. Like the sibling said, go is as verbose , the JVM is unparalleled still. Why wouldn't I choose java
- BobbyJo 10mo agoGolang has a way smaller memory footprint on average. I left a place using Java to run edge apps and the footprint was a major issue.
- krzyk 10mo agoKotlin sensible? It plays catchup game with newest JDKs.
- gf000 10mo agoEven stuck on Java 8 it's less verbose than Go, which everyone seems to love. But the majority of projects are on a newer JDK than 8 for quite some years now.
- the_gipsy 10mo agoNot even latest Java is less verbose than Go.
- gf000 10mo agoAre we talking about the language that has a couple extra lines after every statement, disguising as error handling?
- deleted 10mo ago[deleted]
- the_gipsy 10mo agogo's error handling is very poor and too verbose, but go is still way less verbose than Java overall. Like any other language. Java is the running joke of verbosity, and you are too if you seriously argue that it's not.
- gf000 10mo agoFeel free to provide some evidence. Like really, I would be interested in examples e.g. from the Java stdlib that are significantly more verbose than another generic purpose language. But I do know that you are meaning stuff like AbstractFactoryFactory, but you do realize that there is zero need to write anything like that and you can (and people do) write bad code in any language?
- groundzeros2015 10mo agoWhy is the quality of discourse in this thread so low?
- throwawaymaths 10mo agoi haven't. do people still use the "class" keyword?
- buzzerbetrayed 10mo agoIs that the issue people have with Java?
- auxiliarymoose 10mo agoI tried to check in on Java recently but got a NullPointerException when using the AbstractSingletonProxyFactoryBean !
- OrangeMusic 10mo agoI'll never understand people making fun of verbosity. So you really prefer short, ambiguous, opaque and unpronounceable abbreviations? Really?!
- auxiliarymoose 10mo agoFor me at least, I find it easier to see the shape of algorithms, control flow, and expressions when the variable names are concise. But this also might be because I have found Go to fit my use-cases and thinking style well, and Go programs tend to follow this naming convention. For example, if I have a struct `PageEntity` with a field `Id`, and I am iterating over a slice of such IDs, I would prefer using `pid` instead of `pageEntityId` as the variable name. But Java APIs and conventions tend to use these longer names, so I find it takes more thinking to remember the different names instead of quickly seeing the behavior of code at a glance. Java also tends to have a lot of inheritance which results in these long glued-together names and makes it harder to follow program flow because behaviors get introduced in multiple different places (i.e., it has the opposite of locality of behavior). But those are just my opinions and experiences! I know many people love Java, and it is a versatile and powerful language.
- gf000 10mo agoThat's really funny that you complain about complexity and then use Go which is a significantly more verbose language...
- pjmlp 10mo agoThe irony is that the same bunch of folks will complain about array languages.
- gf000 10mo ago