Daniel Roy Greenfeld

Daniel Roy Greenfeld

About | Articles | Books | Jobs | News | Tags

Programming languages I've learned

Matt Harrison asked in a tweet what my programming history was, so here's a list of the programming languages I've learned.

AppleBasic (ancient history)

My first computer was an Apple ][+. I learned AppleBasic from a book that came with the computer. I wrote oodles of text-based games. The most popular was a Star Trek battle clone that was well-appreciated in 10th grade.

FoxPro (1997-2000)

I learned FoxPro at my first professional software development job. I liked FoxPro for DOS and still have a soft spot for CLI dbase-style languages. The same can't be said for Visual FoxPro for Windows, which never clicked for me.

JavaScript (1998+)

Originally I just copy/pasted scripts from sites and books. I struggled with it and the DOM until encountering JQuery in 2008 plus reading "JavaScript: The Good Parts" the same year. That helped and I learned to enjoy the language.

Perl (1999)

I spent about six months coding with Perl. I enjoyed it, especially the regular expressions that have served me so well over the years. The challenge was that in my self-teaching as a junior developer, I didn't think about maintainability. When I had to go back to maintain stuff I wrote I was lost, got frustrated, and left it behind. Probably not fair to Perl, but it is what it is.

ColdFusion (2000-2006)

This was popular in US Federal government circles. In a way, it was like a closed-source PHP, with lots of idiosyncrasies. The biggest problem the language had was people - for whatever reason it attracted those who coded via cargo cult copy/paste programming and generally bad software design who refused to change or adapt. Which sucked because coming in to maintain someone else's code was a nightmare. Still, I have a soft spot for ColdFusion because it helped me identify that I preferred more dynamic languages over static ones.

VBScript (2000-2001)

This was one of Microsoft's abortive attempts to hijack JavaScript. I liked it more than the JavaScript of the time, but as it only worked on Internet Explorer that limited its usefulness.

Java (2000-2006)

Java during the time I used it was designed to be for the "Enterprise". Which meant tons of boilerplate code, lots of XML, and a general lack of fun. The heavyweight of Enterprise Java was a huge turnoff. I struggled with it so much that I developed an intolerance for strongly typed languages (from which I've only recovered in the last few years). I admit my opinion of Java is biased, I'm sure it would be awesome if I dug into the modern version.

Python (2005+)

This is the programming language and community that changed my life. Python fits into my brain and it's my go-to language for all kinds of scripts.

Lua (2011-2012)

For a brief time, I did Lua and enjoyed it. If I were into game scripting I'd probably still be using it.

Modern NodeJS (2018+)

In 2018 I finally knuckled down and learned the ways of NodeJS. Much as I love Python, knowing NodeJS has been a game-changer for me. Arrow functions are fun and I wish Python had a decent analog.

C# (2020+)

In 2020 I started to play with the Unity game engine. C# clicked for me surprisingly fast and it was my favorite part of writing games. It's part of why I wonder if I should revisit Java since the languages are so similar.

Go (2020)

I did some Golang in late 2020. I liked it and saw the virtues, especially the concurrency model. I just don't have any use cases for it that my other tools don't solve.

JSX (2021+)

To build out a website for work I learned the fundamentals ReactJS and JSX over a weekend. This blog is my first project, which I continue to extend and modify. I like noodling with JSX, and I can see why it has become so popular. While arguably not a programming language, it's clear it is a huge productivity boost for me and others. It's fun to write and that's what counts.

TypeScript (2022+)

Kicking and screaming I've been dragged into the TypeScript world. I know professional FE devs love it, but I'm more partial to NodeJS because I feel like I'm coding, not playing with types. That said, it is kind of relaxing figuring out the types. Where I think TypeScript fails is I haven't seen any dominant libraries built around its typing features. For example, in Python we have pydantic and FastAPI, which are powered by type annotations. I haven't seen anything like that for TypeScript. If you know of anything like it, point me to it!

Rust (2022+)

In December of 2022, I started to learn Rust. Its use in WASM is fascinating, as is the performance boost and the sophistication of the compiler. If only I had a business reason to practice it, but for now it's just a hobby tool.

Tags: blog python javascript coldfusion nodejs foxpro java technology