zlacker

[parent] [thread] 149 comments
1. ok_dad+(OP)[view] [source] 2025-12-02 22:26:07
Yea, they just posted this a few days ago:

https://www.anthropic.com/engineering/advanced-tool-use

They discussed how running generated code is better for context management in many cases. The AI can generate code to retrieve, process, and filter the data it needs rather than doing it in-context, thus reducing context needs. Furthermore, if you can run the code right next to the server where the data is, it's all that much faster.

I see Bun like a Skynet: if it can run anywhere, the AI can run anywhere.

replies(3): >>yellow+p2 >>cyanyd+ds >>Verifi+sF
2. yellow+p2[view] [source] 2025-12-02 22:39:54
>>ok_dad+(OP)
Java can run anywhere too
replies(10): >>throwa+U2 >>wiseow+m3 >>827a+Ta >>wrboyc+7h >>mythz+gw >>ok_dad+SA >>Schnit+qH >>wiz21c+fT >>VMG+es1 >>Sheeny+qG4
◧◩
3. throwa+U2[view] [source] [discussion] 2025-12-02 22:44:24
>>yellow+p2
run code anywhere hamstrung by 90s syntax and hidden code indirections
replies(1): >>ground+p5
◧◩
4. wiseow+m3[view] [source] [discussion] 2025-12-02 22:47:31
>>yellow+p2
Not in the browser, and no – webassembly doesn't count, otherwise you can say the same about Go and others.
replies(5): >>amingi+F3 >>creata+r4 >>fishmi+k9 >>techsc+u9 >>kreijs+gi
◧◩◪
5. amingi+F3[view] [source] [discussion] 2025-12-02 22:49:56
>>wiseow+m3
Why doesn’t wasm count?
replies(1): >>progra+J7
◧◩◪
6. creata+r4[view] [source] [discussion] 2025-12-02 22:55:20
>>wiseow+m3
Wasm does count, and you can say the same about Go and others.
replies(2): >>Sammi+Bc >>jazzyp+Ll
◧◩◪
7. ground+p5[view] [source] [discussion] 2025-12-02 23:01:33
>>throwa+U2
Haven’t checked in on Java in a while?
replies(3): >>ozim+Fc >>throwa+Ks >>auxili+VH
◧◩◪◨
8. progra+J7[view] [source] [discussion] 2025-12-02 23:18:12
>>amingi+F3
Compile step makes things more complicated.
replies(1): >>kevin_+aa
◧◩◪
9. fishmi+k9[view] [source] [discussion] 2025-12-02 23:31:31
>>wiseow+m3
May I ask, what is this obsession with targeting the browser? I've also noticed a hatred of k8s here, and while I truly understand it, I'd take the complication of managing infrastructure over frontend fads any day.
replies(1): >>Master+Ef
◧◩◪
10. techsc+u9[view] [source] [discussion] 2025-12-02 23:31:54
>>wiseow+m3
I remember a time ...
◧◩◪◨⬒
11. kevin_+aa[view] [source] [discussion] 2025-12-02 23:38:15
>>progra+J7
As opposed to minimized JS.
replies(3): >>Sammi+fc >>mcpeep+nc >>wiseow+SV
◧◩
12. 827a+Ta[view] [source] [discussion] 2025-12-02 23:42:01
>>yellow+p2
Java is not for sale.
replies(1): >>Zambyt+0e
◧◩◪◨⬒⬓
13. Sammi+fc[view] [source] [discussion] 2025-12-02 23:52:36
>>kevin_+aa
Same problem, different orders of magnitude.
◧◩◪◨⬒⬓
14. mcpeep+nc[view] [source] [discussion] 2025-12-02 23:53:15
>>kevin_+aa
why would the tool minify the script it generated?
◧◩◪◨
15. Sammi+Bc[view] [source] [discussion] 2025-12-02 23:54:41
>>creata+r4
Js just runs as is. Atwood's Law and all that.
◧◩◪◨
16. ozim+Fc[view] [source] [discussion] 2025-12-02 23:55:12
>>ground+p5
From what I gather everyone is still stuck on Java 8 so no need to check?
replies(4): >>foo4u+eg >>vips7L+qp >>throwa+9r >>gf000+Ch1
◧◩◪
17. Zambyt+0e[view] [source] [discussion] 2025-12-03 00:06:13
>>827a+Ta
Java can be depended on without buying anything.
replies(2): >>bossyT+He >>SergeA+Cf
◧◩◪◨
18. bossyT+He[view] [source] [discussion] 2025-12-03 00:12:26
>>Zambyt+0e
Java's price is your time which you will need tons of as Java is highly verbose. The ultimate enterprise language
replies(2): >>spruce+Pf >>sfn42+4Z
◧◩◪◨
19. SergeA+Cf[view] [source] [discussion] 2025-12-03 00:19:31
>>Zambyt+0e
Oracle lawyers want you to think so.
replies(2): >>throwa+Yq >>gf000+Xg1
◧◩◪◨
20. Master+Ef[view] [source] [discussion] 2025-12-03 00:19:55
>>fishmi+k9
HN has a hatred of K8s? That’s new to me
replies(2): >>fishmi+Bi >>smt88+KA
◧◩◪◨⬒
21. spruce+Pf[view] [source] [discussion] 2025-12-03 00:21:55
>>bossyT+He
try java 25, and update your priors :)
replies(3): >>temp24+Tg >>ahoka+o11 >>bossyT+ek1
◧◩◪◨⬒
22. foo4u+eg[view] [source] [discussion] 2025-12-03 00:27:17
>>ozim+Fc
This 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.
◧◩◪◨⬒⬓
23. temp24+Tg[view] [source] [discussion] 2025-12-03 00:33:12
>>spruce+Pf
No amount of updates will wash away the stink of Oracle from Java.
replies(2): >>throwa+0r >>belfth+AP
◧◩
24. wrboyc+7h[view] [source] [discussion] 2025-12-03 00:35:21
>>yellow+p2
It’s relevant enough that I feel I can roll out this bash.org classic…

