Eric tagged me in this Facebook meme:
List the top 10 computer languages that you have been paid money for writing code in (obviously, I don't get paid for writing in English). Try to list in order of dollar volume. Briefly mention the oddest thing you ever did in the language.
- C - everything from distributed database systems to network image processing to a text mode window system that allowed full-speed updates of partially obscured background windows on a 4.77MHz 8088.
- C++ - from best-selling computer games (back when "multimedia edutainment" was cool!) to a 3d animation system to a little hack that pretended to be a printer and dumped the results into a Delphi(? whatever Borland's 4GL was back then) database.
- 8086 assembly language, including MMX - from a codec that did quarter screen video off a 2X CD on a 25MHz 486 to a renderer that gave a Voodoo hardware card a run for its money on a 110(or thereabouts)MHz Pentium Pro (? whatever the first MMX machine was).
- C# - among other things, a project that drove a motion control system and a camera and took pictures of mannequins at various angles.
- AVR assembly language - in which I wrote the aforementioned motion control system.
- Perl - most of the stuff I've been paid for with Perl has actually been cute little hacks to generate code, from reading C# Windows Forms definitions and spitting out code to do use those control layouts in C on a lightweight embedded box, to reading XML and writing out definitions used by a parser system to deliver XML based network messages into C structures that were used to query the database.
- PL/I - because sometimes you've gotta do a little querying to get data out of the remote system to which a job has been submitted using MVS/JCL so that you can get it on to a machine where you can do interactive things with it.
- TBBS/TDBS - TDBS was a dBase like language (what FoxPro was a clone of), and in 1993 I wrote an HTML browser that ran in it because we needed a way to display free-form real-estate data, on ANSI and RIP terminals, and Robert Wilson suggested that I should use this cool new thing called HTML for the data.
- SQL - I'm sure I've been paid to do stuff in this, I've done a hell of a lot of it for fun, including some PL/PgSQL stuff, but I can't come up with anything in particular. Flutterby.com uses a bunch of PL/PgSQL triggers, and I've been paid for some advertising, so I guess that kind of counts.
- Reflex - a scene/model rigging language, used to define models in the DigitalFish Reflex animation system. I should probably also toss RenderMan in here, because it kind of fills the same niche.
If I stretched a little bit I could probably include Applesoft BASIC and 6502 assembly language in this list. The argument could be made that I've been paid for a couple of shell/scripting languages, including the VMS scripting language, DOS .BAT files, and some Bash. I'm sure I've also modified some TCL on someone else's dime, lots of folks at Pixar used it. I think I've also been paid to answer some Java questions, back in the .com boom I learned enough of it and ported enough of Flutterby.com over to it to come to believe that nobody who understood how to develop good software would use it. I could probably also add TurboPascal to this list, I'm sure someone paid me for some small hack before I went over to C.
I have yet to be paid for Python or work it into the infrastructure of a project for which I'm paid, even though there was a time when I got pretty proficient at it. Nowadays I'm kind of lumping that in with Ruby and Lua: If speed matters, I'll break out the compiled languages, if not I'll use Perl.
I'd like to be paid to re-learn whatever Prolog I once had, and to learn Haskell or another functional language, though I expect that both of these are really more useful in the "can you think in this way?" as a basis for implementing other code than to use directly.