I look forward to Advent of Code every year.<p>So far, I've used it as a way to learn new languages - I've done it in D, C#, Swift so far. I don't bother with the competition aspect, but I do have a few people that I bounce solutions off of.<p>This year I'm taking a different approach though, I'm going to use it to re-learn an old language - UniVerse[0] Basic[1]. In my first IT job, I supported an in-house system that ran on UniVerse. I then moved on to working with a commercial system built on UniData[2] (a close cousin to UniVerse). These products mainly exist to allow Pick-style MultiValue applications to run on modern systems. They are closed-source commercial products, but there is a limited-use personal edition available.<p>One nice thing about these is that they don't just emulate a Pick environment, they also give it features that Pick systems never had. For example, UniVerse Basic is capable of making HTTP/HTTPS requests, parsing XML and JSON, and at some point UniVerse Basic even gained the ability to interact with Python objects. One of the first things I built in preparation for this was a subroutine to retrieve the input data, downloading it and caching it if required.<p>It's been about 10 years since I've worked with this technology, so I'm really looking forward to re-learning it.<p>[0] <a href="https://www.rocketsoftware.com/products/rocket-universe-0/rocket-universe" rel="nofollow">https://www.rocketsoftware.com/products/rocket-universe-0/ro...</a><p>[1] <a href="https://docs.rocketsoftware.com/nxt/gateway.dll/RKBnew20/universe/v12.1.1/universe_basic_user_guide_v1211.pdf" rel="nofollow">https://docs.rocketsoftware.com/nxt/gateway.dll/RKBnew20/uni...</a><p>[2] <a href="https://www.rocketsoftware.com/products/rocket-unidata-0/rocket-unidata" rel="nofollow">https://www.rocketsoftware.com/products/rocket-unidata-0/roc...</a>