Author: tnfink
-
ISO/IEC 25010 – News from the 2nd Edition (2023-11)
The ISO/IEC 25010 defines a product quality model for software systems. After 12 years the new second edition (2023-11) is published. Let us have a look at the changes.
-

An Introduction to Functional Programming with Kotlin
At the last BOB-conference I gave a tutorial about functional programming (fp) with Kotlin. I approached the topic starting from the basic properties of fp and how this can be done using Kotlin. Then, I moved to to a little bit more sophisticated topics regarding the use of fp in the real world with some…
-
Untyped Typescript or Error Prone Covariance
Some time ago I wrote this short article about co- and controvariance in Kotlin and how these features help the developer to write less error prone code. When I talked with some colleagues about TypeScript, I recognized that, despite some experiences I made with small pet projects, I do no know about type variance in…
-
Haskell is Faster than Rust! … Wait a Sec!
by
To evaluate the impact of memory management in Rust, I implemented a short benchmark in Rust and Kotlin. You can find all the details here and here. Measurements showed that Rust is roughly a factor of 10 faster than Kotlin, most probably caused by better handling of memory garbage. Being a big fan of Haskell,…
-
Kotlin/JVM, Rust, and Randy Random
by
In this previous article I implemented a small, enterprisy benchmark to compare the concept of garbage collection used by Kotlin/JVM with the concept of Rust, which claims to not have any garbage collector at all. My conclusion was, that for a moderate increase in the complexity of the programming language the benchmark in Rust performed…
-
Yes, Rust has Garbage Collection, and a Fast One
Rust is getting more and more popular. Thus, a group of colleagues, including myself, evaluated it for half a day to build up our own opinion, if Rust is of strategic interest for us or not. We did some coding following the standard introduction book, looked at some frameworks, and watched the presentation “Considering Rust”.…
-
Co- and Contravariance in Kotlin From an Introductionary Domain Level Perspective
by
Covariance and contravariance are properties of type systems of programming languages. They can be pretty intimidating words for a software developer who just wants to implement user requirements. In this article I approach the meaning of these two properties in Kotlin from a domain level perspective. It was part of an internal small workshop on…
-
Unbounded Functional Loops in Kotlin
This article is a follow-up to this previous article about bounded loops. Bounded loops are cool because they always terminate and usually it is pretty easy to estimate the computational time. But as every computer scientist, who had to understand the halting problem, knows, there is a big class of algorithms which are harder. These…
-
Bounded Functional Loops in Kotlin
by
Loops are a basic paradigm in imperative programming languages. In functional languages you also need to loop, but you do it differently. Here, I present how I prefer to implement loops in a functional style using Kotlin. To check, if this is a good idea at all, I do some benchmarks against imperative variants and…
-

GUI Transactions with the FRP Framework Sodium
Sodium is an implementation of Functional Reactive programming (FRP) with some nice features. One of these is the support of transactions in the GUI layer. I had quite some discussions with my colleagues on what this actually means and if such a transaction concept is useful or not. In this article I sum up my…

You must be logged in to post a comment.