Greetings, all!  It looks like the Europeans came to their senses and rejected American-style software patents.  See here for a ZDNet article on this.  There was a recent article in the Economist discussing the EU’s consideration of software patents, which got to the point much better than other articles I’ve read.


And before I write any more, I should emphasize that what I’m about to say are my own personal opinions and do not reflect Microsoft’s opinions or policies.


The Europeans made the right choice to avoid going down the route of the US .  America ’s patent system is way too generous regarding software patents (and this comes from someone who has a patent, albeit a highly obscure one that I barely remember now).  There have been some particularly bad cases of software patents that went too far (see here for a typical anti-software-patent site on the web that gives lots of examples of frivolous and over-broad patents).


The central fact with most technological innovation is that you need to build on the accomplishments of those who went before you.  In the field of physics, Einstein needed the work of people like Newton , Riemann, and Lorentz to formulate Special and General Relativity.  In the field of computer science, machine language, assembly language, and Fortran had to come before more refined high-level programming languages could be understood and formulated.  And in the software field, things change so quickly that a concept which is innovative one year can be commonplace and ubiquitous a few years later (consider the WWW itself or more recently, weblogs).  Furthermore, software is different from many fields in that key innovations need to be broadly shared and incorporated into programs so that software can collectively improve.  Society can’t move forward if some of these key building blocks are considered the patented property of a few.


I do think patents have their place.  Drugs, for example, are a classic case where it makes sense to reward big companies for the monumental investments needed to develop a drug, and where it doesn’t hold back progress to allow that company exclusive rights to that drug.  (With the exception of scenarios where a drug is needed in order to address a medical epidemic and monetary considerations need to be temporarily suspended.)


People say that patents tend to favor big companies, and that may be true.  But I would guess that patents are mostly used against big companies, too.  Bubba’s Software might be at risk of infringing on a patent from IBM, but is IBM going to care?  On the other hand, if Bubba’s Software has a patent that IBM may be infringing on, you can be sure Bubba’s going to get himself an ambulance chasing lawyer and try to soak Big Blue for all he can.


I recall several recent cases where Microsoft was alleged to have infringed upon a patent from some obscure company.  But you don’t read of many cases where Microsoft has gone after some tiny company for patent infringement.


For devs on the frontline at Microsoft, as with anywhere else, patents are a huge pain.  When implementing a feature, you have to worry about whether you’re infringing on a patent.  (And how the @$#% are you supposed to know that an algorithm which you and a couple other people sketched out on a board was filed as a patent by some obscure Japanese company three years ago??  Have your lawyers do a patent search for every nontrivial function in your program??)


Here’s a possibility.  Maybe what we need is to define a head of time a set of unsolved programming problems which, if solved, would be granted patents.  Some possibilities might be a cryptographic algorithm with certain properties, an e-mail system that is cheap, efficient, and spam-proof, a way of breaking the current prime number factoring limit, a 99.999% effective speech recognition program, etc.  If someone could solve such a problem, we’d grant them a patent for some reasonable period of time (say, 5 years).  The benefits of revolutionary progress would compensate for the years where the one company had a lock on the technology.


In any case, I hope we can fix the patent law in the US to severely restrict the issuance of software patents.  As the law currently stands, I believe they are doing more economic and technological harm than good.


[This posting is provided "AS IS" with no warranties, and confers no rights.]