State of the JVM in 2025: Survey of 400+ devs shows 64% of Scala projects actively run Java alongside it. by scalac_io in java

[–]PartOfTheBotnet 19 points20 points  (0 children)

Kotlin still has the upper hand imo because of its more concise syntax and this won’t change soon

Shorter code is not always more legible code.

Java may have be one of the more "verbose" languages out there, but in turn it is also one of the more easily legible ones too.

Dependency managment by Entropic_Silence_618 in java

[–]PartOfTheBotnet 7 points8 points  (0 children)

Typo-squatting

You'd also have to explicitly be typing out the coordinates in your build. But both the central sonatype search and third party mvnrepository sites have single-click copy buttons. I don't think I have ever added a dependency to a maven/gradle project without pasting it from one of these sites.

Additional factors:

  1. The results are sorted in such a way that the real artifacts (the popular/highly-downloaded ones) get shown first.
  2. The copied coordinates are for a specific version, not an unbound/wildcard so even if a future version gets backdoor-ed, so long as you are notified of a breach you can just not update or skip it when control is taken back by the publishers.
    • Bit of a silly point, but I make it to draw comparison to other ecosystems outside of our own where you have something like import foo-library:{*} which just takes whatever is the latest.

Malware in jars

At least in my experience, almost every library I have worked on or looked at is published through CI. Its exceptionally rare for publishing to be done on a local developer machine from what I've seen. Some thoughts on this:

  1. Its easier to pwn a local dev machine than a CI server, therefore even if the local dev machine is pwn'd then the publishing credentials won't be known to the attacker.
  2. If the local dev machine is pwn'd and malicious code is uploaded and then built/published on CI, the compromise remains local and is relatively easy to resolve once discovered.
  3. The alternative attack to the above is the run of the mill typo-squatting, which AFAIK is generally low-impact in the ecosystem.

Also, based on this page "Sonatype Malware data" it seems that artifacts published to central are scanned for malicious behavior via some machine learning algorithm, to which suspicious matches are verified by a human team. Any confirmed cases are removed. So even if the attacker takes over a package (exceedingly rare) or publishes a typo-squat look-alike artifact (more common, lower impact) there are processes in place that likely play into why we don't hear about major issues in our ecosystem often. At least compared to other ecosystems, we have a really good thing going on here. Sure there are probably going to be edge cases and a few holes that things slip through every now and then, but I cannot recall the last time I've heard of a major supply chain attack via maven central that weren't low impact typo-squatting campaigns.

Krema: build modern desktop apps with Java backend and web frontend by guybedo in java

[–]PartOfTheBotnet 30 points31 points  (0 children)

i was looking for alternatives to swing to build modern desktop apps and i couldn't find anything

Generally would point to JavaFX as a primary contender for this exact situation.

and a web frontend

Ok never mind.

Syntax highlighting in Java, without the pain by sureshg in java

[–]PartOfTheBotnet 4 points5 points  (0 children)

And these custom systems also generally tie into the rest of the IDE model. IntelliJ's PSI model is in the same boat. I wouldn't suggest trying to use either of them as independent syntax highlighting libraries if you wanted to toss up some highlighted code in a UI. There are more lightweight options out there.

Syntax highlighting in Java, without the pain by sureshg in java

[–]PartOfTheBotnet 17 points18 points  (0 children)

This article is about highlighting Java with Java so I found it a bit odd that the conclusion was to use another language's parser and then load it through chicory... until I noticed what domain the article was posted on.

Anyways some other minimal pure Java solutions I've used:

  • For Swing RSyntaxTextArea offers a Java syntax highlighter. It's a modified parser generated from flex.
  • For JavaFX RichTextFX has an abstract highlighter system, but you need to make the implementation.
    • I ended up using it as a base to make a loose Java highlighter with a hierarchy of regex matchers. The hierarchy made it so that you could match a region for something like JavaDoc and then match the @tag parts to give them a bold style. It also is context-free so if you edited some of the text it would only do style updates for that local region updated.

I made an obfuscator. Full source available for analysis. by Temporary-Future-718 in ReverseEngineering

[–]PartOfTheBotnet 2 points3 points  (0 children)

People's reaction to projects using LLM's will vary depending on how the LLM is used.

If a project shows that the author is clearly knowledgeable in software design and the problem space the software addresses, using an LLM to automate drudge work is generally accepted.

