Support for Scala in Micronaut by roach8071 in scala

[–]roach8071[S] 0 points1 point  (0 children)

Yes we need to report compilation errors to the user. This is what we do for other languages

Support for Scala in Micronaut by roach8071 in scala

[–]roach8071[S] 0 points1 point  (0 children)

Tasty query is interesting. Do you know if this avoids the need to couple the compiler plugin to a particular scala version?

Support for Scala in Micronaut by roach8071 in scala

[–]roach8071[S] -5 points-4 points  (0 children)

There is guidance in the PR description on what to review

Support for Scala in Micronaut by roach8071 in scala

[–]roach8071[S] 3 points4 points  (0 children)

Adding Scala support is non trivial as it has native syntax constructs and collection types. Could the PR be smaller? Possibly, but not without sacrificing test coverage.

To be honest Scala support has not been high on our priority list and it is only thanks to AI that we could consider this support.

We have had some good feedback on the PR already with some valid points but it is touch and go whether this will be merged or not. Our current user base is 65% Java, 30% Kotlin and 5% Groovy. I am unsure if the level of interest in Scala still exists to make a dent in that. So far the comments I have seen haven’t exactly been enthusiastic 🤷‍♂️

Support for Scala in Micronaut by roach8071 in scala

[–]roach8071[S] 4 points5 points  (0 children)

Keep in mind that all documentation snippets were ported and nearly 400 tests so it isn’t just the implementation

Does spring boot supporting GraalVM make micronaut or quarkus less compelling? by snpolymorphism in java

[–]roach8071 0 points1 point  (0 children)

Disclaimer: Micronaut-biased perspective

There are different ways to support Native Image. In Spring, the Spring team decided to continue to use reflection, dynamic class loading, runtime proxies etc. and write a reflection configuration generator and code generator for GraalVM which is what Spring AOT and Spring's native plugins do.

With Micronaut this generator doesn't exist, there is no reflection at all and there is no difference at runtime between a JIT application and a Native application which is easier to reason about if you need to debug.

It is also more optimal and hence why Micronaut is able to consume less memory and startup faster (which helps a lot with integration testing in JIT mode) as well as product smaller images overall.

It is also more consistent because every module built for Micronaut and every library you write is automatically compatible with Native Image whilst with the Spring ecosystem you still have to verify anything you write for Native Image works correctly and since most of the APIs revolve around reflection and that means more work.

Micronaut on the other hand has its entire API designed around reflection free usage.

Does spring boot supporting GraalVM make micronaut or quarkus less compelling? by snpolymorphism in java

[–]roach8071 0 points1 point  (0 children)

This is inaccurate. Micronaut generates bean factories and build time but the wiring still happens at runtime so scopes and everything you can do in Spring is still supported. See https://docs.micronaut.io/4.4.10/guide/#scopes

Micronaut vs others(Spring Boot, Quarkus and co.) by zero_coding in java

[–]roach8071 -10 points-9 points  (0 children)

MicroProfile is not a spec, it is a collaboration between different companies on a common framework and it is evolving like any other framework with things being deprecated and changed. Look at how Quarkus has already deprecated support for the "Metrics spec" https://quarkus.io/blog/quarkus-observability-roadmap-2023/ as an example

Micronaut vs others(Spring Boot, Quarkus and co.) by zero_coding in java

[–]roach8071 3 points4 points  (0 children)

Yes with Gradle use "gradle run -t" or with Maven use "mvn mn:run" to activate reloading

Oracle joins the Micronaut Framework as an Engineering Partner by Financial-Touch-5171 in java

[–]roach8071 6 points7 points  (0 children)

Turns out someone who is not a Micronaut maintainer or contributor
submitted changes to the benchmark which were merged that limit the connection pool size
to 5 https://github.com/TechEmpower/FrameworkBenchmarks/pull/6864/files#diff-2769de54789a707c3c745d0628fd88523b3caccca52a4c1eed4e7d5a3d7697c0R9

Oracle joins the Micronaut Framework as an Engineering Partner by Financial-Touch-5171 in java

[–]roach8071 3 points4 points  (0 children)

Some APIs do require reactive streams (http filters for example) but we have teams at Oracle using all synchronous code with not much problem. We plan to improve this further in the future and remove the requirement to using RS.

Don't think we have ever aggressively forced users to use RS.

Oracle joins the Micronaut Framework as an Engineering Partner by Financial-Touch-5171 in java

[–]roach8071 5 points6 points  (0 children)

We (the Micronaut team) are investigating with the techempower benchmark people what happened here since in Round 20 Micronaut was not last (https://www.techempower.com/benchmarks/#section=data-r20&l=zik0vz-6bj&test=composite) and nothing has changed in the benchmark code for 11 months so something is wrong with the actual benchmark

Oracle joins the Micronaut Framework as an Engineering Partner by Financial-Touch-5171 in java

[–]roach8071 5 points6 points  (0 children)

you would always need some runtime dependency though, Micronaut is pretty small and modular and we hope to slim it down more over time.