proj-oot-ootHistory

Starting in grade school i learned a bunch of programming languages.

Eventually i went to grad school for computational neurobiology. After i joined Chuch Stevens' lab, one of my thesis project ideas was to study scaling in computer architecture, and relate it to Chuck's work on scaling in brains. I started reading about concurrency mechanisms in computing. But then i chose another thesis project, and put that on hold.

Later on during grad school i started trying to survey all of the 'good' programming languages, for three reasons. First, i like to collect ideas (I also started making a list of programming language constructs). Second, i was studying neuroscience, so i wanted to learn about many different Turing-equivalent systems so that i could more easily reverse engineer what the brain is doing. Third, i realized that i would be writing a lot of software in the future, so i wanted to learn about what programming languages are out there so that i could pick the best one and use that.

After reading a little, i decided that i wanted to learn Haskell next. I wanted to look at languages that could be used to write programs in a massively concurrent style, and i had heard arguments that Haskell was particularly good for concurrency. The argument was that, since it seems that shared state is the bottleneck preventing concurrency, Haskell's purely functional emphasis is just the ticket. I learned a tiny bit of Haskell and found it extremely interesting, but then i saw a Python and a Haskell implementation of the core of an autocorrecting spell-checker, and the Python version was both shorter and easier to read. This and other reasons (see [1]