With #Java's evolution (discriminated unions, pattern matching, virtual threads), are #Scala / #Kotlin still worth it?
Scala & Kotlin have a culture of doing things at compile-time, the former more so than the latter.
This yields safety & expressiveness, and is reflected in features that Java will never implement, in platforms that it will never target well, or in paradigms it will never embrace.
Java is still Java, and you're stuck with Spring, Hibernate, and Jackson, sorry.
@alexelcu I'm enjoying Kotlin, but I have to venture into Java just as often, and I can say I still appreciate developments there. I once heard Brian Goetz explain InvokeDynamic in the JVM at a DevOxx congress, which was instrumental for Lambda expressions, and I was impressed with how they make these feature puzzles, with Java acting as a custodian of compatibility.
I wish Scala was a simpler language because it was many people's first encounter with functional programming and it seems that it left a bad taste on them because of having too much features. People seem to relate their experience in Scala to functional programming in general.
Don't get me wrong. I prefer Scala in overall than any other JVM language (including Kotlin). But it has the same issue with the C++ that everyone uses a different subset of it.
The systems programming language that the co-creator of #WASM has been working on for over 20 years:
#Virgil is a programming language designed for building lightweight high-performance systems. Its design blends functional and object-oriented programming paradigms for expressiveness and performance. Virgil's compiler produces optimized, standalone native executables, WebAssembly modules, or JARs for the #JVM. For quick turnaround in testing and debugging, programs can also be run directly on a built-in interpreter. It is well-suited to writing small and fast programs with little or no dependencies, which makes it ideal for the lowest level of software systems. On native targets, it includes features that allow building systems that talk directly to #kernel, dynamically generate machine code, implement garbage collection, etc. It is currently being used for #vm and programming language research, in particular the development of a next-generation #WebAssembly virtual machine, Wizard.
What I haven't liked so far from kotlin is that is so tied to android that you hardly find a kotlin library for kotlin and most of it is specific for android
at least on my naive searches so far
@stuartmarks@snatverk we were lucky enough to have Juan stop by #Netflix a few weeks ago to talk to our performance engineering and #JVM teams about #TornadoVM…really awesome to see this work.
In questa serie composta da quattro articoli Andrea Bergia, software engineer, descrive Il suo viaggio in questo side project: scrivere una (minimale) JVM in linguaggio Rust.
Articoli interessanti e, tutto sommato, godibili anche da principianti.
Mi sembra anche molto utile a livello didattico per iniziare a capire come affrontare progetti più complessi.
I've wrapped up SpotBugs/FindSecBugs in a bow 🎁 in a GitHub Action, so you can use it in GitHub Code Scanning - free for open source projects, and also available for paid users of GitHub Advanced Security.
SpotBugs and FindSecBugs work with JVM languages - Scala, Java, and Clojure, mainly.
@bitpirate I don't think #Loom necessarily means the end of asynchronous #JVM APIs. For one, it will likely make them even more performant - event loops need threads to run on, and if they can be made to run on green threads, even better.
Green threads, as cheap as they are, are still not free. You can still OOM your app by spawning a million of them. This is the sweet spot where I believe async will still keep operating - apps that need extreme levels of low-mem concurrency.
My CLI tool Depo, which aims to manage dependencies for #Clojure projects, which conveniently has many different formats of configurations, seems to be the perfect place to use #protocols
and #multimethods.
After rewriting the dispatch flow three times, I feel like this is the cleanest my abilities have been able to get it. Would be cool if someone would take a look-see and let me know if protocols/multimethods makes sense in this context!
I regularly use and love #Typescript. I used to use #Python the most – it’s what I learned in and I am more interested in backends than frontends. I also am regularly using and really enjoying #Kotlin (so much better than #Java). But truly Typescript is bae.
#Julia is a joy to work with. Very much like Python but more powerful. If it had the library support Python or #JVM has I would probably prefer to use Julia for backends.
But Typescript really changed the game and now that’s probably my favorite language not just because of the language itself but because it has web dominance. Until I can write #WASM with Python or Kotlin or Rust, and I’m building #web applications, TS is my lingua franca.
@jlhertel yeah I know the pain. I used to work on a Spring 4 app that literally ate 4-8 GBs of RAM at the start. That’s not indicative of the entire #JVM spectrum, to be honest. Newer, more cloud-inclined frameworks like @quarkusio offer the same familiar experience at a fraction of the RAM consumed.
Still, nowhere near to #Golang or #rustlang apps. It’s a different league.
@paul y'know… I'm still not sold on containerization as a whole. Maybe because I've always worked on #jvm tech, and its deps ore easy to manage? I get how it's more of a necessity in serverless. But it just seems like so much overhead and bloat, by design. Worth it?
Trying new things while hoping to find some clients that actually care to respond 🙄
Among them #Android development.
At least I don't have to use Java!
Although I can't escape #JVM (but I already had contact to #Groovy via Jenkins).
@mlemweb Since it will be about sewing I was wondering whether you would generally be interested in testing?
The APK would be loaded onto the Android smartphone via ADB during development.
The emulator freezes my laptop.
I hope to release to #FDroid one day.
@joel the joke is that #Clojure is the big corporate success; the scene depicted here is from the matrix, where that character colludes with Agent Smith to attack Neo & co, and asks that he have his memory whiped so that he would have never been exposed to "the truth" of the matrix, prefering to be reincarnated as a film actor where he can live a naive life of success without having to contend with what is "behind the scenes". So in a way, it's a dig at the #jvm ethos.
Clojure is cool tbh, it's like an ergonomics-focused non-standard scheme with Lisp2 syntax, lots of immutable datastructures, and without hygenic macros, first-class-everything, continuations, or the privileging of generality over intuitiveness.
I just still want to program against linux, rather than java. java still feels clunky to me.
Since you are from the arts this may seem less relevant to you, but I suspect that the #JVM is the most mature and well-developed virtual machine out there. I know, at least, it has had the most man-hours pumped into it of any of them, with decades of very good programmers. Now things like Graal make it blindingly fast for many products