toysinabag: the site I finally made

<2 dreams    Up    chocolate>

yay! memes!

01-Oct-2008 11:59

So, JB told me I had to do the whole languages thing, even though no-one reads my blog because I don't ever post anything, so I'm going to! (I've gotten a bit carried away here. Some of these I haven't really written whole projects in. At least one line of code, definitely. But I can be self-indulgent, because no-one's looking. See above.)

  1. Some form of BASIC - I'm not sure which one it was. The one that came with my grandfather's actual IBM PC when we got it when he died.
  2. Logo, in an elective computer class - we didn't really explore it's LISPy qualities, unfortunately.
  3. Then QBasic in Computer Studies at high school.
  4. Then Pascal in Computer Science at a different high school (they had a much flasher computer faculty that had two streams - Computer Science people got to do all the fun stuff).
  5. A tiny bit of HyperCard (well, MVP Fuzzyman's telling me off because that's not a language, so I guess I mean HyperTalk), but not so much that I can remember it.
  6. Modula-2 in COSC-121. I liked Modula-2. Looking back on it, it seems like a much nicer language at the C level than C is.
  7. Haskell (in the form of HUGS) in COSC-122. Haskell is brilliant! I think I'm finally (13 years later) getting a bit of a grip on monads, although I still have to have a lie down when it comes to {Arrows, Comonads, Monad Transformers...}
  8. C in second year. Don't quite know what to say about C. I trashed memory walking backwards through an array in a loop using an unsigned index variable, like everyone has. I think I could probably do it again if I really needed to.
  9. Simula 67 - OO at last! I went back and had a look at Simula to see what it was all about. I remember being quite mystified by Call-By-Name semantics. Actually, reading it now it still seems very very weird.
  10. SPARC assembler - we had to do a few conversion routines. Floating point format is hard! Let's go shopping.
  11. TCL - used this to build the GUI for our end of year project.
  12. Java! Yuck! (I think we were trying out different thread-scheduling algorithms?)
  13. We did one project where we had to take an interpreter for a simple language (that the lecturer called PL-0) and extend the language. So I guess I know my variant, which had parameter passing and arrays.
  14. SQL - IngreSQL to start with. I still love SQL. I guess I like using sets in Python, too.
  15. Then I got a job, which was almost all PL/SQL. Which is a weird mix of Modula-2/Pascal and SQL. In retrospect, it's alright. I remember the compiler being fairly squirrely about the syntax, though.
  16. I got bored with PL/SQL. I really wanted to do something else, so I played around with VB (VB5, I think). Which I regret.
  17. Even worse, then I started experimenting with Perl!
  18. Luckily, I was talking to a (much cleverer) friend, and he said "Don't bother with Perl - you should look at Python. It uses indentation for block structure!" Which I thought was a brilliant idea. (I don't understand why people react so badly when they hear about it. Maybe they've seen it in Fortran first? I guess I saw it in Haskell first, so I was positively disposed theretowards.) So! Python! Still doing it now!
  19. I played around with WinForth - I love the syntax and bare-bones-ness, although I've never used it enough to really get the full building-your-whole-skyscraper-from-the-foundations-up experience.
  20. VBScript (in the form of ASP), which was like a much crappier version of Python. I tried to convince my workmates to use Python in ASP (via win32all). That didn't work.
  21. Squeak. I love Smalltalk, although learning it after Python meant it wasn't the amazing revelation it probably should've been.
  22. Javascript. I didn't get Javascript for a long time - that whole prototype-based OO thing wasn't clear to me at all (until I found a really good article explaining it), and spotty browser support just made it so painful. Now, it's probably my third-favourite dynamically typed language! I'm all ready to jump when it takes over.
  23. Erlang. This must have been about 6 years ago. I don't know how I started reading about Erlang, but it seems like it's been a very slow, quiet build-up, and now suddenly it's the other next big thing. Hopefully Reia or the Lispy one on the Erlang VM take off - I really like the concurrency ideas, but the syntax is a bit iffy. I'm all about immutability, though.
  24. VB.NET. Fairly yuck. Better than VB6. At least it has reasonable inheritance.
  25. C#. Like a much nicer Java. I still use C# occasionally now, and I guess, with LINQ and lambdas and type-inference and such, it could be a tolerable language. Still not quite Python.
  26. Some Common Lisp, mostly from reading along with Practical Common Lisp.
  27. Some Scheme, from following along with SICP lecture notes. Those long train rides to work just flew by!
  28. Oz - it turns out that CTM is quite a heavy book for bedtime reading. I keep falling asleep and then waking up because I can't breathe. Lucky really. (Unification FTW.)
  29. IronPython. Not quite another language, I guess.
  30. Factor? Still exploring at the moment. It's very dense (although I guess nowhere as bad as APL), and very powerful. I still get confused by stack-shuffling, and then when I look at code experts write in it, there's almost none! So I'm nowhere near competence, but I'm used to that.
  31. I've started using Emacs, so I could hardly avoid Emacs Lisp.

Whew. That was quite fun! Maybe I should vomit up more blog entries.

I've emboldened ones that I still use fairly frequently.


<2 dreams    Up    chocolate>

About

I am xtian [at] babbageclunk.com.

Friends

Promenade
Special Knives

Links

Ze Frank
Overcompensating
A Softer World

Experiments

MovieMaps

Tools

Python
Pylons
WebFaction

Feed