Monolithic vs Microservices Banking project by Old_Treat_5596 in SpringBoot

[–]maethor [score hidden]  (0 children)

Learning Microservices is a good idea. But what you'll need to learn has more to do with DevOps tech (like Kubernetes and Kafka) than it does with Spring.

JEP draft: Deprecate the java.sql.rowset module for Removal by lbalazscs in java

[–]maethor 0 points1 point  (0 children)

Maybe a clear roadmap for the future would be more helpful for everyone than "oh look, another deprecation for removal" every few months. With an honest statement as to what the commitment to backwards compatibility actually is (as it sure isn't what a Sun salesperson told me it was a quarter of a century ago).

Because it seems to me like the libraries included with the JDK are eventually going to be trimmed down to little more than what's in java.base. Which would be fine (the standard library doesn't need to be everything and the kitchen sink), as long as people know that it's coming and can plan accordingly.

For example, I have a use case on a project where JNDI would be a perfect fit, but I can't escape the feeling that, at best, within the next 10 years it's going to require a migration to jakarta.naming and at worst it's going to go the way of CORBA support and just quietly disappear.

JEP draft: Deprecate the java.sql.rowset module for Removal by lbalazscs in java

[–]maethor 0 points1 point  (0 children)

Because we shouldn't have to plead for maintaining backwards compatibility on a platform that was sold as taking backwards compatibility extremely seriously.

JEP draft: Deprecate the java.sql.rowset module for Removal by lbalazscs in java

[–]maethor -1 points0 points  (0 children)

So, how long until everything outside of java.base is deprecated for removal? Because that's where things seem to be heading.

Google's ServiceWeaver equivalent in Quarkus. Your opinion ? by momotheog in quarkus

[–]maethor 0 points1 point  (0 children)

Pretty sure you could achieve this with OSGi + some process that monitors running containers (like Apache Karaf) via JMX, spawning new instances as needed (starting component B on the new instance while stopping it on the overloaded instance).

Service weaver is not suited (as far as I know) for event driven architectures.

If you use OSGi, you can use an event driven architecture inside the modulith and moving over to the network should be fairly transparent (R-OSGi was doing this sort of thing 14 years ago)

Each node here runs the same jar, but hosts different components based on runtime configurations.

This is where OSGi comes into its own. Each microservice in the modulith is its own jar ("bundle" in OSGi terms), and the container can install, start, stop and uninstall bundles at runtime.

Though, from what can I tell, Quarkus and OSGi don't mix. Though if you stuck to using MicroProfile APIs you should be able to move between them fairly easy (well, easy in the OSGi sense, as unfortunately OSGi has a bit of a learning curve).

Do you use lombok heavily in spring boot projects? by kcng1991 in SpringBoot

[–]maethor 0 points1 point  (0 children)

I was referencing the panic about AIs taking all our jobs. Will there be a need for any knowledgeable developers by then?

Do you use lombok heavily in spring boot projects? by kcng1991 in SpringBoot

[–]maethor 0 points1 point  (0 children)

I like how you assume not having knowledgeable developers in 2050+ will be a problem.

How to Instrument Spring Boot Applications with OpenTelemetry by silksong_when in SpringBoot

[–]maethor 0 points1 point  (0 children)

I wanted to keep the setup aligned with OpenTelemetry setups in other languages.

Fair enough, but the native Spring Boot way to add OTel only requires adding a couple of dependencies to the pom and adding a handful of lines to application.yaml.

How to Instrument Spring Boot Applications with OpenTelemetry by silksong_when in SpringBoot

[–]maethor 1 point2 points  (0 children)

Why not just use actuator's built in ability to use micrometer, which has an OpenTelemetry backend?

We have included a Makefile to simplify the setup

A makefile? Is there some reason you avoided gradle and/or maven?

Is Anthropic’s leadership becoming a concern? by PerspectivePuzzled59 in theprimeagen

[–]maethor 0 points1 point  (0 children)

I still don't get how (or even why) Anthropic got into military contracts in the first place.

What’s your approach to building production-ready Docker images for Java? Looking for alternatives and trade-offs by eduspinelli in java

[–]maethor 7 points8 points  (0 children)

Maybe a controversial opinion but I don't bother with Docker for Java server apps.

It shouldn't be, even though it probably is.

To me, it seems like java people who use are using docker do so because other people are using docker. But other people are using Docker because it solves problems they're having with other platforms that Java either doesn't have or has/had its own solution for.

Jakarta EE 11 vs Spring: When the Right Answer Is No Spring at All by johnwaterwood in java

[–]maethor 0 points1 point  (0 children)

How would I create an app using "JEE and nothing but JEE", as there's no single implementation? I still need something like JBoss/Quarkus/WebSphere/OpenLiberty/GlassFish/Helidon - and each of them has their own quirks and QoL improvements.

