Home » JVM Languages

JVM Languages

Loops performance in Groovy

Introduction In the 2018 Advent of Code challenged I solved all the puzzles in Groovy. It is pretty obvious, that choosing good data structure is the most important to obtain performant solution. However, the way we iterate over those structures is also very significant, at least when using Groovy. Measuring performance I want to measure how long it takes to ...

Read More »

Storing when block subject in a variable

Super short post, on a change introduced in Kotlin 1.3 (yes I know it has been out for a while now). We will take a quick look at capturing the subject of a when block into a scoped variable. This is a quality of life improvement that saves a line or so of code while making the role of the ...

Read More »

Comparing Kotlin performance with Graal and C2

You may have heard of Graal, the new JIT compiler for the JVM written in Java. It is available inside the JDK since Java10 and in the future will probably become the standard of the JDK. If you are interested, you can find more information here: https://www.infoq.com/articles/Graal-Java-JIT-Compiler In the last year I mostly worked with Kotlin and as personal project I ...

Read More »

Clojure – comparison of gnuplot, Incanter, oz/vega-lite for plotting usage data

What is the best way to plot memory and CPU usage data (mainly) in Clojure? I will compare gnuplot, Incanter with JFreeChart, and vega-lite (via Oz). (Spoiler: I like Oz/vega-lite most but still use Incanter to prepare the data.) The data looks like this: ;; sec.ns | memory | CPU % 1541052937.882172509 59m 0.0 1541052981.122419892 78m 58.0 1541052981.625876498 199m 85.9 ...

Read More »

Clojure GitLab deps

You need to force  the ssh-rsa host key instead of the default one picked up by the tooling: $ ssh-keygen -R gitlab.com $ cat <<EOF >> ~/.ssh/config Host gitlab.com HostKeyAlgorithms ssh-rsa EOF $ ssh git@gitlab.com CSI version of the above You are using the brand new dependency resolution from the Clojure core team for the first time. So you like ...

Read More »

Testing Kotlin with Spock Part 3 – Interface default method

Kotlin allows you to put method implementation in an interface. The same mechanism can be found in Java interfaces as default methods (and also Groovy or Scala traits). Let’s see the difference between the Kotlin and Java default methods in interface by testing it with Groovy and Spock. What do we want to test? We often have an interface for ...

Read More »

Scala Tuple performance

Tuple is very powerful construct in programming language, it allows to create sequence of finite elements. Elements in tuple can be of different type and very easy to declare like (“something”,1,new Date()) Nice thing about tuple is you have to only decided on data type of element not the name. Computer science has 2 hard problem : Cache invalidation and ...

Read More »

Kotlin DSL: from Theory to Practice

I’ll try to explain the language syntax as simple as possible, however, the article still appeals to developers who consider Kotlin as a language for custom DSL building. At the end of the article I’ll mention Kotlin drawbacks worth taking into account. The presented code snippets are relevant for Kotlin version 1.2.0 and are available on GitHub. What is DSL? ...

Read More »