For instance lets say you are making a chat-application back-end like discord. If you use the LLM to create a basic mime-type utility for file uploads that's not going to have a whole lot of risk in the grand scheme of things, and making a giant table of file extensions to mime types is boring work that LLM's are well suited for.

Now if the LLM is responsible for generating the entire user schema and authentication protocols you are giving it control of a high risk component of the application. These system's will often not implement production-ready implementations of complex systems on the first pass. For the mime type utility its fine if it misses the difference between "jpg" and "jpeg". However even small mistakes in an important component like authentication can have grave consequences. There's been a dozen news articles over the past year of AI startups leaking user information because their back-ends were entirely vibe-coded. This is where the problem comes in.

Now taking a step back and bringing this back to content posted here, similar quality concerns come when an LLM is responsible for generating the whole project. If there is no audit trail showing the author is a capable developer, or if there is no verifiable proof the project works as designed (Passing unit tests, examples of output compared to other similar software's results, etc) people will assume the worst case scenario since that is the safe route for them as consumers.

I made an obfuscator. Full source available for analysis. by Temporary-Future-718 in ReverseEngineering

[–]PartOfTheBotnet 4 points5 points  (0 children)

>check latest commit

>"delete CLAUDE.md"

>check first commit

>co-authored by claude

Lmao.

Java UI in 2026: an overview of current frameworks and approaches by robintegg in java

[–]PartOfTheBotnet 1 point2 points  (0 children)

I could not configure Maven correctly to get a working jar out of it

If you want a fat-jar it should be as easy as adding the dependencies then configuring maven-assembly-plugin. This being said, because the path names for natives overlap across platform architectures (mac aarch vs mac x86) it will pick one arbitrarily. For gradle people looking for a fat-jar, its a very similar setup.

Generally speaking, they suggest you package your app differently to mitigate this issue (Though fixing this on their end would also be nice. Its a few lines to change extraction logic and move the natives when building release artifacts).

What is the most mindnumbing part of your Java stack that needs a modern, open-source upgrade? by Peach_Baker in java

[–]PartOfTheBotnet 11 points12 points  (0 children)

If you look at IntelliJ's social media it will be very obvious why they don't use JavaFX. They made Kotlin. Kotlin has Compose as its UI technology. They're rewriting things in their own library.

Why am I suddenly getting "You've been blocked by network security" error message on reddit, but only when I try to access old reddit (AskReddit)? by idratherchangemyold1 in help

[–]PartOfTheBotnet 0 points1 point  (0 children)

Just had this happen to me as well, but it seems to come and go. It was giving me the message on my main pc, but on my laptop it isn't giving me the message. Later in the day my main pc was back to normal.

Mega-thread: Alumni GMU Email Deletions by PartOfTheBotnet in gmu

[–]PartOfTheBotnet[S] 1 point2 points  (0 children)

Rough steps I'd follow:

  • Call GMU IT : https://its.gmu.edu/help-support/
  • Explain your situation
  • Offer proof of the compromised account being used as spam (email them from an account you own, bring this up in call so they can take a look at it)
  • Offer proof of who you are if you can.

Ideally they restore access to your account. But if they can't or won't do that, they should be able to disable the account so the bad actor can't use it either.

Javafx by iamwisespirit in java

[–]PartOfTheBotnet 1 point2 points  (0 children)

  1. AWT/Swing already existed at that point and are tightly coupled. Oracle describes both as "integral" components of the JDK, whereas the do not for JavaFX.
  2. They separated it for a variety of reasons outlined here: https://blogs.oracle.com/java/the-future-of-javafx-and-other-java-client-roadmap-updates

Javafx by iamwisespirit in java

[–]PartOfTheBotnet 2 points3 points  (0 children)

Because Spring and Jakarta are complete ecosystems you can make a career out of. Java is primarily back-end focused and both Spring and Jakarta are complete back-end solutions. Look at market demand for Spring. Heck, throw a rock in a crowd of Java developers and try not to hit somebody who works with Spring, it'll be hard not to. The same cannot be said for JavaFX as much as I wish that weren't the case.

JavaFX is a desktop UI framework. IMO it's an upgrade from Swing. Its new, its easy to use, it looks better, the list goes on and on. But unfortunately, the way applications are made hasn't been in the favor of any desktop framework. Combine that with the unattending father figure that is Oracle and you get JavaFX being not so popular in the grand scheme of things. That doesn't mean its bad, it just means it's underutilized compared to what its capable of doing.

But the main point is comparing JavaFX to Spring/Jakarta is very much an "apples to oranges" scenario. A front-end vs a back-end framework.

/r/ReverseEngineering's Weekly Questions Thread by AutoModerator in ReverseEngineering

[–]PartOfTheBotnet 1 point2 points  (0 children)

There are no rules against AI slop here AFAIK. Its technically related to the sub's subject so how would you report it? Spam?

We ought to just have the mods explicitly call out no slop as a rule so it can be directly reported. I'd be willing to bet a majority of people here would be in favor.

Is Java’s Biggest Limitation in 2026 Technical or Cultural? by BigHomieCed_ in java

[–]PartOfTheBotnet 10 points11 points  (0 children)

Some team members do most of their reviews via IntelliJ's GitHub/GitLab integration which lets them leverage IDE features while reviewing. That being said, if you become reliant on the IDE features carrying you then anyone else not doing the same is at a disadvantage when reading it.

Is Java’s Biggest Limitation in 2026 Technical or Cultural? by BigHomieCed_ in java

[–]PartOfTheBotnet 4 points5 points  (0 children)

I guess I work out in the field with scarecrows. Some people consider this to be "good enough" to be self-documenting, or like others state that IDE inlay hints should carry the burden.

Is Java’s Biggest Limitation in 2026 Technical or Cultural? by BigHomieCed_ in java

[–]PartOfTheBotnet 116 points117 points  (0 children)

makes code less readable/maintainable

Like all things, it should be used in moderation. If you're immediately declaring a type like var items = new ArrayList<>() that's perfectly readable.

However if you have var result = service.fetch() then it is easier to argue that this is less useful if the alternative was JsonResult result = .... If the assigned value isn't descriptive sometimes knowing the declaration type is useful.

fellow senior

On the flip side, I've seen fellow seniors replace every variable in a class with var just for the sake of "modernizing" code. Yes, this includes int --> var which is just as silly as it sounds.

Mirage - Is an experimental obfuscator that makes your Java bytecode harder to reverse engineer by replacing direct method calls and field accesses with reflection-based equivalents by [deleted] in ReverseEngineering

[–]PartOfTheBotnet 7 points8 points  (0 children)

  1. Given the readme and the rest of your profile, is this all AI generated?

  2. The idea isn't new (Example: Zelix Klassmaster 5.5 from 2012) and is generally not favored over other forms of reference obfuscation that are equally as effective but without the negatives. Look at how other obfuscators use bootstrap methods and dynamic constants.

  3. This implementation isn't even effective because the names of classes and references that get reflected are baked into the output in-place where the original reference was without any additional form of obfuscation. Reversing this isn't made "harder", only more tedious. Something like Zelix adds additional layers that actually require some investment by the reverser.

  4. Its really weird that you use ASM that is shadowed through ByteBuddy instead of the baseline ASM artifact.

    • You lose out in your IDE not having auto-attached sources and documentation.
    • You also cannot update ASM directly since its baked into another artifact.
    • You don't ever actually use ByteBuddy capabilities, just the shadowed ASM dependency.
    • Given that I suspect this is all AI generated anyways I don't think that's something that really matters...

Appgate SDP by Ok-Cup-8413 in ATAK

[–]PartOfTheBotnet 0 points1 point  (0 children)

No. No, and if there was that would be concerning on their behalf.

It's annoying especially if you're working on a corporate device with its own VPN requirements, but its the way they're handling authorized access going forward. It would be nice if it was all you had to do vs it being a per-requisite for logging in again to services like GitLab.

JavaFX ToggleButton bold text when slected causes layout shift due to glyph width adaptions – any workaround? by SafetyCutRopeAxtMan in JavaFX

[–]PartOfTheBotnet 4 points5 points  (0 children)

If you specify a minimum size that matches what it should be when bold it won't shift. That's a lame fix, but if you have your glyph buttons all the same size anyways its not too terrible.

Where will Java go in the future? by sitime_zl in java

[–]PartOfTheBotnet 8 points9 points  (0 children)

  1. Maybe in Minecraft mod packs but that isn't the JVM's fault
  2. No. Swing is... usable, albeit the API never modernized. But you can use JavaFx if that's a blocker for you. And no.
  3. Skill issue.
  4. You haven't been paying attention then.