What Does a Cosmologist Do At Microsoft? September 21, 2006Posted by gordonwatts in computers, life, physics.
When 3 am rolls around, and Julia needs to be fed, it is usually my job. This takes about 45 minutes including time to calm her down enough to sleep again. I can’t really do anything — even reading is hard with a squirming baby in your hands. So I’ve taken to watching random videos I download from the net.
This one was great: an interview of Brian Beckman. Back in the 80’s he was a physicist at JPL and then moved to Microsoft Research (it was called something else back then). He has some great stories about the old days and this very cool simulation operating system he wrote at JPL: the timewarp operating system. As he said “a language no physicist could not fall in love with”: it has processes and anti-processes, messages and anti-messages, you could go backwards and forwards in time. He is right; sounds very cool.
Part of the reason I stumbled on this is that his group (?) has done a lot with functional languages and most recently has been working on the LINQ project. I’ve mentioned before that I wonder if C++ is the wrong direction for us in physics. Part of the reason is I see it as a basically dead language. Even the new features that are being planned in the TR1 timeframe strike me as fixes. Many other languages are rapidly evolving: python, ruby, java, C#, and (Brian’s favorite — you’ll have to watch the video) VisualBasic. I can’t help but wonder if some of these new technologies can make our lives in physics easier.
LINQ seems like an obvious idea: integrating selection and query directly into the language. Brian’s focus is on SQL: most database programming, he claims, is done by writing some C++ (or whatever) code and then in the middle of it embedding a SQL string: “SELECT pt,eta,z from electrons where pt>5.0 AND eta<1.1”. In short — a programming language within a programming language. Brian’s group has used techniques from the functional language world to lift those out to turn it into first class C# and VB code (and no reason it couldn’t be integrated into other languages). I’d give you an example of that above SQL statement, but I don’t know enough LINQ. One day I’ll have time for this sort of thing. 😦
Of course, could you connect it up to the ROOT backend. 🙂
There are just too many interesting problems to solve in physics: physics, computers, hardware… oh, and I have a kid. And I’m on vacation!