It's Advent of Code time again. 🎄 If you haven't tried Scala yet, this is the perfect opportunity. But don't take my word for it, check out what these three random guys on the internet have to say. 🤣 👇 #scala #AdventOfCode
Those tools the guys are talking about are honestly awesome. In short, when you want to communicate with another service, you simply add a contract to the central registry. Everything else is generated automatically, so you only need to implement the business logic without worrying about JSON serialization or route configuration. #scala
Metals 1.6.4 is out 🎉 It features improvements for Java, VS Code lenses and sbt error diagnostics. Automatic imports on copy-paste were also reworked. Plus, this release is already prepared for Scala 3.8. #scala
Java devs, have you noticed that List, Optional, and CompletableFuture all behave like containers you can map over? Yet, the syntax is inconsistent. Sadly, you can't write an interface to enforce a common API, at least not in Java. Search for "Higher-Kinded Types" if you're curious how other languages like Scala solve this. #java
Java devs, have you noticed that List, Optional, and CompletableFuture all behave like containers you can map over? Yet, the syntax is inconsistent. Sadly, you can't write an interface to enforce a common API, at least not in Java. Search for "Higher-Kinded Types" if you're curious how other languages like Scala solve this. #java
The biggest shift in Scala 3.8 is that the standard library is finally being built with Scala 3 (up until now, it was still Scala 2!). So, what changes for us end users? Absolutely nothing! And that’s beautiful. 🧘♂️ #scala
"Better-fors" are leaving preview with the release of Scala 3.8. It looks like a small DX upgrade, but under the hood, the desugaring is a lot simpler, skipping redundant `.map` calls. See the official documentation. #scala
Apparently, there was an experiment called "Lasca" which tried to shift #Scala more towards #Haskell. Based on the readme, it was planned to feature full type inference and be LLVM based. Funnily enough, in Czech 🇨🇿 the name means "Love" ♥️
Quick clarification☝️Just because Scala itself targets JDK 8 doesn't mean your app has to! You're free to use any JDK 8 or newer. Scala 3.8 will raise the minimum required JDK to 17, but you'll still be able to use the latest JDKs (21, 25, etc.) for your own projects. #scala #jdk View quoted note →
With #Scala 3.8 around the corner, let's recap its biggest changes:
1️⃣ JDK 17 as a minimum version
2️⃣ "Better fors" (SIP-62)
3️⃣ Standard library built with Scala 3
The biggest improvements in #Scala 3 are not enums or nicer implicits syntax, but:
🤝 Making binary compatibility across versions possible (via TASTy)
⚡ A built-in interactive compiler (instead of a batch tool)
🔗 A modular architecture that makes new features easier to add
Streams are a powerful tool for control flow, covering topics such as event handling, file processing, reading from the database... Learn more from Zainab Ali's talk at the London Scala User Group. #scala