[a / b / c / d / e / f / g / gif / h / hr / k / m / o / p / s / t / u / v / vg / vm / vmg / vr / vrpg / vst / w / wg] [i / ic] [r9k / s4s / vip] [cm / hm / lgbt / y] [3 / aco / adv / an / bant / biz / cgl / ck / co / diy / fa / fit / gd / hc / his / int / jp / lit / mlp / mu / n / news / out / po / pol / pw / qst / sci / soc / sp / tg / toy / trv / tv / vp / vt / wsg / wsr / x / xs] [Settings] [Search] [Mobile] [Home]
Board
Settings Mobile Home
/g/ - Technology

Name
Options
Comment
Verification
4chan Pass users can bypass this verification. [Learn More] [Login]
File
  • Please read the Rules and FAQ before posting.
  • You may highlight syntax and preserve whitespace by using [code] tags.

08/21/20New boards added: /vrpg/, /vmg/, /vst/ and /vm/
05/04/17New trial board added: /bant/ - International/Random
10/04/16New board for 4chan Pass users: /vip/ - Very Important Posts
[Hide] [Show All]


Janitor acceptance emails will be sent out over the coming weeks. Make sure to check your spam folder!


[Advertise on 4chan]


File: 454448888.jpg (82 KB, 2048x1280)
82 KB JPG
is the hate justified?
>>
do i update or not?
>>
>>109427918
Yes. Garbage language.
>>
>>109427918
the hate is outdated. all things considered it's probably the best memory-safe language.
it just werks, has a vast and mature ecosystem, is truly cross-platform and has a gui toolkit out-of-the-box.
the committee working on the language is incredibly disciplined and selective.
I'm always tempted to try other languages, but they always happen to be retarded in some major way.
>>
>>109427929
criticizing without offering an alternative is easy.
>>
>>109427924
update what?
>>
>>109428038
This guy is in every post about java saying how hava is cross platform and has cross platform UI. Yeah, if you want the shitties possible UI, it has one. Retarded take.
>>
>>109428506
this guy is in every thread blaming his tool for the shitty UI he makes. jk, you're a nocoder anyway.
pro tip: there are in fact other UI libraries. you don't have to use the one provided out-of-the-box.
it's retarded to shit on an extra that other languages don't even provide at all.

also imagine being outraged about someone being pro-Java in a Java thread.
didn't know that only haters are allowed. lmao.
>>
>>109428038
The heckin' GUI toolkit is literally legacyslop that's not in active development anymore.
Other than that, I don't see how C# is not better. Well okay, C# doesn't have LTS and Java does, which is a big thing.
>>
>people used to hate java because of the jvm
>now "people" ship entie chromium instances with their kuso
>people used to make fun of gentoo for long compile times
>now "people" use rust
times have changed
>>
>>109427918
Why is the logo a coffee cup?
>>
>>109428506
swing is fine, even better than native os look as designers went mad, got rid of scrollbars and made buttons indistinct.
swing buttons still look like buttons.
>>
>>109427918
Right now there is no hate towards Java. The Java vs .NET battles ended a long time ago, many years ago.

I (and my ai agents) write in Java both for work and for personal needs. I think the language and the ecosystem around it are some of the best available today. If you want syntactic sugar, Kotlin is always there, but syntactic sugar has also been added to Java itself over the last few years.

At the same time, almost any corporation or large company likely has tons of backends written in Java. It used to be Spring, and now Quarkus is actively used too.

>>109429213
Swing is a legacy framework. But it just works. Yes, it is old, but it is supported on macOS, Windows, and Linux. Desktop applications are not popular right now, which is why the framework is not heavily maintained. Most of Java is backend. As for comparable frameworks, the only one I know is Qt. Lately a lot of different things have appeared in Rust like Tauri, but usually the GUI is rendered through a WebView rather than custom or native controls. Actually, even Qt does not use native controls, but it draws its own instead of using a webview. Swing is the same.

It is hard for me to say what exactly I miss in Swing. I use it for my personal utilities and sometimes maintain a couple of apps at work.
>>
>>109428506
swing is old but it's ok. you can create good looking UIs with swing too, especially with llms.
>>
As far as I can tell, hating on Java was the thing non-programmers did to masquerade as programmers in programmer circles like online forums. Saying you dislike Java (and not elaborating at all) is like the programming equivalent of those people who pretended to be gamers in gamer circles just for the attention, saying things like "the cake is a lie".

The thing that's most odd about this is that was over a decade ago. And they still repeat it.
So it was a huge red flag then, and now it's an even bigger red flag because it's outdated too.
It's a very likely chance that anyone complaining about Java in 2026 is a first year programmer at most. Way out of touch.
>>
>>109429348
>supported on macOS, Windows, and Linux
>the only one I know is Qt
Uhh, are you a time traveler from 2010 perchance? Electron literally just works on all 3 platforms, and you can make it look however you want a lot easier than with Java. Obviously JS doesn't have the same performance as Java, but you don't need it anyway in most cases. Desktop development is a niche.
Electron is in active development (not legacy), allows you to make UIs without proprietary special snowflake humiliation rituals, and it's good enough.
>>
>>109427918
I can only speak from a DevOps perspective. If you are maintaining legacy Java SE and JEE 1.8.0 applications, yes. It's dog shit.

If you're using 21+ it's a little easier to deal with. I don't know anything beyond trying to deploy applications our developers write (monolithic).
>>
>>109429449
>Electron
>without proprietary special snowflake humiliation rituals
lol
>>
>>109429260
I love statically compiled standalone binaries, but being able to swap the runtime/VM out dynamically is appealing. Running the same program with different configurations and optimizations at the runtime level on demand without needing to rebuild is cool.
But ultimately I'd still rather have static programs with sane build systems. Rebuilding all of your software should be equally as effortless as swapping the VM and it just isn't, but if it was I'd probably prefer that to VM languages.
>>
>>109429516
java can be packaged as a standalone binary without needing the host machine to have java installed.
I don't develop desktop apps, but if I did I would do that.
I'm a Java dev but I don't think users should be required to have a runtime installed. that's annoying.
>>
>>109429449

