Skip to Content

I Might Be Getting Better At Programming

I think recently I’ve gotten better with programming a computer. I’ve had a rough idea of how to do it for years: you open a text file, write some specialized lingo, and then either run it with a program that knows how to read it, or with a program that knows how to read it and turn it into its own tiny-and-portable executable.

Whenever I needed to do something small, give a computer a bit of information and get something out in return, I tended to just use a small shell script. Awkward, I know, but I never felt it worth committing to a more sophisticated formal language.

When I needed to something more complicated, I defaulted to object-oriented programming as my main paradigm, and implemented it with Python. Then, for a long time, I didn’t do much programming at all.

More recently I’ve been thinking more about programming than doing it. My focus has been on writing. My latent computer-user came out before long, though, and before long I was finding more and more technical way to accomplish my writing. I won’t rehash that journey here, but through it, I’ve been exposed to more information about the philosophy of programming. It’s sunk in a lot better than it did when I was younger, and I’m honestly thrilled to be getting to this point where I feel like I’m actually getting able to get better at programming, rather than maintaining this baseline ability to cobble together functions and variables to mangle an input.

Of course, cobbling things together to mangle other things is still the spirit of what I’ll be doing, but I think I’m finally starting to be able to make decisions about how best to do any one thing. Some concrete choices are that I’m going to mostly be implementing things in Emacs Lisp, because I like the Lisp family of languages (now that I have a sense of things) and I use Emacs for my main computer interface - though I still use a web browser as my main consumption tool.

I also, as I said, have come to appreciate the functional programming paradigm as opposed to the object-oriented paradigm I “grew up” with. Another thing that appealed to me - though I admit I’ve misunderstood these past few months, is literate programming. I had been understanding it as a method of writing a program where you write source code blocks inside a longer document about the code - an inversion of the more traditional method where the comments are inside the code.

That’s not it. That’s just another way of representing traditional software design - one I prefer to writing the code first, but it’s not literate. Literate is when you set out to describe what you want, and then over the course of explaining it, begin to sketch it with macros, that you begin to define. I’m not familiar enough with Elisp to make up an example offhand, but I expect soon I’ll begin writing some sort of functional literate thing.

Editorial and License Information

My name is emsenn and I wrote this essay for the benefit of the commons. To the extent possible under law, I have waived all copyright and related or neighboring rights to it. If you're viewing it on a remote server, you're encouraged to download your own copy. Essays like this are made possible with financial support from readers like you. Thank you. To read more of my work and to learn more about me, visit https://emsenn.net