<Alanna> Saying that Java is nice because it works on all OS's is like saying that anal sex is nice because it works on all genders

EDIT: someone has (much to my joy) made an archive of bash.org so here is a link[1], but I must say I’m quite jealous of today’s potential 1/10,000[2] who will discover bash.org from my comment!

[1] https://bash-org-archive.com/?338364

[2] https://xkcd.com/1053

replies(6): >>yellow+Gh >>orlies+Qh >>centur+Ej >>the__a+bp >>anamex+kq >>post_b+u31
◧◩◪
25. yellow+Gh[view] [source] [discussion] 2025-12-03 00:41:57
>>wrboyc+7h
That's hilarious. My comment is mostly a joke, but also trying to say that "runs everywhere" isn't that impressive anymore.
replies(1): >>throwu+vt
◧◩◪
26. orlies+Qh[view] [source] [discussion] 2025-12-03 00:42:57
>>wrboyc+7h
wait - how do you search the quotes??
replies(2): >>wrboyc+xi >>mh-+Zs2
◧◩◪
27. kreijs+gi[view] [source] [discussion] 2025-12-03 00:45:26
>>wiseow+m3
java did run in the browser once.... it was embedded directly on the browser there was also nsapi

you could also run java with js if you are brave enough https://kreijstal.github.io/java-tools/

replies(1): >>TeaVMF+Rv
◧◩◪◨
28. wrboyc+xi[view] [source] [discussion] 2025-12-03 00:47:07
>>orlies+Qh
I don’t think there is a search function, I got the exact wording from a web search (I think “bash Java anal”, arguably a dangerous search!) and then after submitting I wondered if there is an archive of the quotes.
◧◩◪◨⬒
29. fishmi+Bi[view] [source] [discussion] 2025-12-03 00:48:11
>>Master+Ef
This is a site for startups. They have no business running k8s, in fact, many of the lessons learned get passed on from graybeards to the younger generation along those lines. Perhaps I'm wrong! I'd love to talk shop somewhere.
◧◩◪
30. centur+Ej[view] [source] [discussion] 2025-12-03 00:58:14
>>wrboyc+7h
Not discovered from scratch, but was a big fan when it was alive and kicking. Went there from time to time to get some mood boosters. So was very sad when found that it's gone (original one). Thanks a lot for sharing that bash-org-archive.com exists, what a great fun going down this memory lane.
replies(1): >>wrboyc+al
◧◩◪◨
31. wrboyc+al[view] [source] [discussion] 2025-12-03 01:14:30
>>centur+Ej
I’ve been browsing the archive since I left that comment, they really were the good old days weren’t they. IRC was my introduction to geekdom, and I don’t think it would be unreasonable to say it shaped my life. Here I am 30-ish years later, an old man yelling at clouds — and I wouldn’t change much!

If anyone ever requested/used an eggdrop(?) bot from #farmbots or #wildbots on quakenet then thanks to you too; that was certainly one of the next steps down the path I took. A (probably very injectable) PHP blog and a bunch of TCL scripts powering bots, man I wish I could review that code now.

◧◩◪◨
32. jazzyp+Ll[view] [source] [discussion] 2025-12-03 01:20:08
>>creata+r4
Sure, they run, but they can't touch the DOM or do much that's very interesting without JavaScript.
◧◩◪
33. the__a+bp[view] [source] [discussion] 2025-12-03 01:49:15
>>wrboyc+7h
I found another appropriate XKCD: https://xkcd.com/1682/
replies(1): >>matt-a+aBe
◧◩◪◨⬒
34. vips7L+qp[view] [source] [discussion] 2025-12-03 01:51:05
>>ozim+Fc
No, everyone isn’t. You really should check.
◧◩◪
35. anamex+kq[view] [source] [discussion] 2025-12-03 02:00:14
>>wrboyc+7h
Perhaps my biggest claim to fame is being #11 on the bash.org top 100.
replies(1): >>komali+XA
◧◩◪◨⬒
36. throwa+Yq[view] [source] [discussion] 2025-12-03 02:05:36
>>SergeA+Cf
Ahem, Temurin/OpenJDK disagree
◧◩◪◨⬒⬓⬔
37. throwa+0r[view] [source] [discussion] 2025-12-03 02:05:53
>>temp24+Tg
Again, Temurin/OpenJDK disagree
◧◩◪◨⬒
38. throwa+9r[view] [source] [discussion] 2025-12-03 02:07:01
>>ozim+Fc
Where do you gather this from? We are a startup, on Java and on 25.
replies(1): >>pylotl+Y01
39. cyanyd+ds[view] [source] 2025-12-03 02:20:20
>>ok_dad+(OP)
Jesus wept, for the nerds joyfully want skyney
◧◩◪◨
40. throwa+Ks[view] [source] [discussion] 2025-12-03 02:26:06
>>ground+p5
i haven't. do people still use the "class" keyword?
replies(1): >>buzzer+2B
◧◩◪◨
41. throwu+vt[view] [source] [discussion] 2025-12-03 02:35:20
>>yellow+Gh
Yeah everyone proclaims to IANAL nowadays.
◧◩◪◨
42. TeaVMF+Rv[view] [source] [discussion] 2025-12-03 02:55:04
>>kreijs+gi
Java runs in the browser currently, after a transpilation step (same as .ts):

https://teavm.org/