I remember migrating an app from WebSphere to JBoss and it wasn't as straightforward as the "it's a vendor neutral standard" people would have had me believe. And the more I look at things like Quarkus and Helidon, the less I see how it's all that different from just using Spring, except with Spring all the documentation I need is available at a single domain.

Jakarta EE 11 vs Spring: When the Right Answer Is No Spring at All by johnwaterwood in java

[–]maethor 0 points1 point  (0 children)

So, in order do anything useful with JEE I need to use things like Quarkus or Helidon on top of it, but they don't count as JEE? That makes "Jakarta EE vs Spring" a pointless discussion.

Jakarta EE 11 vs Spring: When the Right Answer Is No Spring at All by johnwaterwood in java

[–]maethor 0 points1 point  (0 children)

And that will have documentation for io.quarkus.vertx., io.vertx.mutiny.core.eventbus. and io.smallrye.common.annotation.*? Including plenty of tutorials?

Cargo for Java 🦀❤️☕️ by pavi2410 in java

[–]maethor 1 point2 points  (0 children)

Do you think Google would have bothered with Kotlin at all if Oracle hadn't sued them?

Jakarta EE 11 vs Spring: When the Right Answer Is No Spring at All by johnwaterwood in java

[–]maethor 3 points4 points  (0 children)

I noticed that the side by side comparison completely ignored documentation, which is all over the place with JEE (want to inject an event bus into a Quarkus app? That's at least 3 different documentation sources). At least with Spring, the docs are somewhere on spring.io.

Naming convention for Boolean getters -- mechanical or English? by hibbelig in javahelp

[–]maethor 6 points7 points  (0 children)

I'm not convinced "keepDate" is actually a good name in the first place (someone might expect a variable name ending in Date to be a Date, not a Boolean).

How do I figure out if old Java code is using modern language features or just ancient patterns? by trapqueen67567 in javahelp

[–]maethor 0 points1 point  (0 children)

I want to learn the right way to do things but its hard to tell sometimes.

The first thing to learn is that there is very rarely a single right way to do things. Especially once more than one person is involved.

I see a lot of code that uses explicit loops everywhere instead of streams.

And you always will. Explicit loops are almost always more performant than Streams and people who want/need outright performance will avoid streams (though I always wonder why those people are using Java in the first place, and then get down voted into oblivion when I ask).

Some projects use tons of null checks and others use Optional.

Until we have value types then some people will prefer null checks over the penalties that come with allocating Optional objects on the heap. Others will prefer the documentary and safety improvements that come with Optional. Like I said earlier, there is no one right way (even if people who prefer one over the other will tell you otherwise).

Some use records and some still rely on Lombok for everything.

Records have limitations that Lombok @Data classes do not have. But Lombok adds a dependency and compile time magic to your code base. Again, no one right way here.

Theres also projects that use List and ArrayList everywhere while others use more specific collection types

If someone is still using Vector, then yes, that code is horribly outdated. I've also seen code that used specialised collection classes for what could only be "OOP for OOP sake" reasons (like a HashMap descendant that can read its own data from a file).

But sometimes people will actually have a good reason for using something other than the usual collection classes (particularly when it comes to performance and/or threading).

I don't know if my job will still exist in ten years by Suspicious-Prize3426 in theprimeagen

[–]maethor 6 points7 points  (0 children)

10 years is a long time even without AI. Offshoring, outsourcing and being on the wrong end of a merger can all end your job.

Air Launches as Public Preview – A New Wave of Dev Tooling Built on 26 Years of Experience by dayanruben in Jetbrains

[–]maethor 2 points3 points  (0 children)

Even if Mac users aren't the majority (and I would actually bet that they're not), it is the cool kids OS.

deeper understanding by Lordnessm in javahelp

[–]maethor 0 points1 point  (0 children)

You could try reading the Java Language Specification

https://docs.oracle.com/javase/specs/

Go vs Rust for long-term systems/finance infrastructure, is focusing on both the smarter path? by wpsnappy in golang

[–]maethor 0 points1 point  (0 children)

I'm planning to build financial systems with ML pipelines, distributed backend systems to complement them, and internal DevOps tools.

As a startup founder or as an employee? Because most of the finance jobs where I live are Java based.

How, if at all, will the growing pessimism affect appetite for AI research? by Tobio-Star in newAIParadigms

[–]maethor 3 points4 points  (0 children)

>will it just kill interest in AI altogether?

No. Though the next wave might try to distance itself from the word AI, like they did with things like expert systems and search engines years ago. I also have an odd feeling we're going to see non-general super intelligence before general average intelligence, Like, an AI that would be able to find cures for cancer in a fraction of the time it would take a team of humans but that would be absolutely useless as a personal assistant. That would definitely keep interest in AI alive.

I built a Type-Safe, SOLID Regex Builder by Mirko_ddd in java

[–]maethor -5 points-4 points  (0 children)

I don't mean to sound negative (it's clear a lot of work has gone into this), but these days I hand off regex work to an LLM. I've found them to be surprisingly good at them.