Advertisement

Umka: a new statically typed embeddable scripting language

Started by May 09, 2020 03:02 PM
0 comments, last by vtereshkov 4 years, 6 months ago

The first version of Umka, a statically typed embeddable scripting language, has been released. It combines the simplicity and flexibility needed for scripting with a compile-time protection against type errors. Its aim is to follow the Python Zen principle Explicit is better than implicit more consistently than dynamically typed languages generally do.

Language features

  • Clean syntax inspired by Go
  • Cross-platform bytecode compiler and virtual machine
  • Garbage collection
  • Polymorphism via interfaces
  • Multitasking based on fibers
  • Type inference
  • Simple C API
  • C99 source

Motivation

Dynamic languages often claim shorter develop-debug cycles compared to static ones. However, the results of independent psychological research of this problem seem to be inconclusive. My personal experience is quite the opposite to the claim. Each time I modify my neural network code, I have to wait while the system is loading Python, NumPy, PyTorch, reading datasets, packing them into batches, transferring them to GPU, attempting to process the first batch - just to discover that PyTorch is expecting a tensor of size (1, 1, m, n, 3) instead of (1, m, n, 3).

I readily admit that many people prefer dynamic language for their own reasons. On the other hand, the need for type checking at compile time - even in scripting languages - is also understood by community. The popularity of TypeScript, introduction of type annotations in Python, hot discussions on Reddit prove that it's not a dogma for a scripting language to be dynamically typed.

Hope that Umka will find its place in the large family of scripting languages.

This topic is closed to new replies.

Advertisement