replies(1): >>gf000+ph1
◧◩
43. mythz+gw[view] [source] [discussion] 2025-12-03 02:58:38
>>yellow+p2
AI tools value simplicity, fast bootstrapping and iterations, this rules out the JVM which has the worst build system and package repositories I've ever had the displeasure of needing to use. Check in gradle binaries in 2025? Having to wait days for packages to sync? Windows/Linux gradle wrappers for every project? Broken builds and churn after every major upgrade. It's broken beyond repair.

By contrast `bun install` is about as good as it gets.

replies(4): >>speed_+7B >>pjmlp+wT >>sfn42+eY >>DarkNo+X51
◧◩◪◨⬒
44. smt88+KA[view] [source] [discussion] 2025-12-03 03:44:32
>>Master+Ef
K8s is used in many situations it shouldn't be, and a lot of HNers (including me) are bitter about having to deal with the resulting messes
◧◩
45. ok_dad+SA[view] [source] [discussion] 2025-12-03 03:45:33
>>yellow+p2
I ain’t hot a horse in this race I just put 2 and 2 together to get 4. I’m sure Java is fine but they didn’t buy Java.
◧◩◪◨
46. komali+XA[view] [source] [discussion] 2025-12-03 03:46:26
>>anamex+kq
Hah, found it: https://bash-org-archive.com/?207373

So how did it work back in the day, people would just submit text and it would get upvoted? I always assumed like half of them were just made up.

replies(1): >>anamex+VC
◧◩◪◨⬒
47. buzzer+2B[view] [source] [discussion] 2025-12-03 03:47:30
>>throwa+Ks
Is that the issue people have with Java?
◧◩◪
48. speed_+7B[view] [source] [discussion] 2025-12-03 03:47:59
>>mythz+gw
By using Gradle you certainly didn't make yourself a favor.
replies(1): >>Javier+AX
◧◩◪◨⬒
49. anamex+VC[view] [source] [discussion] 2025-12-03 04:09:16
>>komali+XA
Yep, exactly that. I recall that the voting was interesting because it was just ranked on absolute number of votes, no time decay or anything, so it would take quite some time for a new contender to accumulate votes to "compete" on the leaderboard. I don't remember if there were even accounts or if anyone could just vote repeatedly, modulo some IP or cookie-based limits.

As far provenance, I assume a lot of them were made up too, but this one was real.

50. Verifi+sF[view] [source] 2025-12-03 04:39:21
>>ok_dad+(OP)
What do you mean by "context" here?
replies(1): >>manbas+nG
◧◩
51. manbas+nG[view] [source] [discussion] 2025-12-03 04:51:36
>>Verifi+sF
Under "Programmatic Tool Calling"

> The challenge

> Traditional tool calling creates two fundamental problems as workflows become more complex:

> Context pollution from intermediate results: When Claude analyzes a 10MB log file for error patterns, the entire file enters its context window, even though Claude only needs a summary of error frequencies. When fetching customer data across multiple tables, every record accumulates in context regardless of relevance. These intermediate results consume massive token budgets and can push important information out of the context window entirely.

> Inference overhead and manual synthesis: Each tool call requires a full model inference pass. After receiving results, Claude must "eyeball" the data to extract relevant information, reason about how pieces fit together, and decide what to do next—all through natural language processing. A five tool workflow means five inference passes plus Claude parsing each result, comparing values, and synthesizing conclusions. This is both slow and error-prone.

Basically, instead of Claude trying to, e.g., process data by using inference from its own context, it would offload to some program it specifically writes. Up until today we've seen Claude running user-written programs. This new paradigm allows it the freedom to create a program it finds suitable in order to perform the task, and then run it (within confines of a sandbox) and retrieve the result it needs.

replies(2): >>Verifi+XH >>ramoz+8y1
◧◩
52. Schnit+qH[view] [source] [discussion] 2025-12-03 05:01:46
>>yellow+p2
Anywhere where the correct Java version is installed correctly, important caveat
replies(2): >>jimbob+pK >>gf000+Og1
◧◩◪◨
53. auxili+VH[view] [source] [discussion] 2025-12-03 05:09:09
>>ground+p5
I tried to check in on Java recently but got a NullPointerException when using the AbstractSingletonProxyFactoryBean !
replies(2): >>Orange+jY >>gf000+8i1
◧◩◪
54. Verifi+XH[view] [source] [discussion] 2025-12-03 05:09:14
>>manbas+nG
Thanks for the reply.
◧◩◪
55. jimbob+pK[view] [source] [discussion] 2025-12-03 05:43:30
>>Schnit+qH
Java’s cardinal sin was not owning the OS like Microsoft’s C# to force end-users to update the framework. Oracle really didn’t understand what they were sitting on with their Ubuntu competitor Solaris.
replies(1): >>sander+PN
◧◩◪◨
56. sander+PN[view] [source] [discussion] 2025-12-03 06:30:48
>>jimbob+pK
This has no longer been the case for C# for 10 years since the release of .NET Core and (now) .NET. The runtime is no longer bundled with the OS.

This is only true for older .NET Framework applications.

replies(1): >>Topfi+OT
◧◩◪◨⬒⬓⬔
57. belfth+AP[view] [source] [discussion] 2025-12-03 06:52:44
>>temp24+Tg
This is hn, where unless something is written in rust or zig usually, people will hate on it. They would rather pump a cli tool than any software of sizable scale.
replies(1): >>antonv+ve8
◧◩
58. wiz21c+fT[view] [source] [discussion] 2025-12-03 07:25:18
>>yellow+p2
Java is owned by Oracle. And you sure don't want to do business with that company. There's a reason why postgresql is slowly eating their cake.
replies(1): >>Orange+bW
◧◩◪
59. pjmlp+wT[view] [source] [discussion] 2025-12-03 07:27:27
>>mythz+gw
Gradle is something that only Android devs should be using, and because of Google imposes its use. Had not been for Google and Android Gradle plugin, almost no one would care.

