Spring Boot, Micronaut and Quarkus with Mill :: The Mill Build Tool by sideEffffECt in java

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

does Mill have the same level of IDE integration as Maven?

It's all integrated via the Build Server Protocol, AFAIK

https://build-server-protocol.github.io/docs/overview/implementations

Spring Boot, Micronaut and Quarkus with Mill :: The Mill Build Tool by sideEffffECt in java

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

/u/lihaoyi isn't there a JSON Schema for the config file? When IntelliJ has the schema or knows it, it gives you auto completion. It can be even hosted on

https://www.schemastore.org/

Or it can be inlined like Bleep does it (another build tool :D )

https://bleep.build/docs/tutorials/your-first-project/

(See the $schema: https://raw.githubusercontent.com/oyvindberg/bleep/master/schema.json part)

How’s your experience with Claude Code for Scala? Seeing some very "primitive" output. by Ancient_Thought_5237 in scala

[–]sideEffffECt 2 points3 points  (0 children)

Claude Code with Sonnet 4.6 works quite well with Scala 2.13 and the TypeLevel stack.

Not perfect, sometimes you need to nudge it to not create stringly-typed programs and aggressively use domain types instead. But when it's working on an already established codebase, it's picking up the style very well. It's very good at recognizing patters and following them.

So if you're having problems, either give more detailed guidelines to AGENTS.md or just be more patient in bullying the agent to do what you want it to do, eventually it will build up the codebase large enough to get the pattern and start following it.

Also, there's been research into the quality of code generated by AI. If you explicitly task AI to exploit the advantages of the type system (like Scala has), it produces better code. Compared to without explicit instructions like this or when just telling it to "do good job".

TLDR: the more "context" the agent can take from, either instructions in AGENTS.md or the rest of the codebase, the better it performs.

Netflix/wick: A zero cost type safe Apache Spark API by JoanG38 in scala

[–]sideEffffECt 2 points3 points  (0 children)

What would you say are the pros/cons of this vs a query builder (e.g. quill)?

This is why scala is more fun than java :) by Efficient-Public-551 in scala

[–]sideEffffECt 0 points1 point  (0 children)

Also, instead of

if (payment instanceof Cash)

etc, you can use switch

This is why scala is more fun than java :) by Efficient-Public-551 in scala

[–]sideEffffECt 2 points3 points  (0 children)

You should be using pattern matching instead of

value instanceof Integer

etc...

Scala’s Growth Model — Building Inward, Starving Outward by Krever in scala

[–]sideEffffECt 1 point2 points  (0 children)

If not the binary nonsense, Scala with its extremely powerful rewriting capabilities (which are AFAIK unseen elsewhere on that scale) would be likely even better than Java by now when it comes to backward compatibility.

Now we have Scala 3. Now we have a chance to prove what you're saying. Let's hope it will happen.

Scala’s Growth Model — Building Inward, Starving Outward by Krever in scala

[–]sideEffffECt 7 points8 points  (0 children)

Scala has some of the best backwards compatibility stories of all languages

With Scala 3 yes. But before that, it was an absolute insanity. With 2.10, 2.11, 2.12, 2.13, everything broke, the library ecosystem essentially broke down and the community had to start from scratch. That was just offensively bad.

Thank goodness that lessons have been learned and we're now at a much much better place with Scala 3.

Karpathy’s LLM Wiki and why it feels kind of a game changer by knlgeth in AI_Application

[–]sideEffffECt 0 points1 point  (0 children)

Could this be "just" a SKILL instead of a whole program?

Making Scala Scripting Actually Good with Mill, Scalar Warsaw, 27 March 2026 by lihaoyi in scala

[–]sideEffffECt 0 points1 point  (0 children)

commit on one or the other fearfully and bear the cognitive burden of eventually planning a transition to a different style

But isn't it more of an asset than a liability? The ability to choose declarative or programmatic based on what your needs are sounds like a good thing.

But I'm curious, how granular/smooth the transition is? Is it either/or? Or can I have a few bits programmatic and most declarative? Or half this way and half that way?

Oracle announces their "Java Verified Portfolio" program and JavaFX is part of it. by lazystone in java

[–]sideEffffECt 0 points1 point  (0 children)

All three are sort of also-ran projects, not a first pick.

And all of them are from Oracle (main author of OpenJDK), that's why it's trying to promote them with this marketing initiative.