Yes, I mentioned in my post that modern frameworks require a WebView when it comes to Rust. In the case of Electron, a Chromium engine is needed.

In this sense, Swing and Qt are among the few frameworks that do not require anything browser-based.

Is Electron good? It is hard for me to say. I have used Obsidian, VS Code, Codex (GUI), Discord, Postman... I did not like these interfaces. At the same time, I am a big fan of JetBrains IDEs, and their tools are written in Swing with deep tuning. Maybe I am just biased, but these are just my feelings. I prefer older desktop interfaces, and Qt and Swing are much better suited for this than the modern mix of browser technologies running on the desktop.
>>
>>109429574
This is interesting to hear. I haven't checked on the state of static compilation in a while but last time I tried with something like graalvm it worked well for the things it worked with, but not every library would compile. This was a while ago though so things have likely advanced.
Around the same time, I was doing the same assessment for dotnet.

I want to write in a functional language, but get the benefit of platform support and tooling. So I was considering Kotlin or F# but I didn't want to learn them if I couldn't easily cross-compile + static build them.

I'll have to do research again on the current state of things. Watch me end up using SBCL instead of either.

>I don't think users should be required to have a runtime installed
Strongly agree. Including bundling it since that just sidesteps the problem and worse multiple programs now have multiple copies of the runtime by their side.
>>
File: durgasoft.jpg (1.37 MB, 1920x1080)
1.37 MB JPG
>>
>>109429613
>Kotlin
Fucken meant Clojure.
>>
>>109429574
How is this done? I'm stuck in the shadow realm of JRE/JDK 1.8.0 so it's always required for us to have a copy of Java runtime on the system.
>>
>>109429643
We have two options:

1) jpackage+jlink. We simply bundle a stripped-down version of the JRE into our program. When creating the installation file, you just select the JRE modules that our program needs, and only those are included; anything unused from the JRE is left out. This is a normal JVM, just in a somewhat reduced form, and it can all be packaged into an .exe, .dmg, or .deb file.

2) Graalvm. This is full compilation into a true binary file. The downside is that if your code actively uses reflection, compilation probably will not work. Unfortunately, Graalvm cannot fully handle the Java reflection found in a regular JVM.
>>
>>109429613
I haven't tried it but jLink sounds interesting. It's included in the JDK.
It creates a custom runtime from only the modules that you actually need.
in most cases it should result in a much smaller runtime than the JVM.
>>
>>109429714
Very cool. I'll check this out when I'm not procrastinating on other things.
>>
>>109427918
Hate is never justified.
>>
>>109429925
I hate niggers
>>
>>109429612
Honestly, Tauri looked interesting to me, but unironically expecting me to write Rust for a desktop and mobile meme app is completely out of touch with reality. If it used a more sane language, it could be super popular.
To me, VSCode feels like a very solid program in general, and it feels as if most people just hated it because it's cool to hate on electron. In comparison, MS Teams is a disgrace to humanity (afaik it doesn't even use electron anymore).
InelliJ doesn't feel as good as its fans say it should (e.g. scrolling feels really jank), but it's overall fine. I like old desktop UIs too, but I'd go for a better developer experience over native looks or feel. Not that Swing looks native (it looks soulful though).
>>
>>109429974
They can't help having a much bigger wiener than you.
You might want to stick to Rust, as then you can pretend you're a tranny and not be so embarrassed.
>>
>>109429480
tell them that you'll only accept docker images from them. that way they have an incentive to make running the thing easy
>>
>>109430866
A white tranny cuck said this.
>>
no but arguably the hate toward a certain style of java code is
see jetbrains IDEs for a great example of java software
>>
>>109429993
Just use Tauri and have AI write the rust for you.
>>
>>109431258
It runs on top of WebView. You understand, right, that there's not much difference between an Electron app and one built on Tauri or similar frameworks (like Wails for Go)?

Ultimately, it's all executed on Chromium's V8 engine (or JavaScriptCore for MacOS). All rendering still happens through the browser's rendering engine.
>>
Java applets were great and they should have just fixed the security chasms rather than wait 30 years for WASM. I had such a positive experience with applets I'm absolutely baffled by people that hate them.
>>
>>109431436
for some reason for java applets they chose to keep plugging the holes that get discovered instead of building from no exposed surface area upwards.
>>
>>109427918
yes
>>
>>109431258
No way fag. I could learn Rust if I wanted to, but I'm still not going to use it for this because it's simply not meant for these tasks. It's like telling someone "hey there's this super cool le revolutionary cross platform framework and it can do desktop and mobile and mainframes and satellites and it's rendered in a webview it's super easy oh btw you have to write your business logic in C++ btw and that's a good thing btw :^)".

I would much rather use Electron. Sadly, that doesn't support mobile platforms. The only realistic cross-platform mobile solutions are Flutter (warning: made by Google, uses its own weird language nobody asked for) and React Native.
>>
>>109427918
it's good for drones churning out enterprise slop.
it's bad for anyone with a soul.
>>
>>109431436
People hated them because on most machines of the era, they'd bog down as the runtime environment was loaded in from disk and then the applet slowly initialized. People would embed applets in their webpages without warning, so you'd click on a link to a page and suddenly have to deal with everything becoming slow as molasses due to the runtime loading. Most of the time, people hitting the page weren't even interested in the applet but it was still there, fucking up everyone's experience.
>poorfag
Which brings up the "well, fuck you" attitude of people who made applets. They were sure they were inventing the future and anyone who spoke up about any of the legitimate complaints were dismissed as troublemakers and Luddites.
>>
File: cafebabe.png (431 KB, 900x1288)
431 KB PNG
>>109429265
because every *.class file starts with
CAFEBABE
hex
>>
>>109431844
>Swing
Clojure
>JavaFX
Clojure
>web frontend
ClojureScript
>Flutter
ClojureDart
>shell scripts
Babashka (fast-starting Clojure interpreter with numerous useful libs baked in)