Please give me Java tools over C, C++, JavaScript or Python ones, any day of the week.

Only .NET and Rust compare equally in quality of DX.

AI tools value simplicity?!?

Check in the Python dependency management chaos, what it is the proposal this month, from what AI startup doing Python tools in Rust?

◧◩◪◨⬒
60. Topfi+OT[view] [source] [discussion] 2025-12-03 07:30:28
>>sander+PN
Isn’t it post installation still updated via Windows Update as they said (force end-users to update the framework)?
replies(1): >>nly+p31
◧◩◪◨⬒⬓
61. wiseow+SV[view] [source] [discussion] 2025-12-03 07:50:06
>>kevin_+aa
You don’t need to minimize JS to be able to run it.
◧◩◪
62. Orange+bW[view] [source] [discussion] 2025-12-03 07:52:25
>>wiz21c+fT
This is FUD. Java has many open source implementations and nobody needs to deal with Oracle.
replies(2): >>jve+qX >>vidarh+2Z
◧◩◪◨
63. jve+qX[view] [source] [discussion] 2025-12-03 08:03:26
>>Orange+bW
Well except Google that got sued for US$8.8 Billion because they decided to use specific API signatures but provide their own implementation...?!
replies(3): >>Hedepi+EY >>Orange+VY >>krzyk+W62
◧◩◪◨
64. Javier+AX[view] [source] [discussion] 2025-12-03 08:05:10
>>speed_+7B
I am unsure why people feel the need to say this about Gradle. If you aren't doing anything fancy, the most you will touch is the repositories and dependencies block of your build script, perhaps add publishing or shadow plugins and configure them accordingly but that has never been simpler than it is now. Gradle breaks when you feel the need to unnecessarily update things like the wrapper version or plugins without considering the implications that has. Wrapper is bundled in so you don't have to try and make a build script work with whatever version you might have installed on your system if you have any, toolchain resolution makes it so you don't even need to install an appropriate JDK version as it does that for you.

If the build script being a DSL is the issue, they're even experimenting around declarative gradle scripts [0], which is going to be nice for people used to something like maven.

0: https://declarative.gradle.org/

replies(2): >>DarkNo+a61 >>speed_+kN1
◧◩◪
65. sfn42+eY[view] [source] [discussion] 2025-12-03 08:10:02
>>mythz+gw
It's just too bad bun is based on literally the worst programming language that's in actual use.
replies(1): >>mythz+N71
◧◩◪◨⬒
66. Orange+jY[view] [source] [discussion] 2025-12-03 08:11:22
>>auxili+VH
I'll never understand people making fun of verbosity. So you really prefer short, ambiguous, opaque and unpronounceable abbreviations? Really?!
replies(2): >>auxili+c21 >>pjmlp+b7c
◧◩◪◨⬒
67. Hedepi+EY[view] [source] [discussion] 2025-12-03 08:13:15
>>jve+qX
... and Oracle lost
replies(1): >>cwillu+Rm1
◧◩◪◨⬒
68. Orange+VY[view] [source] [discussion] 2025-12-03 08:15:07
>>jve+qX
Come on, that's a completely different story, Google made their own independent SDK using but incompatible with Java. Nobody's arguing you should do that.

Plus last time I checked Oracle lost that lawsuit.

◧◩◪◨
69. vidarh+2Z[view] [source] [discussion] 2025-12-03 08:15:55
>>Orange+bW
Even if we postulate that he fear is unwarranted and irrational, the fear is still real, based on Oracles history of lawsuits, and so the explanation still holds.
replies(3): >>gf000+Eg1 >>thesur+I42 >>krzyk+i62
◧◩◪◨⬒
70. sfn42+4Z[view] [source] [discussion] 2025-12-03 08:16:17
>>bossyT+He
This is such a crappy point. People say it's better now but even in java 8 it's just BS. Oh boo hoo I have to write a few extra words here and there. Woe is me. The IDE will autogenerate the boilerplate for you, you don't even have to write it yourself. And once it's there it's actually useful, there's a reason it exists.
replies(1): >>nwelli+n22
◧◩◪◨⬒⬓
71. pylotl+Y01[view] [source] [discussion] 2025-12-03 08:27:29
>>throwa+9r
Why didn't you choose something more modern/sensible. go/kotlin/anything else on the planet?
replies(3): >>gf000+Zh1 >>throwa+P02 >>krzyk+e82
◧◩◪◨⬒⬓
72. ahoka+o11[view] [source] [discussion] 2025-12-03 08:29:34
>>spruce+Pf
Lipstick on a pig.
◧◩◪◨⬒⬓
73. auxili+c21[view] [source] [discussion] 2025-12-03 08:34:07
>>Orange+jY
For 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.

replies(1): >>gf000+ei1
◧◩◪◨⬒⬓
74. nly+p31[view] [source] [discussion] 2025-12-03 08:41:01
>>Topfi+OT
Only patches, it doesn't automatically install new major versions
◧◩◪
75. post_b+u31[view] [source] [discussion] 2025-12-03 08:41:09
>>wrboyc+7h
As one of the lucky 1/10000, holy shit that was amazing. Thank you.

To everyone else: I acknowlege that this post is not adding value but if you were one of the lucky 1/10000 you would understand that I have no choice.

◧◩◪
76. DarkNo+X51[view] [source] [discussion] 2025-12-03 08:53:37
>>mythz+gw
Apples and oranges. Maven is leagues beyond npm. Screw Gradle.

How many mass security incidents have there been with npm just the last few weeks?

