The purpose of this journal is mainly to record my thoughts and keep myself honest.
Languages
I've chosen a set of 16 programming languages. Most are general-purpose languages which are well-liked by their respective communities. Some are more specialized, restrictive, or disliked. Two are abstract esoteric languages, impractical for ... well, anything.
In the partially-random order I will visit them, the languages are: Smalltalk, FP, Ada, Python, OCaml, BrainF***, i86 assembly, Prolog, Erlang, Forth, D, Lazy K, Haskell, FORTRAN, Lua, and Scheme.
Time
For each language: 16 days
Break between languages: 7 days
Total time: 361 days
Learning
Learning a language, (or learning almost anything, really) is a continuous process. In 16 days, it'll be hard for me to say that I really know most of the languages in question. And what counts as the language is itself debatable -- it's possible to learn all the syntax and semantics of Scheme in one day, but that doesn't really seem to count. And on the other end of things, I'm not sure if anyone really knows all of C++. So my goal is to be familiar enough with the language that it is no longer alien to me. I want to visit, see the sights, and do as the natives do for long enough that I can sympathize with their point of view.
Tasks
For each language, I have to write a Hello, World program, implement the TPK algorithm, and do some kind of graphics hack. For a couple of the languages, that alone might take a significant portion of the 16 days, and require exploration of deep concepts and idioms. Others will require more motivating tasks. I've collected a list of tasks, mostly games of some form or another, which I think could be suitable. There are two large projects, a compiler to the POV-Ray Scene Description Language and some kind of game, that I hope to write at least one part of in each language.
Tuesday, September 25, 2007
The rules
Subscribe to:
Post Comments (Atom)



1 comments:
Hello. Your FP interpreter will be coming... patience.
Post a Comment