Inspired by this post on nodnod by DZ that I found today while randomly browsing. I’m taking liberties with the term programming language, but it’s my blog so bite me.
- BASIC on an Apple II and on what I think I remember as a TRS-80. My dad had a book on chaos theory that had a long appendix section containing programs for generating pretty pictures on a computer in BASIC.
- Hypercard. I wrote a ton of stupid adventure games in hypercard after seeing The Manhole (a precursor to Myst).
- Applescript seemed more powerful than Hypercard because it could script the OS. Turned out most applications didn’t support enough calls to be very interesting to me when I was 12.
- C at the Iowa State University Summer Programs for Youth (ISPY) computer camp. We wrote some neat programs like Hanoi Towers with a nice ASCI art animations but my favorite that summer was written by another camper that repeated back answer to questions. As with DZ, I also had a copy of Learn C on the Macintosh.
- Pascal just to understand the Macintosh Programmers Reference Library books that my dad’s students had around the lab for writing ChemViewer.
- Perl. I like to pretend that I don’t know perl so that people won’t give me code in it, but I’ve gotta admit that for string matching it’s pretty darn good. Python 5 will crush this though.
- UNIX shell programming is an ongoing project but I first learned it when I had Linux version 1.2 on my first pentium machine. That thing was sweet.
- HTML for a job creating personal webpages for the Chemistry Department at the University of Illinois while I was in high school. They were blue.
- FORTRAN is weird and old but I had a job in undergrad at the University of Texas designing genetic algorithms for HPC application. When in Rome…
- Java for the introduction to programming course I had to take at the University of Texas. I don’t like writing Java but their documentation is fantastic and I think of that whenever I’m writing.
- Python is the worlds greatest language and I do everything I can in it. I’ve written everything from websites with django to a modestly sized logic gate router. When people who don’t love computer science want to learn to program, I usually point them here.
- C++ for the course I took for the second course I took on programming.
- Matlab is fantastic for data analysis but also for generation. In undergrad at UIUC I wrote an additive-synthesis tool for reproducing my voice in matlab. It’s also great for when you need graphs and statistics. This is another top choice for non-computer types who need to do real work.
- Assembly language for X86 for ECE 291 at UIUC (both NASM and the other one). My team and I wrote a fantastic 3-D battle game with 3-D rendering, sound, and UDP multicasted networking all in assembly: 3-D Tankwars. I also use X86 all the time for my security work and debugging.
- VHDL and to some degree Verilog for my FPGA projects. All ECE students should definitely take a semester with an FPGA.
- OCAML for the Programming Languages and Compilers class in undergrad. I can also say I used it once afterwords because the VMware vprobes emmet translation tool is in ocaml.
- Assembly in MIPS for my masters thesis project developing security extensions for the MIPS-based DLX processor on an FPGA.
- Processing is amazing for doing neat artsy graphical things. It’s basically java but with a bunch of built in libraries, an IDE and fantastic documentation. The integration with openCV and my Kinect make it my choice for mocking up pretty things. One problem is a lack of normal UI elements. I guess I could take a crack at that.
- Arduino, basically java for embedded Arduino devices. Anyone wanting to make little blinky projects should do this or PIC. I’m not a PIC guy though so you’re on your own.
- PHP for an online form I was writing. I found a nice multi-file upload program in PHP so i figured I could learn it and use it for the rest. Worked fine, but I decided to migrate to django to do it right.
I’ve tried to write a sentence which counts up the number of languages I’ve learned but I keep adding them and throwing off my count.
So in summary, programming is fun.