replies(1): >>wratho+oM1
◧◩◪◨⬒
77. DarkNo+a61[view] [source] [discussion] 2025-12-03 08:54:35
>>Javier+AX
And yet. None of these issues exist in Maven to begin with.
replies(1): >>gf000+Yv1
◧◩◪◨
78. mythz+N71[view] [source] [discussion] 2025-12-03 09:08:20
>>sfn42+eY
TypeScript's one of the best, and bun runs it natively.
replies(1): >>sfn42+D81
◧◩◪◨⬒
79. sfn42+D81[view] [source] [discussion] 2025-12-03 09:14:47
>>mythz+N71
Typescript is a band aid on the gaping gushing wound that is JavaScript. It attempts to fix one problem JS has and it doesn't really succeed.
replies(1): >>mythz+kb1
◧◩◪◨⬒⬓
80. mythz+kb1[view] [source] [discussion] 2025-12-03 09:34:50
>>sfn42+D81
Sounds like cope. Great Type System, Language Server, IDE Integration, compiler feedback, tooling ecosystem, DX Hot Reload - all things that made it the most used programming language on GitHub.
replies(1): >>sfn42+Ng1
◧◩◪◨⬒
81. gf000+Eg1[view] [source] [discussion] 2025-12-03 10:12:16
>>vidarh+2Z
It explains nothing.

Java is possibly the safest bet on the future, it's open source both in spec and in the most common implementation (OpenJDK), and is so widely used that there are multiple FAANG companies critically dependent on Java working that alone could continue the development of the platform were anything happen.

Besides, Oracle has been a surprisingly good steward of the language.

replies(1): >>cwillu+Mm1
◧◩◪◨⬒⬓⬔
82. sfn42+Ng1[view] [source] [discussion] 2025-12-03 10:13:36
>>mythz+kb1
Overcomplicated type system. Language server seems redundant to mention, everything has a language server. Everything has ide integration. Everything has decent compiler feedback. Everything has hot reloading.
replies(1): >>mythz+Wi1
◧◩◪
83. gf000+Og1[view] [source] [discussion] 2025-12-03 10:13:50
>>Schnit+qH
You can just supply a minimized runtime for your program, which is the primary way to ship Java programs for quite some time now.
replies(1): >>nullpo+ku4
◧◩◪◨⬒
84. gf000+Xg1[view] [source] [discussion] 2025-12-03 10:15:21
>>SergeA+Cf
You mean the company that 100% open-sourced Java and made the open-source (same license as Linux) OpenJDK the reference implementation?
◧◩◪◨⬒
85. gf000+ph1[view] [source] [discussion] 2025-12-03 10:18:54
>>TeaVMF+Rv
Also CheerpJ (with support for Swing UIs even), Closure compiler, and now GraalVM also has an experimental WasmGC target.
◧◩◪◨⬒
86. gf000+Ch1[view] [source] [discussion] 2025-12-03 10:20:16
>>ozim+Fc
Even 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.

replies(1): >>the_gi+sj1
◧◩◪◨⬒⬓⬔
87. gf000+Zh1[view] [source] [discussion] 2025-12-03 10:23:34
>>pylotl+Y01
Go 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.

replies(2): >>codr7+vZ1 >>zeroc8+ay4
◧◩◪◨⬒
88. gf000+8i1[view] [source] [discussion] 2025-12-03 10:24:15
>>auxili+VH
R/ProgrammerHumor quality comment here.
◧◩◪◨⬒⬓⬔
89. gf000+ei1[view] [source] [discussion] 2025-12-03 10:24:53
>>auxili+c21
That's really funny that you complain about complexity and then use Go which is a significantly more verbose language...
◧◩◪◨⬒⬓⬔⧯
90. mythz+Wi1[view] [source] [discussion] 2025-12-03 10:29:47
>>sfn42+Ng1
yes some languages have them, no they're not as good.
replies(1): >>BobbyJ+yV2
◧◩◪◨⬒⬓
91. the_gi+sj1[view] [source] [discussion] 2025-12-03 10:33:45
>>gf000+Ch1
Not even latest Java is less verbose than Go.
replies(2): >>gf000+nk1 >>vright+gc5
◧◩◪◨⬒⬓
92. bossyT+ek1[view] [source] [discussion] 2025-12-03 10:39:51
>>spruce+Pf
Can't exactly write Java 25 without updating your legacy application, can you? And it tends to be the oldest applications that are the hardest to update for some painful reason. Would be nice if we all could live on the bleeding edge all the time
replies(1): >>krzyk+u72
◧◩◪◨⬒⬓⬔
93. gf000+nk1[view] [source] [discussion] 2025-12-03 10:40:35
>>the_gi+sj1
Are we talking about the language that has a couple extra lines after every statement, disguising as error handling?
replies(2): >>the_gi+6A1 >>BobbyJ+7W2
◧◩◪◨⬒⬓
94. cwillu+Mm1[view] [source] [discussion] 2025-12-03 11:04:11
>>gf000+Eg1
https://en.wikipedia.org/wiki/Google_LLC_v._Oracle_America,_.... is not what I would call “good stewardship”
replies(1): >>gf000+YG1
◧◩◪◨⬒⬓
95. cwillu+Rm1[view] [source] [discussion] 2025-12-03 11:04:48
>>Hedepi+EY
And the lesson is not to trust Oracle.
◧◩
96. VMG+es1[view] [source] [discussion] 2025-12-03 11:45:00
>>yellow+p2
and JavaScript even anywherer!
◧◩◪◨⬒⬓
97. gf000+Yv1[view] [source] [discussion] 2025-12-03 12:14:36
>>DarkNo+a61
At the same time, only Maven requires doing a clean install from time to time as it fails to properly track what needs updating.

Gradle is better from this perspective, and hopefully with its "kotlinization" we will see some stability, which was the biggest issue it had before.

replies(1): >>DarkNo+9G1
◧◩◪
98. ramoz+8y1[view] [source] [discussion] 2025-12-03 12:31:55
>>manbas+nG
Claude Code moved to partial file reads over the summer.

