Technologies I learned and that I do not use
Published: 2020-04-01 12:07:01

---
title: Technologies I learned and that I do not use
published: true
description: 
tags: 
---

# Context

I was reflecting the other day on the tools I know and, specially, the ones I do not know. That led me to think “why do I not know these tools by now?”.

One of the reasons is that I learnt other things, and is what lead to this text.

That might sound obvious, but I actually have to choose what to invest my time, and make trade offs.

Here I share some technologies I learned and invested and that did not really pay off, that I abandoned or that just made me take a long run.

These are not the most recent or older, most bad or good, these are just the ones I remember better and find most interesting to share.

## JavaFX

Now, this was a bet. For those for do not know, JavaFX was a new UI toolkit for java. For desktop, that is.

Back when JavaFX came out it was already time for “rich web apps”, so people had already moved on from desktop apps, so it this was a risky shot at least.

What I found interesting about it was that it had a functional programing style (or, at least, function as first class elements), two-way binding of properties and the UI and heavy focus on components and composability. You could even style components with what resembled CSS.

That said, it was still java on desktop, it looked slow at that time, and people were already on the web. Apart from that, I had no desktop app to build.

## Docker before v1.0

There was actually a turning point in docker where it became stable, sometime after v1.0.

I began investing in docker around v0.5 or something. At that time a lot of functions were missing, and docker-compose was either not existent or very limited.

Due to being so new and lacking functionality, I have written and adopted several wrappers around docker for that year to provided much needed resources.

It was interesting that at each release of docker or docker-compose I could remove one extra tool or remove on more script from my custom setup in favor of the official docker way.

Still this one payed off in the end, as docker is the industry standard, but being an early adopter was a long and hard run.

## CouchDB

My favorite DB. CouchDB offered a schemaless, HTTP and Map-reduce enabled database that was very resilient and easy to use. It even included replication over http and a feed endpoint. It was really awesome.

I actually got to build a major system in my career on top of it, paired with Elasticsearch. But after that, it did no gain enough traction.

MongoDB basically killed it, becoming the go to nosql at that time. And the fact that CouchDB was slow, view building specially, did not help.

CouchDB is still improving, now includes search, clustering is easier and other goodies.

Now a days I mostly use PostgreSQL and Elasticsearch, paired with something from the cloud my system might be using (dynamodb, firestore…).

## JS Games and Augmented Reality

Now this was just for fun, but I always go back and forth in learning something related to games in the browser. I find it really fascinating and I really liked to work with the Canvas on HTML5. 

One of the experiments that I spent most time with was building AR experiences for mobile browser. That was hard, limited experience and very much fun.

This was obviously just a hobby, and it did take time away from learning tools that I would actually use on a daily basis. But it was worth it nevertheless.

## Lua

My favorite language that I never used.

Lua is an easy, simple and small language that you can embed anywhere and that have implementation on every platform. Used a lot in games, in nginx by resty (and Kong, based on that) and who knows where else.

I do know it well enough to safely use it in production. Even right now I am testing Fennel, a lisp in lua. But I have never used it for anything serious. Maybe a kong plugin soon?

# Conclusion

I do not regret learning any of those, they all added something interesting, I had fun playing with as hobby and some were really useful for some time.

Now, time to learn something new that might or might not stick.