btw Clojure does the backend in the JVM just as well. seriously Clojure is the best language I have tried and I've written a lot of Go, Python, JS/TS, Rust, and Elixir. I've tried other languages too but those are the ones I have written the most of.
I use Hiccup to replace writing HTML and HoneySQL to replace raw SQL
>>
>>109427918
No. It runs on 3 billion devices.
>>
>>109431436
Because Java applets were just external applications embedded into the page.
If you ignore that JS is a shittier language, the HTML DOM scripting is literally the whole point of having a language runtime in a web browser. Otherwise you can just download an exe and get the same experience as a java applet.
>>
>>109431345
Anon said the problem was rust, not using a WebView, retard. Also on Linux Tauri uses WebKitGTK like on macOS.
>>109431844
Why bother learning a programming language when AI does it for you? Honest question.
>>
>>109432033
>Clojure
I just looked it up. I have to congratulate you for bringing it up. Finally I language I would absolutely choose to use Rust over for writing a desktop/mobile meme app.
>>
>>109432052
WebView comes with its own problems, but it's not a dealbreaker like Rust.
>Why bother learning a programming language when AI does it for you?
Mindlessly vibe-coding stuff without understanding the language and the design leads to unmaintainable slop. This is acceptable for some small and simple programs, but not for more complex stuff.
AI is extremely useful for learning new languages and frameworks too.
>>
>>109432052
If AI does it for you, why don't you have it make GTA 6 and become a millionaire? Honest question.
>>
>>109427918
It's shit, but it works, but it's shit
>>
>>109432130
how is it shit? at least pretend like your opinion is based on reason.
>>
>>109432060
>Finally I language I would absolutely choose to use Rust over for writing a desktop/mobile meme app.
ok lil bro
>>
>>109427918
yes java was the begining of tech dying. The original slop, king slop.
>>
>>109432052
>Why bother learning a programming language when AI does it for you? Honest question.
because I already know several and AI is a waste of time, all LLMS do is plagarise.
>>
>>109427918
actually completely fine until you actually have to build and deploy your app. what a fucking pile of trash. maven, gradle, xml configs. literally every other language you just fucking run. literally even rust compiles faster AND JAVA ISNT EVEN A COMPILED LANGUAGE.
>>
>>109429698
just to add to what this anon said, using java's jlink creates a platform specific jvm (operating system and arch)
>>
>>109432480
Java is a compiled language.
>>
>>109432480
Java is compiled—just not to your CPU.
>>
>>109428506
I can name four ui kits for Java off the top of my head. AWT, Swing, JavaFX, and SWT. I'm sure there are several more. What can your language do? So electron shit? Bloat.
>>109432480
>rust compiles faster
[X] Doubt
>>
>>109428038
>the hate is outdated. all things considered it's probably the best memory-safe language.
wrong, the hate is as relevant as ever, this shit consume and waste memory like nothing else, jenkins has lost the CI/CD war because it's java shitware and I've seen many other such case where I work, it just leaks and leaks and there is nothing you can do about it, all the jvm implementations are equally dogshit, including graalvm and including compiled to native binary.
>it just werks
no it does not
>has a vast and mature ecosystem
maven is as dogshit as ever and barely works as intended.
>is truly cross-platform
lmao no
>has a gui toolkit out-of-the-box.
javafx and swing suck
>the committee working on the language is incredibly disciplined and selective.
HAHAHAHAHAHAHAHAHA
I know some of them, also had some others as professors at uni over a decade ago, they're pompous, obnoxious retards who don't care about users and make all the wrong decisions whenever possible
>I'm always tempted to try other languages, but they always happen to be retarded in some major way.
just use Chashtag which mog this dying poojeetware
>>
>>109427918
>is the hate justified?
Yes the hate is definitely justified but it's not all bad.
>>109428038
>the hate is outdated.
People are still using fucking XML as a configuration format because Java popularized it.
>>
Nah.

I got hired at a bank because of it.

Spend a few weeks writing a microservice in spring boot, claude did all the work.

Got promoted, got a salary raise.

It's allright.
>>
>>109428038
>the committee working on the language is incredibly disciplined and selective.
Yeah they've been refusing to add string interpolation and nullability syntax for what 3 decades now and let me guess that's a good thing?
>>
Yes. Bad programming language. Bad platform. Bad owner (oracle).
>>
>>109433104
>many other such case
lots of people are saying this
>>
>>109427918
replaced by JS
>>
>>109433132
>XML
it has comments and you can paste shit into it and autoformat. if you are lucky you even get a schema so you get red squigglies immediately if you fat fingered the pasting. twice the lines of yaml usually, but not hunting for cryptic errors because indentation is wrong is worth it imo
>>
>>109432050
But that's a good thing: run a program in the browser's vm. The web is more than html. It took decades to get back to that basic idea.
>>
>>109433196
>string interpolation
still on the menu, they pulled it once because the design wasn't up to standards
>nullability syntax
it's in the works because that's needed for memory efficient value type representation
>>
nah
well, if you're unfortunate enough to work on anything below java 8, then yeah
otherwise, it's been a serviceable language ever since. i'd use C# over it any day though.
>>
>>109433427
>the browser's VM
The whole reason they removed Java applets is because they were the opposite of this. They literally just ran whatever.jar directly on your computer with fully privileged system access (same as running an exe file) and communicated with the external process to embed it into the webpage.
>>
>>109427918
>is the hate justified?
it's not enough
>>
File: image.png (33 KB, 1423x535)
33 KB PNG
>>109427918
i would say yes and no, sometimes it just works, and others it doesnt, sometimes the OOP shit comes in handy, other times no, all comes down to what you are trying to do with it, i mostly use it as python for simple automation and data handling operations so i dont "need" the OOP shit and it gets in the way, but its nice to have when you need it, like this automation script for parsing the output of the xedit script "_0_SSG - Check for Missing Textures 1.0.1.pas", Yes i should make it read the mod and load order properly, but this would be countless hours and sleepless nights to make a parser for mod files (.esp, .esl, .esm) and bsa archives, proper load order handling with record and file overwrites etc, no form version 44 libraries exist for java, there is skyproc but thats for LE / form version 43 and upgrading it would be a delicate operation onto itself
>>
>>109429213
>C# doesn't have LTS and Java does, which is a big thing.
how the fuck is it a big thing
why do you need your programming language to have "support", kek
there is no organization that offers "support" for C or C++ and yet people can still use those languages without issues
>>
>>109427918
public class Program {
public static void main(String[] args) {
System.out.println("Java is too fucking verbose");
}
}