Super premature optimization. It’ll hallucinate what lines it needs to read, it’ll continuously miss critical context in favor of trimming tokens.

Luckily we can now hook and force the agent to read full files at least once.

replies(1): >>vright+Rc5
◧◩◪◨⬒⬓⬔⧯
99. the_gi+6A1[view] [source] [discussion] 2025-12-03 12:48:14
>>gf000+nk1
go'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.

replies(3): >>gf000+hG1 >>lenkit+TB2 >>vips7L+y84
◧◩◪◨⬒⬓⬔
100. DarkNo+9G1[view] [source] [discussion] 2025-12-03 13:29:20
>>gf000+Yv1
I personally never had to do a clean install, and thought this is being perpetuted due to a mixture of habit and paranoia.

In any case, what are the proposed benefits of the "kotilization"? I tried it about a year ago but realized that it's just a syntax level-wrapper around the same old DSL underneath. In the end, I still viewed it as an ill-described DSL with a massive learning curve outside of happy-paths.

◧◩◪◨⬒⬓⬔⧯▣
101. gf000+hG1[view] [source] [discussion] 2025-12-03 13:30:09
>>the_gi+6A1
Feel 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?

replies(2): >>ground+d62 >>the_gi+6y2
◧◩◪◨⬒⬓⬔
102. gf000+YG1[view] [source] [discussion] 2025-12-03 13:34:20
>>cwillu+Mm1
What relevance does it have at the topic at hand? Can you give an example of what could happen that would make sense to worry about?
replies(1): >>TimThe+MH1
◧◩◪◨⬒⬓⬔⧯
103. TimThe+MH1[view] [source] [discussion] 2025-12-03 13:39:33
>>gf000+YG1
It's a lawsuit by Oracle against a FAANG company that relates in some (even tangential) way to the FAANG company's use of Java.

That's all that's needed to create a sense of caution for would-be adopters.

replies(1): >>gf000+1M1
◧◩◪◨⬒⬓⬔⧯▣
104. gf000+1M1[view] [source] [discussion] 2025-12-03 14:07:08
>>TimThe+MH1
Running Java is not remotely the same as copying the API interface of the whole standard library and providing an alternative implementation, just to avoid paying Sun, who specifically intended on getting money from mobile usage.

Oracle lost the lawsuit and I do agree with the decision in that APIs should be freely replicated, but let's not pretend that Google was some saint good guy here fighting the good fight, they were just cheap and aggressively capitalistic.

replies(1): >>srouss+V02
◧◩◪◨
105. wratho+oM1[view] [source] [discussion] 2025-12-03 14:08:55
>>DarkNo+X51
Maven is excellent! Once you understand it, you can work with almost any Maven project without needing to learn the specifics. I’d take Maven or Cargo any day over anything in the JavaScript or Python ecosystem.
◧◩◪◨⬒
106. speed_+kN1[view] [source] [discussion] 2025-12-03 14:14:17
>>Javier+AX
So now there will be Kotlin DSL, Groovy DSL and declarative DSL, spread out over up to five files in the project root. Gradle is like C++, trying to climb out of it's complexity hole by digging deeper every new version.

The problem with Gradle is that it never had a clear philosophy to begin with. It's trying to be everything to everybody, changes best practices every year and has enough features that the project at hand could entirely be built out of Gradle scripts itself.

And oh, it still requires an update to run everytime a new JDK is released even though the SDK is the most backward compatible thing ever written.

◧◩◪◨⬒⬓⬔⧯
107. codr7+vZ1[view] [source] [discussion] 2025-12-03 15:17:00
>>gf000+Zh1
Except for Kotlin, which is a much nicer language to deal with.
replies(2): >>throwa+412 >>lenkit+fB2
◧◩◪◨⬒⬓⬔
108. throwa+P02[view] [source] [discussion] 2025-12-03 15:24:31
>>pylotl+Y01
While 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

replies(1): >>BobbyJ+UW2
◧◩◪◨⬒⬓⬔⧯▣▦
109. srouss+V02[view] [source] [discussion] 2025-12-03 15:24:52
>>gf000+1M1
Doesn’t every open source implementation just “copying the API interface of the whole standard library and providing an alternative implementation”?
replies(1): >>lenkit+HA2
◧◩◪◨⬒⬓⬔⧯▣
110. throwa+412[view] [source] [discussion] 2025-12-03 15:25:19
>>codr7+vZ1
Little nicer for sure
◧◩◪◨⬒⬓
111. nwelli+n22[view] [source] [discussion] 2025-12-03 15:31:02
>>sfn42+4Z
Seriously. I don’t get all the over concern over the verbosity. At least in java you can tell what the hell is going on. And the tools…so good. Right now I am in python typescript world. And let me tell you, the productivity and ease of java and c# are sorely missed!
◧◩◪◨⬒
112. thesur+I42[view] [source] [discussion] 2025-12-03 15:43:24
>>vidarh+2Z
Immediately read this as "prostate" and proceeded to spit out my coffee. Carry on
◧◩◪◨⬒⬓⬔⧯▣▦
113. ground+d62[view] [source] [discussion] 2025-12-03 15:50:17
>>gf000+hG1
Why is the quality of discourse in this thread so low?
◧◩◪◨⬒
114. krzyk+i62[view] [source] [discussion] 2025-12-03 15:50:31
>>vidarh+2Z
We could also postulate based on left-pad that npm and javascript in general shouldn't be used.

It has similar bases on facts.

