Programming Languages
When it comes to learning a language there are basically three levels of knowledge:
- Knowing the syntax—no construct will surprise you and “look wrong”
- Knowing the semantics—understanding the fundamental engine of computation the language employs (really applies to Prolog more than normal languages)
- Knowing the standard library—being able to create applications in the language
- 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).
- AppleScript (2)
- AWK (2)
- bash/ksh/zsh/sh (3)
- Bison/Yacc (2)
- C (4)
- C++ (3)
- Dada Engine (2.5)
- Eiffel (1.5)
- Erlang (1.5)
- Forth (2.5)
- Haskell (2.5)
- Hotel (2). Just kidding. I don’t know it.
- Inform 7 (2)
- Io (2)
- JavaScript (2.5)
- LaTeX (2.5)
- Lisp (3)
- Lua (0.5)
- Make (3)
- Modula-2/3 (0.5)
- Objective-C (2.5)
- OCaml (2.5)
- PHP (4)
- POV-Ray (0.5)
- Prolog (2)
- Python (4)
- QBASIC (2)
- REALbasic (4)
- Ruby (4)
- Scheme (2.5)
- Smalltalk (2)
- SNOBOL (2.5)
- SQL (4)
- 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.