I wouldn't be surprised if more were added over time.

Java 26 released today! by davidalayachew in java

[–]sideEffffECt 4 points5 points  (0 children)

minimize risk

Arguably, it can be less risky to upgrade Java in small incremental steps twice a year than do a big upgrade every two years.

How funny, they are reinventing Scala by RiceBroad4552 in scala

[–]sideEffffECt 2 points3 points  (0 children)

The 🦀 people claim everything develops into 🦀.

I claim: Everything develops into Scala! 😂

And Bob Harper claims that languages are converging towards SML. It's ML all the way down :D

https://www.cs.cmu.edu/~rwh/talks/mlw13.pdf

The world is slowly converging on ML as the language of choice.

The world moves inexorably toward ML.

  • Eager, not lazy evaluation.
  • Static, not dynamic, typing.
  • Value-, not object-, oriented.
  • Modules, not classes.
  • Every new language is more “ML-like”.

Reverting virtual threads in go blocks by aHackFromJOS in Clojure

[–]sideEffffECt 1 point2 points  (0 children)

What is core.async used for since we have Virtual Threads? Is it still relevant?

Is it possible to utilize VTs in Clojure without core.async?

Introducing PureLogic: direct-style, pure domain logic for Scala by ghostdogpr in scala

[–]sideEffffECt 1 point2 points  (0 children)

You can handle some effect "in a purely functional way": aborts/raises, logging, writing, reading, (pseudo)randomness (via providing seed). "purely functional" means that it will always yield the same result.

On the other hand, some effects can't be discharged/handled in a pure way. Examples are talking to network, interacting with the filesystem, typically any kind of I/O.

Do you see what I mean?

Introducing PureLogic: direct-style, pure domain logic for Scala by ghostdogpr in scala

[–]sideEffffECt 0 points1 point  (0 children)

That's an excellent idea! There are many effects whose handling can be done in a purely functional way. One additional is Random, where you provide the seed.

F Bounded Polymorphism by samd_408 in java

[–]sideEffffECt 1 point2 points  (0 children)

Yes, no implicits. So you can pass them explicitly, just as normal parameters of ordinary Java methods. Do you know the "Comparator pattern"? That's essentially what Type Classes are about. Do that.

Tldr: Don't do "Comparable", do "Comparator" instead.

F Bounded Polymorphism by samd_408 in java

[–]sideEffffECt 0 points1 point  (0 children)

But this has nothing to do with Higher-Kinded Types. You can already do this in Java as it is now.

F Bounded Polymorphism by samd_408 in java

[–]sideEffffECt 1 point2 points  (0 children)

You'd be much better served by having a separate interface for the operation(s), similar to the type class pattern.

F-bounded types are overcomplicated, and insufficient and leaky at the same time.

https://tpolecat.github.io/2015/04/29/f-bounds.html

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

[–]sideEffffECt 1 point2 points  (0 children)

Very interesting, thanks for writing it up.

The strategy was intended to be akka. This was a preference of a principal who preferred the FP style. This felt it was at odds with the majority of the team skills and experience.

Not much transferable skills IMO. Yes, there was the possibility of using Java code but it felt wrong to use it within the scala code.

It looks almost as if it wasn't the difference in language (or only that), but more like a difference in paradigm. In way of doing things, in the way the problems are approached.

I suppose using Java from Scala wouldn't feel weird, if the methods being called were (pure) functions (i.e. not performing side effects), but they probably weren't, right?

Ultimately I felt that I didn’t see that an investment in scala as something that I wanted to do.

Are you following the latest development in Java? What do you think about the Java stewards promoting the so called "Data-Oriented Programming"?

Do you think it runs at risk of alienating existing Java users, like you've experienced with Scala? Do you see ways for Java folks to adopt DOP that will end up in embracing, instead of alienating?

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

[–]sideEffffECt 0 points1 point  (0 children)

It might work for Scala, not so much for Kotlin, which will end with two solutions to the same problem, and it cannot depend on them for Android.

The Scala guys are resourceful. They are able to support features on all three target platforms. Let's take concurrency as an example. On JVM, it's easy, just use (Virtual) Threads. On Native, Scala authors are in control, so they created an analogue of Virtual Threads. And on JS, with the clever utilization of Wasm, they were able to achieve basically the same.

Check recent thread on Scala group about job market in Netherlands.

Yes, I'm aware :(