Minority Opinions

Not everyone can be mainstream, after all.

Languages I’ve Learned: Experimental Phase

leave a comment »

Somehow, I had learned at least ten programming languages before attending college.  However, some of them were very limited in scope, and not all of them have endured.  That’s even more true of the next batch, all learned within my first two years at a major university.


Certain programming courses were taught using Java, perhaps due to its rising status in industry significance at the time.  It was generally simpler and safer than C++, though even more annoyingly verbose at times.  It also felt slow, and its graphical widgets, though easy to use, were universally ugly.  I understand that its warts have been alleviated over the years, but that doesn’t make me want to go back any time soon.


So it isn’t technically a programming language, but HTML is an important markup language that had been very useful over time, both for website production and for data collection.  Unfortunately, I’ve tried to force several things into it that really should have been left to programs designed for producing printable documents.  I’ve also written screen scrapers using regular expressions in Perl.  I’d like to think that I’ve learned better, but I’m probably still abusing it somehow.  I’ve certainly been abusing the related XML, partly due to learning about JSON just a tad too late.

Visual Basic

Through some odd sequence of events that I no longer care to remember, I ended up using Visual Basic as a glue language from within Excel, launching a program to run a series of tests on a product that doesn’t seem to have entered the mainstream market, collecting the results, and producing pretty graphs.  It also came in handy a couple of other times while I still used Windows on a regular basis, though the Excel connection is still my primary use case for it.

Vim Script

It’s amazing these days to think that I programmed before learning Vim.  It’s equally amazing to think that people do so without extensive customization.  My .vim directory sports over ninety files, many of them specific to one of a few dozen languages and text formats.  True, most of them contain nothing more than settings, variable definitions, and key mappings, and half of the rest is taken from Vim tips and scripts or adapted from the runtime, but there are at least a few examples of real programming in there.


While one online game was down for an extended period of time, I was introduced to VGA Planets.  Naturally, I discovered the most complicated way to play it, wasting hours on scripts to save me a few minutes of tedium per turn.  That was made possible by PCC, the most powerful client program available, which seemed to give me an edge in the game that never finished.  Sadly, I haven’t played since.  This language is interesting in the way it guesses what a bare equal sign means, with := and == operators to force the issue when necessary.


The specification for the Compiler Language With No Pronounceable Acronym should be required reading for any budding Linux hacker.  If nothing else, it displays an interesting perspective on the issues of its day.  The difference between EBCDIC and ASCII, for example, or the limitations of punch cards and teletypes, or the finicky nature of all compilers.  Granted, I haven’t even attempted to write anything significant in it; simply wrapping my head around the operators has been tricky enough.


If INTERCAL was designed to be unique, that must have been taken as a challenge.  A Befunge program looks more like a cross between a roguelike and a word search than something that should be executed.  This is where Vim’s mode division truly shines, with liberal use of the hjkl keys and r operator.


I must have been hooked on esoteric languages by this point, because there is only one other reason to learn brainfuck: To prove that some other language or program is Turing-complete.  Then again, with only eight instructions, it’s almost impossible to forget.


Meant to be the ultimate answer to minimalism of instruction set size, it cheats a bit by using relative location.  Of all the (relatively) useless esoterics, this one has been the most fun to write for.  At one point, I even started a graphical editor for it, but never convinced it to stretch the wires properly.  I’ve also written an interpreter for a modest extension of the language, which I might even release sometime.


I honestly tried to use REBOL as a serious language.  I even fiddled with a Vim syntax file for it.  There’s something alluring about the promise of natural language as input, and easy graphics with fun colored widgets.  I never really found a reason to stick with it, though, and have forgotten everything I once knew.

To be continued…


Written by eswald

29 Nov 2011 at 11:36 pm

Posted in Technology

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s