Also all the GUI options are heavy enough that as a user I can feel the difference between a Java program and a native one.

Apart from that, it's a fine language.
>>
>>109434367
void main(String[] args) {
IO.println("Hello World");
}
>>
>>109434325
>how the fuck is it a big thing
>why do you need your programming language to have "support", kek
>there is no organization that offers "support" for C or C++ and yet people can still use those languages without issues

By "support," it means that the OpenJDK developers will patch vulnerabilities and bugs in the JVM. You are right that the language specification itself does not change. The Java 25 language will remain the same in 2030. However, OpenJDK 25 will receive updates.

The analogy with C++ is partly incorrect. The C++ language specification is developed by a committee, while compilers like GCC, Clang/LLVM, and MSVC are made by corporations. All of these compilers receive regular updates and patches just like OpenJDK.
>>
>>109429265
"java" is an old term for coffee
>>
Gets mogged by Kotlin nowadays + Kotlin has Kotlin/Compose multiplatform meaning you can basically write UI-heavy desktop, web and mobile apps all in one codebase AND natively
Flutter and Reactbabbies could never
Java is literally only alive because of the jvm and legacy code
>>
>>109433104
>jenkins has lost the CI/CD war

This is partly true, and right now you should probably choose GitLab CI/CD or GitHub Actions instead of Jenkins. But Jenkins is just very old. It appeared 21 years ago, in 2005. It is a fucking dinosaur from the CI/CD world.

For comparison, GitLab CI appeared around 2014, and GitHub Actions in 2018-2019. That is quite recently.

At the same time, almost all enterprise companies here in Europe still use Jenkins and have no plans to migrate away from it. There is no problem with that in my opinion. You can easily live with Jenkins today. It is noticeably harder to configure, but nowadays you can easily handle all the configuration through an LLM. You no longer need to sit up at night reading manuals.

Besides, GitLab and GitHub themselves are written in Ruby and a bit of Go. Is that really much better than Java?

https://blog.jetbrains.com/teamcity/2026/03/best-ci-tools/
>>
>>109434534
I agree regarding Kotlin for smartphones. Perhaps Kotlin KMP is also good for desktop but I never tried it. At least KMP backend is Skia and not some old Swing/AWT.

The catch is that all of this runs on top of the JVM. Yes, there are kotlin-js and kotlin-native (using LLVM), but the primary implementation of Kotlin, as well as the most popular and most used one, is Kotlin on the JVM.

