5 ms·
I've seen Java described as made for companies to be able to rotate out mediocre programmers as efficiently as possible without letting them mess things up easi
by jimmaswell 1y ago
I've seen Java described as made for companies to be able to rotate out mediocre programmers as efficiently as possible without letting them mess things up easily, and it makes a lot of sense from that perspective. Barebones semantics to the point of being Spartan (can't even define your own operator overloads), easy to take another class and copy it with small modifications but not mess it up for anyone else (inheritance)..
Then there's C# which most anyone who's enthusiastic about software dev will find far nicer to work with, but it's probably harder for bargain basement offshore sweatshops to bang their head against.
- nradov 1y agoThe lack of operator overloading is a bit annoying but in practice seldom a real problem. An operator is just a funny looking method. So what. There are worse fundamental problems in Java. For example the lack of a proper numeric tower. Or the need to rely on annotations to indicate something as basic as nullabilty.
- saagarjha 1y agoIt’s a massive annoyance when working with any sort of numeric code. Or custom collections. Or whatever else the standard library enjoys that nobody else gets to use.
- ivan_gammel 1y agoI remember the times on one of professional forums, where there was lots of questions about architecture in C# sections and almost none in Java section. Abundance of tools creates abundance of possibilities to get confused about what’s right. In Java many design decisions converged to some dominant design long time ago, so you no longer think about it and focus on business. It’s sometimes as bad as getter verbosity (thankfully record style is getting traction), but in most cases it’s just fine.
- atomicnumber3 1y agoI really don't think this stance aged well, even if it was closer to true way back when. IMO the spartan language is now Go, and Java has ended up the boring open source workhorse. The jvm is very performant compared to many stacks these days (python Ruby node) while still having a very compelling concurrent programming story, and has a lot of nice language feature things ever since 8 and onwards. Lambdas and streams are the big 8's, but I think virtual threads growing up and even new things like scoped variables are really compelling reasons to build a new thing in java right now.
- knorker 1y ago> Java has ended up the boring open source workhorse. This statement surprised me. I can't even remember last time I ran any opensource Java.
- dgoldstein0 1y agoOff the top of my head? Bazel is the Java program I use the most. Hadoop/hive and similar stuff also heavily Java but I'm not sure how much that's in use anymore
- knorker 1y agoI'm not saying there's no Java in open source. And I'm aware of the projects you mention. I don't run them though. And they definitely don't qualify as "the boring open source workhorse". There are a couple of Java projects, and even one or two kind of successful ones. But Java in open source is very rare, not the boring workhorse. If I worked on a project that used Bazel, then sure, I'd use Bazel every day. But which is "the boring workhorse" of open source, if I gave you the option of Java, Make, Linux, gcc, llvm, .deb, would Java really be "the" one? Sure, maybe you could exclude most of those as not being "boring", like llvm. But "make" wins by any measure. And of course, it's almost by definition hard to think about the boring workhorse, because the nature of it is that you don't think about it. Checking now, the only reason I can find java even being installed on my dev machines is for Arduino IDE and my Android development environment. Pretty niche stuff, in the open source space.
- ivan_gammel 1y agoMost Java applications nowadays are based 100% on open source stack with hundreds of libraries and frameworks and Java dominates enterprise space, so it is a huge open source workhorse, just more obscure than Linux, gcc etc.
- knorker 1y agoOk, we clearly have an extremely different definition of the word "the" workhorse of open source. It doesn't mean "more than zero projects are Java based". Nor does it mean "most (opensource?) Java applications are based on open source". That latter is borderline circular, only Oracle legal shenanigans makes it not circular. > and Java dominates enterprise space I said nothing about enterprise. Clearly Java is HUGE in enterprise. > so it is a huge open source workhorse That sentence took a strange turn. Enterprise, and then back to open source? > just more obscure than Linux, gcc etc. Obscure? I'd expect Java to be about as strong a brand as Linux. Among developers in general I'd expect gcc to be orders of magnitude more obscure. There's no programmer out there who has not heard of Java, but many have never heard of gcc.
- SkiFire13 1y ago> easy to take another class and copy it with small modifications but not mess it up for anyone else (inheritance) That sounds like a recipe for disaster though, as it generally makes code much harder to read.
- dgoldstein0 1y agoAgree, inheritance tends to be overused when programmers try to get too clever. The flatter the class hierarchy the better