replies(1): >>veidr+Tf2
◧◩◪◨⬒
115. krzyk+W62[view] [source] [discussion] 2025-12-03 15:53:12
>>jve+qX
What Google did was similar what Microsoft did back in the days. Marketing something as Java, but wasn't Java.
replies(1): >>pjmlp+l15
◧◩◪◨⬒⬓⬔
116. krzyk+u72[view] [source] [discussion] 2025-12-03 15:55:22
>>bossyT+ek1
Developers that don't care are to blame.
◧◩◪◨⬒⬓⬔
117. krzyk+e82[view] [source] [discussion] 2025-12-03 15:58:27
>>pylotl+Y01
Kotlin sensible? It plays catchup game with newest JDKs.
◧◩◪◨⬒⬓
118. veidr+Tf2[view] [source] [discussion] 2025-12-03 16:30:54
>>krzyk+i62
"npm and javascript in general shouldn't be used" — stipulated
◧◩◪◨
119. mh-+Zs2[view] [source] [discussion] 2025-12-03 17:27:05
>>orlies+Qh
https://www.google.com/search?q=site%3Abash-org-archive.com+...

seems to work. relies on that individual quote being indexed, and google SERPs feeling like returning full results at the moment, of course. when the latter fails, I've found success with site: queries on Bing (of all places.)

◧◩◪◨⬒⬓⬔⧯▣▦
120. the_gi+6y2[view] [source] [discussion] 2025-12-03 17:50:39
>>gf000+hG1
You started it, where's your evidence?
◧◩◪◨⬒⬓⬔⧯▣▦▧
121. lenkit+HA2[view] [source] [discussion] 2025-12-03 18:02:36
>>srouss+V02
But Google did NOT copy the open source implementation. Google copied parts of the closed-source proprietary Java SE API specifications in order to have compatibility and without taking a license. Kindly remember that Android started using OpenJDK very late - around 2015–2016.

Legally the case was about copying declaring code from a proprietary product, not an open source one.

replies(2): >>cwillu+Qi3 >>vright+Eb5
◧◩◪◨⬒⬓⬔⧯▣
122. lenkit+fB2[view] [source] [discussion] 2025-12-03 18:05:32
>>codr7+vZ1
A nicer language which is much slower to compile compared to Java.
◧◩◪◨⬒⬓⬔⧯▣
123. lenkit+TB2[view] [source] [discussion] 2025-12-03 18:08:36
>>the_gi+6A1
Coding repetitive for-loops for everything and mind-numbing error handling put everywhere makes line count bloat up like crazy. Go is one of the most verbose languages I have seen and I say this as a guy coding in Go in my daily work.

Evidence is easy - think of a problem and ask LLM to generate idiomatic examples (leverage Java streams, with functional decomposition, etc) in Go and Java and with error handling. You will find that more often than not, the Java line count is far smaller.

replies(1): >>the_gi+Ra3
◧◩◪◨⬒⬓⬔⧯▣
124. BobbyJ+yV2[view] [source] [discussion] 2025-12-03 19:45:09
>>mythz+Wi1
Pretty much all major languages have all of those features save hot-reloading, but that only even makes sense for UI written in an interpreted language.
replies(1): >>sfn42+CV4
◧◩◪◨⬒⬓⬔⧯
125. BobbyJ+7W2[view] [source] [discussion] 2025-12-03 19:47:53
>>gf000+nk1
Go only looks like that in toy examples where you have one method calling a bunch of libraries and services. If you are writing actual logic, the error handling is preferable to exceptions IMO, because no project even uses them correctly.

Now if you complain about slice handling, I'm with you.

◧◩◪◨⬒⬓⬔⧯
126. BobbyJ+UW2[view] [source] [discussion] 2025-12-03 19:51:28
>>throwa+P02
Golang 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.

◧◩◪◨⬒⬓⬔⧯▣▦
127. the_gi+Ra3[view] [source] [discussion] 2025-12-03 20:54:32
>>lenkit+TB2
I also code go daily for work, and while what you say is true, it's still far less than what I remember from working with Java, which was constantly wrapping mundane crap in classes and other stuff.
replies(1): >>lenkit+Em4
◧◩◪◨⬒⬓⬔⧯▣▦▧▨
128. cwillu+Qi3[view] [source] [discussion] 2025-12-03 21:36:32
>>lenkit+HA2
And they lost, because it was fair use, which was obvious to most people in the field. The fact that the lawsuit happened in the first place is why I will never trust Oracle.
replies(2): >>TimThe+wN3 >>lenkit+fi4
◧◩◪◨⬒⬓⬔⧯▣▦▧▨◲
129. TimThe+wN3[view] [source] [discussion] 2025-12-04 00:46:01
>>cwillu+Qi3
Yes - this.

The implications of a judgment in favor of Oracle were staggering. Any codebase that is extensively dependent on a proprietary API is legally locked in to using that company's proprietary implementation as long as that company asserts copyright on its API. Anyone who implements the same API to offer a drop-in alternative to the proprietary product is infringing -- even if a someone privately reimplements the API without distributing the reimplementation.

Which immediately implicates WINE (Windows), Mono (.NET), ReactOS (Windows), Darling (macOS/Darwin), GNUStep (Cocoa/OpenStep), Anbox (Android), Ruffle (flash), GNU Octave (MATLAB), Mesa 3D (Direct3D), ZLUDA (CUDA), and DXVK (Direct3D 9/10/11), to name a few of the most popular...

◧◩◪◨⬒⬓⬔⧯▣
130. vips7L+y84[view] [source] [discussion] 2025-12-04 04:04:44
>>the_gi+6A1
I can guarantee you that 9/10 times any similar Go snippet will be more verbose than Java.
◧◩◪◨⬒⬓⬔⧯▣▦▧▨◲
131. lenkit+fi4[view] [source] [discussion] 2025-12-04 06:07:37
>>cwillu+Qi3
It was not all that obvious from a legal point of view. Google vs Oracle was the first US Supreme Court case directly testing whether copying API declarations can violate copyright. It was also decided later in the EU as well in that SAS vs WPL case where the EU Court of Justice finally ruled that software functionality, programming languages, and file formats are not copyrightable.

