Programming Languages

When it comes to learning a language there are basically three levels of knowledge:

  1. Knowing the syntax—no construct will surprise you and “look wrong”
  2. Knowing the semantics—understanding the fundamental engine of computation the language employs (really applies to Prolog more than normal languages)
  3. Knowing the standard library—being able to create applications in the language
  4. Fluency—being able to create arbitrary programs in the language

I’ll note with a number which level I have achieved with each of these languages. (This is seriously out-of-date).

  1. AppleScript (2)
  2. AWK (2)
  3. bash/ksh/zsh/sh (3)
  4. Bison/Yacc (2)
  5. C (4)
  6. C++ (3)
  7. Dada Engine (2.5)
  8. Eiffel (1.5)
  9. Erlang (1.5)
  10. Forth (2.5)
  11. Haskell (2.5)
  12. Hotel (2). Just kidding. I don’t know it.
  13. Inform 7 (2)
  14. Io (2)
  15. JavaScript (2.5)
  16. LaTeX (2.5)
  17. Lisp (3)
  18. Lua (0.5)
  19. Make (3)
  20. Modula-2/3 (0.5)
  21. Objective-C (2.5)
  22. OCaml (2.5)
  23. PHP (4)
  24. POV-Ray (0.5)
  25. Prolog (2)
  26. Python (4)
  27. QBASIC (2)
  28. REALbasic (4)
  29. Ruby (4)
  30. Scheme (2.5)
  31. Smalltalk (2)
  32. SNOBOL (2.5)
  33. SQL (4)
  34. XSLT (3)

My current favorites are Haskell, Common Lisp and Erlang.

Natural Languages

I am only fluent in English. However, I am learning Biblical Hebrew and would love to learn Finnish someday. I studied Latin in high school. Linguistics is a strong interest of mine.