Archive for May, 2008

Four Languages

Saturday, May 31st, 2008

Inspired by the Slashdot story, Programming as Part of a Science Education?, I have to agree with the author, mostly. These days, every scientist and engineer should be fluent in four kinds of languages:

  1. Verbal: English still works, but the way things are going, Mandarin Chinese is becoming a useful #2.
  2. Pictorial: Each field has its own way to visualize information. In physics, the art of the histogram is paramount.
  3. Mathematical: Calculus the most relevant language for most sciences, but the language of graph theory and abstract algebra can be handy in some niches.
  4. Computational: FORTRAN was king for a while, and C++ is the current king, but on a very slow decline. Personally, I think all scientists would benefit from learning Python first, and then supplement with whatever compiled language is used by their colleagues.

Some people might argue that the first two are languages, and the second two are tools, but I disagree. Both math and programming are ways to express ideas, one symbolic and one procedural. (Unless you do your data analysis in PROLOG, in which case you are impressively loony.) On the physics experiment I work on, our 15-year-old simulation program (woo FORTRAN!) is in many respects the most precise, unambiguous description of how our experiment actually functions. Sure there are piles of words, plots, and equations also documenting everything, but sometimes when I want to know something behaves, I go straight for the code and read it.

In effect, we have built a procedural description of our particle detector, and it is worth recognizing the code as a form of communication. It certainly changes the way you think about programming.

Entries (RSS)