These famous cases set the legal tone for the entire world actually.

◧◩◪◨⬒⬓⬔⧯▣▦▧
132. lenkit+Em4[view] [source] [discussion] 2025-12-04 06:55:48
>>the_gi+Ra3
Yeah, well you can write "enterprise 10k patterns crap" in any language. Java projects suffered from the craze of those initial years where every "architect" and their grandmother insisted on patterns.

Idiomatic, Modern Java is written quite differently. Today, Go has a lot of arcane, noisy, complex code too. Ex: many, many k8s Go projects.

replies(1): >>ngrill+Hz8
◧◩◪◨
133. nullpo+ku4[view] [source] [discussion] 2025-12-04 08:16:29
>>gf000+Og1
Are you a Java dev by any chance?
replies(1): >>gf000+Io5
◧◩◪◨⬒⬓⬔⧯
134. zeroc8+ay4[view] [source] [discussion] 2025-12-04 08:53:16
>>gf000+Zh1
Java 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.
replies(1): >>throwa+qW5
◧◩
135. Sheeny+qG4[view] [source] [discussion] 2025-12-04 10:02:16
>>yellow+p2
On 3 billion devices
◧◩◪◨⬒⬓⬔⧯▣▦
136. sfn42+CV4[view] [source] [discussion] 2025-12-04 12:10:16
>>BobbyJ+yV2
There's hot reloading in .NET and Java
replies(1): >>BobbyJ+dw8
◧◩◪◨⬒⬓
137. pjmlp+l15[view] [source] [discussion] 2025-12-04 12:52:12
>>krzyk+W62
It incredible how far the "Do not evil" marketing won the hearts of computing nerds, Google only got positive karma for doing with Android exactly what Microsoft did with J++.

To this day Android Java is not fully compatible with Java proper, and Kotlin became Google's version of C#.

◧◩◪◨⬒⬓⬔⧯▣▦▧▨
138. vright+Eb5[view] [source] [discussion] 2025-12-04 14:02:48
>>lenkit+HA2
But they didn't copy code. Because the code was proprietary and they didn't have access to it.

Reimplementing an interface != stealing code.

◧◩◪◨⬒⬓⬔
139. vright+gc5[view] [source] [discussion] 2025-12-04 14:06:24
>>the_gi+sj1
Before go had generics it was pretty common to have multiple implementations of the same thing just for different datatypes.
◧◩◪◨
140. vright+Rc5[view] [source] [discussion] 2025-12-04 14:09:19
>>ramoz+8y1
I've had it happen almost every time I try to give them another shot. It presents a snippet of my code, claims there's a bug due to an unhandled edge case, and completely miss the (literally) very next line that specifically handles the edge-case it mentioned.
◧◩◪◨⬒
141. gf000+Io5[view] [source] [discussion] 2025-12-04 15:14:10
>>nullpo+ku4
I'm a dev. I don't know, I'm using a bunch of different languages, Java being one of them and I find it a very good fit for typical backend requirements.
◧◩◪◨⬒⬓⬔⧯▣
142. throwa+qW5[view] [source] [discussion] 2025-12-04 17:58:40
>>zeroc8+ay4
It 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.

replies(1): >>zeroc8+Z27
◧◩◪◨⬒⬓⬔⧯▣▦
143. zeroc8+Z27[view] [source] [discussion] 2025-12-04 23:43:43
>>throwa+qW5
The layer in Go is much thinner, if I want to learn about a new concept or technology. Of course there is no magic, if you are willing to put the time in. The question is how much time is required.
replies(1): >>gf000+SP7
◧◩◪◨⬒⬓⬔⧯▣▦▧
144. gf000+SP7[view] [source] [discussion] 2025-12-05 08:09:52
>>zeroc8+Z27
The layer is thinner because you can't create abstractions as well in that language.

But that's like saying that a bicycle is better than a car, because the first is simpler to understand. (At the same time, nothing prevents you from assembling a bicycle in Java if that's indeed what you need. But for general long distance travel you are better off starting with a car frame, aren't you?)

◧◩◪◨⬒⬓⬔⧯
145. antonv+ve8[view] [source] [discussion] 2025-12-05 10:36:00
>>belfth+AP
I love Rust. I love Haskell even more. I’m a big fan of Scheme. But anyone who “hates” on Java is just revealing a lack of understanding of what’s important in professional software development.
◧◩◪◨⬒⬓⬔⧯▣▦▧
146. BobbyJ+dw8[view] [source] [discussion] 2025-12-05 12:46:18
>>sfn42+CV4
What is the use case for either of those two languages?
replies(1): >>sfn42+2ic
◧◩◪◨⬒⬓⬔⧯▣▦▧▨
147. ngrill+Hz8[view] [source] [discussion] 2025-12-05 13:06:41
>>lenkit+Em4
What is an example of a modern Java open source codebase, so I can have a look?
◧◩◪◨⬒⬓
148. pjmlp+b7c[view] [source] [discussion] 2025-12-06 16:08:12
>>Orange+jY
The irony is that the same bunch of folks will complain about array languages.
◧◩◪◨⬒⬓⬔⧯▣▦▧▨
149. sfn42+2ic[view] [source] [discussion] 2025-12-06 17:33:54
>>BobbyJ+dw8
Being able to update the code while it's running is useful for all kinds of use cases. Desktop apps, web apis, server side rendered web apps, .net blazor apps, etc.

It's nice to be able to see what your changes do without rebuild and restart.

◧◩◪◨
150. matt-a+aBe[view] [source] [discussion] 2025-12-07 18:38:06
>>the__a+bp
I truly don’t understand that one. Might be the first XKCD that has gone over my head.
[go to top]