On Programming, Software Architecture, and Sociotechnical Systems
A weblog of thoughts on Computer Programming, Software Architecture, Sociotechnical Systems, and more.
Articles
What Kind of Asynchronous is Right For You?
There are a few ways for services to communicate that can be rightfully classified as asynchronous. But they have very different characteristics. Let's have a look at them and their impact on the overall system structure.
Flix For Java Programmers
The Java Virtual Machine is not limited to running programs written in the Java programming language. There are many other compilers that output Java bytecode. Some of these languages have so far remained exotic. Others have found a large following, for example Groovy, Clojure, Scala and Kotlin. Now, with Flix, another language, that brings some fresh approaches to the JVM, has entered the scene.
Java Concurrency: An Introduction to Project Loom
Project Loom is an experimental version of the JDK. It extends Java with virtual threads that allow lightweight concurrency.
Event Collaboration And Event Sourcing
“Events! Events everywhere!” - or so it seems. This isn’t a bad thing, not at all: Event-driven Architecture can help to make microservice architectures scalable and resilient. But there are different patterns at play that we need to distinguish. And not everything is an event. An attempt for clarification.
Don't Use Await.result!
Almost regularly I see Scala code where people program in a sequential, synchronous style and integrate an asynchronous I/O call by waiting for its completion with Await.result. But you really shouldn’t.
Java, Scala, Kotlin and .. Skiing
Java is skiing. Scala is snowboarding. Kotlin is carving skis.
10 More Scala Features Most* Java Developers Love
In my first blog post, '10 Scala Features Most Java Developers Love', I assembled a top 10 list of Scala features I wouldn't want to miss, and that I found more or less universally liked in conversations with other Java developers. Here are 10 more that would have deserved to also be on the list.
Things I Wish I Knew When I Started Building Reactive Systems
When you attempt to build reactive systems coming from the world of Java web and enterprise development, you’ll stumble across some fundamental differences and might wish someone had told you earlier. Unless you read this blog post, of course, because I’m going to let you in on four things you should know.
10 Scala Features Most* Java Developers Love
Some Java developers seem to be intimidated by Scala. They get hung up on some possibly rather obscure feature, and from that conclude that the language must be a complicated maze you can only get lost in. There are so many features in Scala, though, that are so easily accessible, and that really just make the developer’s life easier. This is my list of 10 features that are easy to understand and use, yet very powerful.