" A Man of Knowledge like a rich Soil, feeds

If not a world of Corn, a world of Weeds."

--- Poor Richard's Almanac

The Universe has been discovered to be in an exploding state of expansion which seems to be all about emerging complexity: from free subatomic particles, to atoms, to molecules, to stars, galaxies, and Life. Not uniformly, of course, for there may be pockets of contraction and structureless voids as well, but on average let us say that this is so and it is all for the better.

Human Society, I would say, is likewise evolving on a course of self-improvement, and, regardless of whether one is for or against it, we're all getting pulled along with it. One aspect of this improvement is our expanding technology: tasks that were inconceivable or had to be done by hand years ago are now possible or automated by machines and computers, and this trend is clearly accelerating. On a practical level this means that we are less and less required to be specialists in any one area, e.g. it used to be the case that every community needed a blacksmith, and that individual was essentially employed for life. Now due to mass automation we have a diminishing need for custom metalworking, but there is always a stable niche for decorative adornments in society; for those who wish to take up the hammer and bellows, their Art pays them well. The specialist skill is thus being relegated to artistic quarters, and just as well since Art gives us the variety we need to feel "human"! At the same time as it pushes specialists out of the main production channels, technology gives us more opportunities to become specialists to whatever degree we require when needed.

We are entering the era of the generalist. By definition the generalist is versatile, potentially good at anything he puts his mind to.The generalist is good at quickly identifying what tools are needed to get the task done, and then getting those tools into action. Occasionally, of course, the generalist needs to become a specialist for a while, but this is always a transient phase. As Society evolves it seems we need more of these "stem cell" people than "specialized cell" people, for we're getting good at simulating the latter with computers.

I am currently helping to push the frontiers of Artificial Intelligence at IBM Watson, working in the Natural Language Processing group. I strongly believe in developing computer technology to enable human collaboration and exploration.

How did I get into computers?

1. When I was 5 my father brought home a personal computer: the Atari 800. I rembmer it distinctly because he brought it home one day after dinner and my two sisters and I were so excited we were 'allowed' to stay past our bedtimes playing Space Invaders. My older sister quickly lost interest pretty much from day 2 after she realized my other sister and I were too good at Space Invaders. She preferred playing the flute in the meantime, then gradually returned to computers later through a career in Information Science.

2. Anyways my father had genuinely loftier goals than bringing home a game machine. He had cartidges and cassette tapes for Pilot, Assembly Language, and Basic ... he was somehow highly motivated to program, and got functionally decent at it, programming his own Russian Word Processor that made some fame for him in the local Atari clubs. But my sister and I were genuinely interested in just the games, and picked up many more from weekly visits at the Atari clubs on 5 1/4" floppy disks that were buggy and crashed on a weekly basis. We got tips from the more mature (read high-school age) computer whizzes on how to fix games with diagnostic tools like Disk Doctor --- we also figured out how to use that to peek at source code and find answers to riddles in games like Zork!

3. While my father continued to stay up late every night playing with Assembly language, we gathered and mastered more and more games ... until I definitively pulled ahead of my sister in Ultima IV and Civilization II. Then she lost interest and only gradually came back from the computer graphics angle in a career in Medical Illustration. The interplay of graphics, role-playing, and fantasy worlds in games like Ultima really inspired me to make my own games ... I picked up books on BASIC and Pascal, typed in my first game from the back of an Atari magazine ("Thunderbird" ... a few hundred lines of spaghetti code BASIC, but it worked), studied a gaming language with more advanced concepts like sprites and color palettes, and really did make a prototype with a character moving around a tiled map interacting with treasure items, but then got distracted with high school.

4. I got seriously involved with more traditional sciences of Mathematics, Chemistry, and Physics in high school, and programming took a back seat until college. My grades in those subjects (and all others as well ... turns out when you realize you can get good at something, you get confidence to get good at anything) took off, I fell in love with Physics, and got accepted to Carnegie Mellon U..

5. CMU was, and is, a top place for CS, and computers permeated every student's life, even the drama majors had to learn Unix. So in my undergraduate life I used Unix everyday, loved its power and simplicity, even despite the Energizer Bunnies the hacker guys sent down everyone's screens in the computer labs, but still mostly used it for numerical applications in physics: pretty simple procedural Fortran and C for things like solving diff'l equations, simulating elementary particles bouncing off magnet geometries, or writing a tape data writer (internship at Fermilab). That kind of programming is pretty typical of researchers in hard sciences, and remained that way all through graduate school and post-docs.

6. Eventually I had to deal with OO code in a particle physics simulation package in my research while I was professor in SCU, but I really didn't grasp its power until entering private industry as an IT Consultant. Business applications are pretty much all OO C++, C#, or Java. At this point my knowledge exponentially climbed, I fell in love with algorithms, memory management, multi-threading, ... I had no idea the world of CS was so intricate and so, well, hard. I love challenges. Discrete systems are hard, as any physicist knows and tries to avoid them by modelling reality with continuous mathematics as long as possible. But did I mention I love challenges? And Discrete Systems are reality. You can't split a truck into 3.14 pieces. Intermodal networks are complicated graphs with all sorts of nasty constraints that can't be summarized in a one-line equation, but more like a 10-million record database. And as far as can tell, this may be an esoteric viewpoint, but I think computers dominate our society more and more because reality is a big messy discrete system, and computers are little discrete microcosms we can control to help deal with the macrocosm we're embedded in. I see physics and CS in a sort of dualistic play: physics takes you so far in one direction with general principles like energy conservation or, more elegantly, a Principle of Least Action, which really relies on assumptions of spacetime being continuous (it would be a miracle if one could get that strictly with discrete math), but then computers (i.e. discrete systems) enable you to do stuff with that principle like send rockets into space, which spurs more physics development, etc. the cycle continues.

7. So here I am at IBM working on statistical machine translation of natural languages, and you know I love it because I have a knack for learning languages, and I love speaking and thinking in different languages, it's like a different projection of reality. What's more, if we can get AI systems to the point of translating perfectly, we can't be far from them being able to synthesize new languages, more efficient natural languages that maybe shed light on the nature of reality. Or at least allow humans to communicate much better than they do now. This always bothered me as a physics researcher, that these brilliant minds theorizing about the nature of the cosmos had such difficulty exchanging ideas with each other. Maybe we need AI to help us talk to each other, help us round out our thoughts and suggest promising new tacks. Of course it will always be up to the wily human operator to yeah or nay the computer's advice ... we have this random touch with reality that gives us the edge.