At the same time, Java is gradually getting all the syntactic sugar that Kotlin had. Sooner or later, Java will even have null safety (probably in the year 2030 heh). Kotlin was extremely relevant around 2016 to 2020 when Java development was stalled and we were stuck on Java 8 for years, but that is no longer the case. With each passing year, Kotlin has fewer features to offer that are missing in Java.
>>
>>109434400
hello.java:1: error: class, interface, enum, or record expected
void main(String[] args) {
^

Yeah I didn't think that was a thing. I had to check though.
>>
>>109434572
https://www.onlinegdb.com/online_java_compiler
>>
>>109434534
Kotlin, Clojure ad Scala are literally wacky jesters in the court (jvm) of Queen Java.
>>
>>109434572
Which JDK version are you using? Install JDK version 25, and this code will compile and work.
>>
File: IMG_4568.jpg (63 KB, 1206x622)
63 KB JPG
>>109434568
>but that is no longer the case
Holy cope
Javababbies don't even comprehend how fucked they are
Kotlin now completely owns the Android market also basically any UI-heavy market vs. Java. In just one year, Kotlin multiplatform adoption doubled and if they get another year or two, it'll be more popular than both react native and flutter.
From what I hear backend devs also usually pick Kotlin over Java when starting a new project
>b-but muh syntactic sugar!!!
Is just a tiny part and even there Java is only now introducing features Kotlin had for 15 years. How is Java supposed to catch up with the absolutely massive amount of library ecosystems built up around Kotlin and IntelliJ products (which javafags have to use kek)?
>>
>>109434594
17, haven't used it in a while and can't be bothered to update it, there'll just be a newer one by the next time I need it
>>
>>109429213
>GUI toolkit is literally legacyslop that's not in active development anymore

That is not entirely true. Yes, they will not add anything fundamentally new to Swing or AWT in the coming years. However, development is ongoing, mostly in the lowest-level part of the Java GUI, which is Java2D. They are actively introducing Wayland support without XWayland, and Java2D itself will run on top of Vulkan, at least on Linux and probably on Windows because it has DirectX support, though an old version like DirectX 9. Support for Metal on macOS has already been present for several years.

https://mail.openjdk.org/archives/list/wakefield-dev@openjdk.org/latest
>>
>>109434712
>That is not entirely true
>Yes, they will not add anything fundamentally new in the coming years
Lmao
>>
>>109434725
Actual full support for Wayland and Vulkan is literally fundamentally new. It's literally the foundation of all Java GUI rendering on Linux and probably Windows.

I get that you probably don't give a shit and expected to see new controls, widgets, frames, or something like that, but that's genuinely not coming to Java anytime soon. It's just not needed, simple as that. Swing is fine the way it is right now. You can't come up with something radically new and completely overhaul everything without breaking backwards compatibility.
>>
>>109434757
Correct, I don't give a shit because skia (compose multiplatform) already supports Vulkan and nobody gives a shit about wayland
>>
>>109429348
>I (and my ai agents) write in Java (...) for personal needs
Jesus Christ.
>>
>>109428043
C# if you want corpo boiler plate code
>>
>>109429449
>Electron
why yes I need a full browser aka a partially sandboxed mini-os for javascript programs running just to draw a window on screen

why not just ship a full VM with your program at that point and call it portable?
>>
>>109433132
>People are still using fucking XML as a configuration format because Java popularized it.
well, java devs don't. they can stop anytime they wish.
xml was a decent format, but there are better ones now.
>>
>>109435186
They literally have to because nobody from boomer Java devs likes using gradle which was made readable with gradle kts and version catalogs
So they stick with maven kek
>>
>>109434978
Yes, packaging the runtime that guarantees the program will actually run makes the program just work instead of fucking shit up with dependency hell.
>why not just ship a full VM with your program at that point and call it portable?
We do that too, and it's literally the only way to ship native apps on Linux if you want to guarantee they work. It's called Docker, and it solved what freetards refused to acknowledge for 30 years.
>>
>>109435303
That has nothing to do with the file format. I prefer Maven over Gradle because it's convention over configuration.
Every Maven project is structured more or less the same, so the mental overhead of working with it is very low.
That's despite Maven's build time being objectively worse.
>>
>>109434325
Basically what >>109434439 said.
Support means patching vulnerabilities. Without that, attackers have a neat list of vulnerabilities guaranteed to work on your systems.
Not offering proper LTS is the most retarded part of dotnet d e s u
>>
>>109427918
it ran on a flip phone, can your rust/go/whatever modern slop language do that
>>
>>109437055
rust can run bare metal without an OS grandpa
java cant even run without a jvm runtime
>>
i don't like having to write
class ObjectLoggerProviderFactoryServiceImpl
>>
>>109437098
did java not invent namespaces yet or what lmaoo
>>
>>109434534
>Kotlin/Compose multiplatform meaning you can basically write UI-heavy desktop, web and mobile apps all in one codebase AND natively
You still have to write a significant chunk of the app multiple times for multiple platforms. This is not like Flutter.
>>
Java apps have not aged well. Always audibly groan when one of those clunker interfaces comes up after downloading a new app.
>>
>>109437098
who's forcing you to? uncle bob sitting behind you waiting to clobber you with a bat?
>>
>>109436463
>muh mental overload
>muh everything needs to be the same
Fuck off gobabby, if you can't handle freedom go back to your retardation
>>
>>109437299
every java codebase i have worked in
>>
>>109434400
args are also optional
void main() {
IO.println("Hello World");
}
>>
>>109433454
>the design wasn't up to standards
They could literally copy the design from C#. It's not exactly rocket science, given that every other language has this.
They could copy nullability too. I'm fine with their proposed syntax too as long as there's a way to opt in for default non-nullability.
>>
>>109433132
the java hate is justified,
the xml hate isn't.
xml is a great format.
better than fucking json, or worse, yaml
>>
>>109437422
too bad xml gets mogged by sexps
>>
>>109437353
>argless main is the biggest innovation in Java in 20 years
Lmao
>>
It's verbose and memory hungry but very fast (contrary to general opinion). Enterprise morons and legacy codebases give it a bad name but it's here to stay, and has improved dramatically in recent years.
>>
>>109437230
>clunker interface
>GTKLookAndFeel
lol
yeah, GTK sucks
>>
mogs C with memory safety
mogs Rust with no unsafe
mogs Python with semicolons
mogs JavaScript with literally everything

write once, run anywhere
cross platform UI
I can run Eclipse on riscv
I can compile AOT and JIT
I never break backwards compatibility
20 year old jars still work
>>
>>109437478
compact object headers and value types should improve the memory usage.
>>
>>109437443
this btw
yet another point for Clojure with its EDN data format

you motherfuckers will do anything but learn a Lisp
>>
>>109437809
>lisp
i'm more of an ocaml person myself
>>
>>109437679
>mogs Rust with no unsafe
ono what's this? sun.misc.Unsafe
>>
>>109437679
Doctor said we shouldn't intervene with his delusions
>>
>>109437679
>mogs Python with semicolons
>verbosity is a good thing
>>
>>109437422
XML is not great for configuration and people who think so are always ignorant of the alternatives and actual tradeoffs. Either they are just using XML when something like json would be obviously superior, or they are using XML for the DTD and validation aspect in which case they would be far better served with custom syntax and a custom validator. It would be far simpler and clearer, with out the need for all the excessive tag syntax.

XML is fine for documents. That is, actual documents where the bulk of the file is CONTENT parsed as CDATA, and where the XML tags are there to handle structure and metadata.

Retards from the era of Java, used XML for fucking everything. They used it for serializing everything. They used it for configuration files. They used it for fucking databases. XML is garbage for all of those use cases. It absolutely deserves every ounce of hate it gets and people who defend it don't get enough hate.

>better than fucking json, or worse, yaml
No, it's not. Both of those formats have their problems but at least they are both usually used fairly reasonably for the purposes they were designed for. The the reason YAML became overused is that people really needed and wanted the solution that YAML seems to provide, a convenient human-writable format for the most common standard data types and structures. The only real problem is that it's overly complex and tried to solve too much. People wanted writable JSON while yaml is a "serialize-anything" format.

Json is great as a simple and universally accessible data serialization format. If you are serializing data in a situation where you control both ends of the transmission, json is probably worse than a custom format (but not worse than XML). But if you're providing data to be consumed by random unknown clients where validation isn't criical (eg /g/catlog.json), json is superior:
>>
>>109427918
I never understood the difference between java and javascript. Are they the same thing? if yes why do they have different names? if no why do they have similar names?
>>
>>109440043
JavaScript is named that way for historical reasons. JavaScript and Java are nothing alike really. Java is very different. Technically speaking, it's not called JS, it's called ECMAScript. You can read the standard here: https://ecma-international.org/publications-and-standards/standards/ecma-262/
>>
>>109440043
They are the same thing. Don't believe the retards trying to confuse you. Trying to prove they're not the same is "ackshually" tier mental gymnastics and it doesn't matter at all in practice.
>>
>>109427918
Out of the 4 languages that matter, Python, Java, Javascript and C++.
Java is indeed the least shit.
It's unambiguous, has simple syntax, good performance tradeoff and a great history of backwards compatibility.
>>
>>109439975
>they are using XML for the DTD and validation aspect in which case they would be far better served with custom syntax and a custom validator.
yeah let's just reinvent the wheel instead of using a mature standard

>just using XML when something like json would be obviously superior
the fuck does "just using XML" mean?

JSONiggers really can't make a good or fair point for their webshitter format, especially as a config file
if a real simple format is used, there are Properties files, which Java can read directly into a Map
if a more advanced/structured format is needed, JSON is garbage compared to XML
>>
>>109440225
>yeah let's just reinvent the wheel instead of using a mature standard
And here we see the mindless, braindead logic of people who wind up using XML.

XML in fact forces you to "reinvent the wheel" in the sense you need to define something as simple as a list. You have to do all this work to specify and parse the XML stream or element tree or whatever preliminary data you get.

The question retards like you never ask is whether the XML part is actually providing you anything. XML makes you do all this work to assign meaning to the tags and attributes and CDATA. So long as you have to do all that work anyway, why not just do it with a format that actually fucking makes sense and is efficient for the data/configuration/etc that you want to express? You shouldn't waste a whole step parsing all the angle brackets and attribute bullshit, when you could just implement some simple and robust text parsing from the beginning.
>>
>>109440138
>it's called ECMAScript
it's named after the skin disease, in an attempt to gain popularity
>>
Hate against Java is not justified. It's not even as verbose as it used to be.
>>
>>109440343
>You shouldn't waste a whole step parsing all the angle brackets and attribute bullshit,
nigger, are you parsing XML manually?
you dumb bitch
>>
>>109427918
The criticism leveled against IDEs is more valid, I think. It's the same shit with C++. The language is fine but dedicated IDEs add so much bloat. Never understood the VSCode/netbeans worship when you can just alt-tab from emacs or whatever text editor you're using and compile in terminal.
Java's garbage collection isn't great but that's not really an issue unless you're trying to make a triple A game or something. Java's UI libraries do suck donkey dick compared to something like fltk but all high-level languages have their own version of hemorrhoids.
>>
>>109440225
>if a more advanced/structured format is needed, JSON is garbage compared to XML
For config files, YAML is a very good format. But don't use it as input from untrusted sources; it's got horrors in its dark corners.
For information interchange, JSON and XML do well; the former when low-typed data dominates (JSON's really quite good for that), the latter when you really want to express instances of complex types.
If you're thinking about using lots of namespaces in your XML, give it a fucking break. Possible or not, the result is awful. BTDT, and added to the pile of badness; when I say it's evil horror, it's a (former) insider's perspective.

To round out the rest of the usual list:
Properties files are too damn primitive and repetitive.
TOML's got too many common ways to write the same thing. I always end up confused when trying to read it.
ASN.1 (BER or DER)? May God have mercy on your soul!
>>
>>109440521
>T. Never used an IntelliJ IDE
You can't even comprehend the level of mogging I'm doing against vim and emacsbabbies.
>>
>>109440521
>Never understood the VSCode/netbeans worship when you can just alt-tab from emacs or whatever text editor you're using and compile in terminal.
Those developers stuck on Windows tend to like using VSCode for its built-in terminal support. It sucks a lot less than the default terminal.
>Java's garbage collection isn't great
It's about as good as GC gets. Not typically tuned for very low latency (gaming, realtime apps), more for very high throughput (web services, backend processing).
>>
>>109440156
insanely based
>>109440496
the things noobs will do to feel smart
>>
>>109427918
yes. dotnet core > springboot
>>
File: durgasoft.png (1.31 MB, 1883x1600)
1.31 MB PNG
>>109429622
it's like being flung back into the 1990s
and not in a cool nostalgic way
>>
>>109440667
>It's about as good as GC gets. Not typically tuned for very low latency (gaming, realtime apps), more for very high throughput (web services, backend processing).
java has multiple GCs, one of them tuned for low latency, but it's not the default.
>>
>>109440343
>why not just do it with a format that actually fucking makes sense and is efficient for the data/configuration/etc that you want to express
not the Anon but you can easily take this argument a bit further and come to the logical conclusion that for all of the above, you can easily figure out a simpler and much more efficient binary format that supports random access, skipping over irrelevant data, partial compression and probably many other features JSON can't provide.
I would also argue that JSON is a very poor fit for configuration files and is not an efficient data transfer format at all compared to most alternatives.

>>109440521
It's a cultural thing. Java IDEs allow mediocre developers to write shitloads of fragmented code and still pretend that it's navigable, making them essential but only because they enabled these practices in the first place. I would never have used "Inline all usages, remove the method" if not for the fact that shitting out 20 one-to-three-line helpers for a class with a single public method and no state whatsoever is a widely accepted "best practice" in the Java world.
>>
>>109440805
wtf do you know? you can't even crop an image.
>>
>>109440819
>Java IDEs allow mediocre developers to write shitloads of fragmented code and still pretend that it's navigable,
it IS navigable. other devs don't have to cater to your tools or the lack thereof.
and 1-3 line methods are not a common practice.
>>
>>109440862
do you even know what you're replying to, retard?
I just wrote that I do use IDEs
>>
>>109434978
>le packaged browser retard argument
all serious software packages some type of runtime enviornment with it. the problem with electron is not the chromium instance, its the 6 gorillion web api calls that baseddevs typically abuse with it. try to educate yourself before parroting bullshit you read somewhere else to attempt to feign intelligence.
>>
>>109427918
>is the hate justified?
yes
I blame jaca universities for beinng scabby cheap freeware pimping scumbags
>>
>>109441000
>all serious software packages some type of runtime enviornment with it
including notable examples such as:
- MFC applications packaging the whole Windows operating system in every installer
- dynamically-linked X11 apps packaging their own X server just for the fuck of it
- Homebrew famously being bundled with its own Xcode installation that gets unpacked next to the one from the App Store
>>
>>109440472
I hate niggers
>>
>>109427918
i genuinely cannot think of a single thing java has over c#/.net
>>
>>109441171
its ecosystem
>>
>>109441339
gradle/maven is not exactly exciting
>>
>>109441395
Compared to MSBuild it is very exciting indeed
>>
a decent amount of companies know that java kinda is mind numbingly boring. so they are switching to springboot but with kotlin
>>
>>109441405
I'm not using crappy dotnet framework, so i just shove everything i need into .csproj
>>
>>109441414
If that was actually the case they would be switching to Java lol
Companies prefer boring languages
>>
>>109428506
Java Swing is the only cross platform UI library that actually tries to match the look and feel of the OS it's running on. Literally no other library has ever achieved that, in any language.
>>
>>109441443
tcl/tk, and it does it better
>>
File: db.png (55 KB, 579x376)
55 KB PNG
>>109441171
Java has better enums (objects instead of values), better anonymous classes (can have methods). Which is a low bar.
Also checked exceptions (very questionable and Result is preferable, but might be useful when not overused) and type erased generics (people mostly prefer having the type info around anyways).
Something more interesting: Microslop is continually ensloppifying dotnet and Brian Goetz has an interim ban on OpenJDK slop while Oracle deliberates.
But it's true that C# has more things than Java, nullable checks without annotations, object properties without lombok, reified generics, dumping everything in csproj and getting any build you want (debug, release, aot native, bundle the runtime with the program) where Java needs Maven and Graal and jlink and whatever fuckery when dotnet is... dotnet.
Roslyn, architected as a compiler as a service, made it very flexible, allowing you to create things like the polyfill nuget.
Even so, I wouldn't trust Microslop to not fuck everything up so... Java just works.
>>
>>109441517
c# letting you do assign bit positions (flags) to an enum, and then then letting you do bitwise operations on enums is infinitely more useful than what java has
>>
>>109441543
>bitwise operations on enums
use case? sounds retarded.
>>
>>109441571
webshitter hands typed this post
>>
>>109441543
The Java EnumSet gives you the bit operations as methods in a type safe way.
>>
>>109441605
so no use case then
>>
>>109441517
With the amount of scamming that goes on in benchmark maxing, I would take any benchmark with a massive grain of salt. Microsoft for example with C# devoted a lot of resources to scam benchmarks at one point in time (there is a talk from one of the devs that worked for MS doing it on youtube somewhere, it's quite interesting).
>>
>>109441691
>Java EnumSet
fucking dogshit syntax
>>
>>109441750
I do take them with a grain of salt, you can check the source and see unholy intrinsic/unsafe abuse that makes shit absolutely unreadable.
But the truth is that C# has Span<T> and value classes and Java doesn't. Java has Project Panama (verbose) and Vector<T> and Memory<T> are cockblocked until Valhalla.

>>109441777
It's not that bad, cmon. I have seen people from Rust like Java enums.
>>
>>109440521
you don't need ide, vscode, vim or emacs.
you don't need text editor at all.

AI agent will write everything for you.
>>
>>109429265
Its a steaming hot cup of microwaved camel jizz
Programmers drink it because it hyper accelerates the intake of caffeine and Adderal
>>
>>109427918
nope. its stable, supported and safe. the ecosystem is also really good and the knowledge pool is huge (which is super nice if you are trying to do a project with multiple ppl). 90 percent of the old critiques aren't really applicable anymore if you use the newer versions and utilize the libs. springboot is GREAT as well. i really dislike swing tho but that might be bcs ive only ever had to do swing stuff on projects that were already shitshows. kotlin is a better language and will eventually be a replacement imho but not until its a bit more mature.

>>109429431
exactly. there is also some unearned reputation in the real dev world as well.
the fact that it's so widely used in enterprise also means that there are a lot of java jobs where you are doing pretty mind numbing work. devs associate this with the language but desu maintaining old dusty corporate legacy codebases is always difficult no matter what so its not really javas fault.
>>
Call me crazy but I liked the native Java UI toolkit and look and feel from the olden days. I know it's deprecated now but it just looks jank no matter what somehow these days with native UI widgets. It was much better with its own look and feel.
>>
File: mTLpG.jpg (430 KB, 1168x784)
430 KB JPG
>>109434584
>>
>>109440043
I started with Java but when writing scipts Javascript is head and shoulders above the rest. Take it as you will.
>>
>>109437408
>copy the design from C#
no, that one is retarded and just creates a string immediately, encouraging sql and all other kinds of injection vulnerabilities. they want to do something like python t-strings which results in string-pieces + interpolated values, so the database driver etc. can do proper escaping of the values. much better design, another C# fail where they went with "the obvious"

https://stackoverflow.com/a/79686550
>>
>>109438172
all deprecated and will be removed btw., the only remaining unsafety will be the foreign function and memory api
>>
File: 1785524170585.jpg (98 KB, 667x515)
98 KB JPG
>>109427918
>>
File: 1785560946814906.jpg (774 KB, 1242x1505)
774 KB JPG
>>109427918
i dont know how to code, but my massive project data pipeline is all written in java, incorporates flink and kafka

processing portion of my project uses python

i am content
>>
>>109444514
the fuck are you talking about, retard-kun? Linq queries are just ast representation of a query and every db library in existence inserts dynamic parameters as named parameters, not verbatim strings inline, when constructing a query string
>>
File: trash.jpg (63 KB, 622x557)
63 KB JPG
>>109429348
>I (and my ai agents) write in Java
this is where I stopped reading
>>
>>109445115
and that works well while you sql is kindergarten tier. as soon as you need dynamic common table expressions, stored procs or custom database specific sql, you are back in string construction land with the retarded string interpolation gun aimed at your foot
>>
>>109445249
string name = "OP";
string skillLevel = "none";
var users = db.Users
.FromSqlInterpolated($"SELECT * FROM Users WHERE Name = {name} AND Skill = {skillLevel})
.ToList();
>>
>>109442275
Same. Old Java programs looked like pure sovl. I liked them back in the day too.
>>
>>109444514
It should be a federal crime to be this retarded. String interpolation is not meant to protect retards from SQL injection.
>>
>>109442275
I used to hate on them. These days I sorely miss them compared to electron trash
>>
>>109427918
No I've been using it for over 10 years and probably my only gripe with it is the UI side, wish it had a more modern UI library that was easier to use. Honestly swing was good, I tried Java FX and didn't like it that much when you come from something like React or Angular the FXML tamplates just feel so basic that in the end I gave up and just used raw code instead, no idea if JavaFX is any better now.
>>
>>109440521
>The criticism leveled against IDEs is more valid, I think. It's the same shit with C++. The language is fine but dedicated IDEs add so much bloat. Never understood the VSCode/netbeans worship when you can just alt-tab from emacs or whatever text editor you're using and compile in terminal.
Uh, I've tried using text editors for development and they are totally useless. Like, can you even autocomplete? Can you incremental compile? Can you run/debug in a text editor? Can you generate with code templates? Can you resolve git merge conflicts in a text editor? Can you perform save actions in a text editor? Can you mylyn in a text editor?
The answer to these questions in a text editor is always
>no
or
>not without a ton of setup and configuration
meanwhile, I get all this out of the box with Eclipse. It just werks.
>>109441998
>AI agent will write everything for you.
I'm not the least bit afraid of AI taking my job, but I think the person you replied to is one of the people that is afraid. If all you know how to do is edit small code bases in a text editor, AI is going to eat your lunch.
>>
File: THE-Rich-Hickey.jpg (207 KB, 461x461)
207 KB JPG
>>109445249
>he doesn't use Clojure with HoneySQL (where SQL is represented as data structures, trivial to modify, then compiled into strings at runtime with a cache for efficiency)
>>
File: OIP (9).jpg (19 KB, 474x317)
19 KB JPG
>>109447479
dynamic types
>>
>>109429265
like every modern company they just had to simplify the logo.
originally it was the coffee cup and two women.
>>
File: 1783878305908790.jpg (34 KB, 536x590)
34 KB JPG
>>109447773
test suites
>>
>>109446996
Not understanding the point of text editors is a major blind spot. AI is going to hit you like a truck
>>
>>109443704
Where is Scala? I imagine her styled after Harley Quinn with red gymnastics ribbon
>>
>>109446996
It's all well and good until the people who designed IDEs to automate the programming process start adding their own onboard LLM and charging you a monthly subscription for the privilege of using their service.
>>
>>109445349
FormattableString implicitly casts to string, cool design decision. assign your query to a string first and enjoy sql injection
>>
>>109446142
similarly, bounds checking is meant to protect retards from getting memory safety wrong. having string interpolation implicitly convert to strings is like the language designers handing you raw pointers and telling you to git gud when it inevitably leads to memory corruption. high level languages provide safety, low level languages provide control. C# gets it wrong constantly, nobody wants to pepper their code with async, nobody wants to read that in out ref bullshit. throwing everything into a language and causing endless churn only benefits the microsoft employees because they can "demonstrate impact". negative impact, but apparemtly that doesn't matter
>>
>>109448708
>FormattableString implicitly casts to string
no it doesn't
>>
>>109448845
>string interpolation implicitly convert to strings
it works like this in literally any language and would be pretty shit feature otherwise. But FormattableString doesn't cast to string, so you either know shit or are lying
>code with async
a non-issue for me, unless you write a library and want to expose both sync and async apis. For application development, a non-issue
>out
this one actually sucks balls, I don't like this TrySomething(out result) pattern
>ref
very useful sometimes, you would know that if you wrote anything more than a crud
>>
>>109448879
string adjective = "retarded";
string verdict = $"it's {adjective}";
Console.WriteLine(verdict);
>>
>>109449160
kek.
Now pass it to FromSqlInterpolated()
>>
>>109449195
there you go
.FromSqlInterpolated($"{verdict}")

FromSql
>>
>>109449295
At this point you might as well upcast everything to object and then you can pass anything anywhere.
>>
>>109448202
>AI is going to hit you like a truck
What happens when AI hits a truck? Does the truck give a fuck?
>>
>>109446996
>Can you resolve git merge conflicts in a text editor?
Yes, I can. I'm not a failure.
>>
>>109427918
They fucked it up in exactly the right ways to make it extremely easy for retards to write code that looks like it works, but doesn't. It's like an anti-Rust.
>>
>>109441063
All the dynamically linked slop expects the runtime to just magically already be there. In practice, it's never there, especially on Linux where you often can't even install multiple versions of the same thing. That's why native Linux distribution is impossible.
>>
>>109427918
the hate needs to be instantiated first using HateFactoryInstantiatorCreatorFactory
>>
>>109438158
yes, bc u'r a fag
>>
>>109427918
No. Java is a fine language made absolutely cancerous to use because of jeets and other retards outputting the most horrendous enterprise code imaginable.
I remember enjoying my time with Java a lot, until I had the displeasure of using 3rd party libraries. The amount of pointless bloat and outdated code in them was suffocating.
>>
>>109428043
Rust, compile to wasm and write code against WASI.
>>
>>109457489
This will only cover a fraction of Java features and would require you to run browser or some obscure wasm runtime.
C# is the real Java alternative.
>>
>>109458008
>C# is the real Java alternative.
but it's just that: an alternative
the main player is Java
>>
No, the hate isn't justified
>>
>>109433675
They ran in a new instance of the JVM owned by the browser. That can give file access etc (trusted), but that's what programs are supposed to do: give you access to your computer. The big issue was >>109431544 they defaulted to everything in the JDK being accessed from applets instead of locking it all down and exposing only what you needed.
>>
>>109448202
>ide's can't edit text
the "first person replaced by AI" award
>>109448547
There are already eclipse plugins for stuff like github copilot. You are welcome to use them, or not. Personally, the LLMs seem much slower and less reliable than just using the same codegen stuff I've used for 20 years. Like even if that shit was free, I still have no use case for it.
>>
>>109446142
Why are you defending the bad choices of C# and Microsoft's design so?
>>
File: sasdpt1r2zgh1.jpg (176 KB, 720x993)
176 KB JPG
>>109427918
yes.
The language was made to make developers easy to replace.
Have you ever stopped programming and thought, 'Man, I wish there was a language that is not only boring but also tiring'? Then Java is for you. I guarantee you you will forget that programming and problem-solving can be fun.



[Advertise on 4chan]

Delete Post: [File Only] Style:
[Disable Mobile View / Use Desktop Site]

[Enable Mobile View / Use Mobile Site]

All trademarks and copyrights on this page are owned by their respective parties. Images uploaded are the responsibility of the Poster. Comments are owned by the Poster.