The Innovation Tax
Novelty is hard to achieve, and I guess now the innovation tax is on every one. You think of something and that’s been invented 40 years ago at MIT or UCB or worse, even a 100 years ago by a couple of mathematicians corresponding over snail mail.
PDC’05 definitely has sent waves around right from the anouncement of C#3.0 with lambda expressions to the SQL based extension to the .NET languages called LINQ. LINQ basically is an extension of the language to allow SQL like syntaxes in languages such as VB and C#, which are more imperative in nature than declarative and LINQ is what lead me to write this post.
Ok, a quick trip down 9th standard geometry and a bit about circles, chords, and tangents. Circles are round geometric figures (actually its the loci of all points which are at a constant distance from a given point, but who cares about that..) and a tangent is a line that touches a curve at only one point (actually sometimes it might touch it at more than one point, and even though lines that seem to cut the curve and yet touch at only one point are not considered tangents..) and a chord of a circle ( can be extended to curves) is a line which cuts the circle at exactly 2 points.
Now, why all this geometry? Because in 9th standard while doodling on a paper I figured out a nice fact that, for any curve thats not broken in the middle, if I can draw a chord, I can always draw a tangent parallel to it. This was such a nice discovery that I tried my hand at proving it formally (aping the ideas of other proofs I’ve seen) and managed a hodge-podge version of it and was proud of it. Though, not the fields medal, I was atleast expecting a token of appreciation for that and what did I get? ‘ You will learn that in 11th when you learn Rolle’s theorem’. Damn, Mr.Rolle beat me to it.
(Math Geek Note : My re-discovery is exactly whats called the geometric interpretation of rolle’s theorem)
Thats when I dropped any ideas of a career in math (actually I dropped it in my 12th, but what the heck) and switched to computer science. It wasn’t like I wasn’t a computer geek before, but I was more of a math geek than a computer geek in the begining. Maybe that explains my predeliction for operator-ridden languages such as C to more verbose ones such as VB, preference for closed form solutions rather than pure programming style solutions and love of recursion and functional style of programming.
This phenomena of others having done every single thing you think of can get a little frustrating, when it repeats itself again and again right from small things to quite large things. And guess what? this happens again, with LINQ and VB 9.0. If you had been following my techie blog for sometime (which merged into this blog some time ago), you would probably know that I was working on this language called Runner, and I thought of one must have feature in runner called filters. And filters are basically similar to LINQ but are less verbose (uses 1 operator instead of a huge bunch of keywords), and don’t have support of databases or XML. But in essence the idea is the same? and now who beats me to it? Microsoft. I am not saying that I thought of this before guys at Microsoft did, but it must have been in the research labs for some time now. And as if to add salt to the wound I find this 25 line LISP macro which does have pretty much the same functionality (and more too) than my original filters idea.
This is not physics where every great idea was over with Einstein and Neils Bhor, but computer science and its been less than 50 years since it even started out. How smart does one really need to be original here?