Which programming languages I like
Published: 2024-01-26 02:53:47

---
title: Which programming languages I like
published: true
description: 
tags: 
# cover_image: https://direct_url_to_image.jpg
# Use a ratio of 100:42 for best results.
# published_at: 2024-01-10 04:05 +0000
---

# The Beginning: A Nostalgic Trip Down Memory Lane

I've journeyed through various programming languages, each with its own charm and challenges. My first encounter was with a BASIC interpreter on an 8-bit computer during my childhood. This wasn't just any childhood adventure; it was the spark that ignited my enduring programming itch. Despite BASIC often being criticized for its simplicity, I found it to be elegantly straightforward. It's like the comfort food of programming languages – uncomplicated, yet satisfying.

# My Undying Love for Scheme

Fast forward to today, and my heart belongs to Scheme. There's a galaxy of Scheme implementations out there, but the stars that shine the brightest for me are GNU Guile and Racket. They represent the modern and practical side of Scheme, seamlessly blending classic ideas with contemporary needs.

What captivates me about Scheme is its simplicity and orthogonality – it's like a Zen garden, minimal yet profoundly beautiful. The hygienic macros and `call-with-current-continuation` features in Scheme are, in my opinion, nothing short of revolutionary. They're like discovering a secret passage in a castle, leading to rooms you never knew existed.

# A Bittersweet Relationship with Common Lisp

On the other hand, there's Common Lisp. Oh, Common Lisp – the language that's as majestic as it is quirky. Working in SBCL (Steel Bank Common Lisp) using Emacs with `slime-mode` is like witnessing a sunrise; it's breathtakingly beautiful. The way every value is inspectable and the debugger allows on-the-fly code fixes is like having a conversation with your code.

However, my love for Common Lisp is complicated. Its dual namespace system, a relic of the 1970s, often feels like trying to dance to a song with an irregular beat. The need to prefix function names with `#'this-thing` is an eccentric quirk that never quite won me over. The standard library, a true product of its time, seems to cater more to Lisp programmers from the late 80s. While Scheme names a function `append`, Common Lisp sticks to `nconc`. It's like going to a retro party – fun, but somewhat out of step with contemporary tastes.

# A Tribute to 6502 Assembly Language

Let's not forget the 6502 assembly language – a language that's like the vinyl record of the programming world. Its popularity can be attributed to the sheer joy of programming for the chip. The 6502 CPU, with its mere three directly usable registers (A, X, Y), is like playing a challenging yet addictive puzzle game. The limited scope of availability and the mysterious Zero Page add layers of intrigue to the experience.

# Conclusion: A Programmer's Eclectic Palette

In conclusion, my journey through various programming languages has been like exploring different countries, each with its own culture, challenges, and beauty. From the simplicity of BASIC to the elegance of Scheme, the complexity of Common Lisp, and the raw charm of 6502 assembly, each language has enriched my programming palette in its own unique way. It's a journey that's far from over, but one I'm excited to continue. Stay tuned for more stories from my coding adventures!