KotlinLab: Development of a simple MATLAB like scientific programming environment for Kotlin

I started to develop KotlinLab, a MATLAB like easy to use scientific programming environment, for Kotlin,

Perhaps, other Kotlin programmers will be interested in participating and contributing!

The project seems to contain a lot of interesting features but on the other hand, I see a lot of problems similar to JAS3 or DataMelt:

  • Kotlin system written in Java?
  • The build process in ruins, dependencies are placed together with the source code. Gradle is using local files, including libraries available in public repositories. It will never be stable.
  • There is no clear vision of the architectural design of the system. Neither there are API guidelines.
  • You are putting different methods from different libraries into the same monolithic package without any separation.
  • It seems that you are mixing GUI and mathematics together. This is never good.

Sadly, all previous packages both in Java and Groovy, using this “chaotic” approach failed to produce a robust ecosystem. Of course, I think that parts of what you have done, would be very useful for the kotlin scientific community, so I encourage you to join kotlin slack and discuss this in the science channel.

Meanwhile I would ask you to look at the tools that are already in the ecosystem like Kotlin jupyter kernel, which seems to be an ideal tool for GUI, and existing libraries like the ones listed here. Building on top of them and using the common infrastructure would be much better, that start something new from the scratch.

1 Like

I started to read Kotlin only a few days before, and I’m excited from this superb language.
KotlinLab is derived from my Java based JShellLab project,
and sure currently has many problems and needs a lot of improvements.

Indeed, Kotlin is a perfect language for scientific computing. Yet I think it is much better to gradually build ecosystem on top of what already is present. Please join the slack for the discussion, there are already people involved in similar tasks. My own vision is that it should be a robust ecosystem where different tools could work with each other. For that we need to exchange experience and discuss designs. And of course, proper tooling and build process is important as well.