Weeknote 15: Technology radar

Every time ThoughtWorks publishes their Technology Radar, I take a look. It’s a nice source for finding out about new technologies and I think the Hold/Assess/Trial/Adopt system makes sense even if I often disagree with the classification choices.

At work, I’ve been building some internal tooling for working with timeseries data and I’ve had a chance to try some new things. I decided to make my own mini-radar based on these experiences.

Adopt

These are great, you should use them.

Polars is a dataframe library for Python and Rust. A dataframe is an abstraction for tabular data - in my mind it’s similar to a database table. I think they originally come from R.

While pandas has long been the go-to Python library for dataframes, Polars feels fresh and streamlined. I’ve found it to be both fast and easy to use. The API makes sense to me and it’s easy to get data into and out of Polars. It has been a great choice for working with generic timeseries data.

DuckDB is “SQLite for columnar data”. It’s an embeddable single-file database like SQLite, but it’s geared towards analytics type of queries. My favorite feature is that it has support for a number of data sources so if you need to analyze, say, a bunch of Parquet files on S3, DuckDB can do it out of the box. It’s fast, too, and the duckdb command-line tool is nice to use.

I can’t believe I haven’t mentioned DuckDB on the blog before!

Trial

These are pretty good, but I’ve got some qualms about them.

htmx is a JavaScript library that makes it easy to use AJAX without writing any code. I’m not sure how to best explain it, but check out the introduction.

It’s great for when you have made a traditional server-rendered web application and need to sprinkle just a little bit of JavaScript on it to make it nice to use. I’m putting it under “Trial” because while it is handy, I don’t understand when and how to switch to something more advanced.

Assess

There’s show a lot of promise, but I haven’t yet tried them seriously.

uv is a Python package management tool. Initially it started as a pip replacement, but it has recently gained full project support. It’s snappy and it’s gaining features fast. I’ve previously recommended Poetry for Python project management, but uv could be a better choice already since it’s both faster and more compatible with the rest of Python ecosystem than Poetry is.

I’m putting uv under “Assess” since I have not yet had a chance to try it in a big project.

Hold

I don’t think these work very well in practice.

Python for command-line tools. Due to packaging difficulties, I’ve found it difficult to ship a command-line tool written in Python to software engineers who are not Python developers. You need to get all the dependencies installed somehow and all approaches seem to run into trouble.

If I were to do it again, I would seriously consider Rust or Go where there’s good support for shipping software as single binary.

In conclusion

This is what’s on my radar - what about yours?


Long-time readers may have noticed that I haven’t posted about outdoors hobbies in a while. That’s because I have wanted to focus this blog on software engineering.

I’m starting a newsletter about my outdoors pursuits such as kayaking and tour skating. It’s called Small Rapids. The first post is coming soon - subscribe so you won’t miss it!


Comments or questions? Send me an e-mail.


Want to get these articles to your inbox? Subscribe to the newsletter: