home *** CD-ROM | disk | FTP | other *** search
/ ftp.ee.pdx.edu / 2014.02.ftp.ee.pdx.edu.tar / ftp.ee.pdx.edu / pub / lpf / info / patents.info < prev    next >
Text File  |  1992-11-03  |  34KB  |  702 lines

  1.    This is Info file patents.info, produced by Makeinfo-1.43 from the
  2. input file patents.texinfo.
  3.  
  4. 
  5. File: patents.info,  Node: Top,  Prev: (dir),  Up: (dir)
  6.  
  7.                          Against Software Patents
  8.  
  9.                             (February 28, 1991)
  10.  
  11.                     The League for Programming Freedom
  12.  
  13.    Software patents threaten to devastate America's computer industry. 
  14. Patents granted in the past decade are now being used to attack
  15. companies such as the Lotus Development Corporation for selling
  16. programs that they have independently developed.  Soon new companies
  17. will often be barred from the software arena--most major programs will
  18. require licenses for dozens of patents, and this will make them
  19. infeasible.  This problem has only one solution: software patents must
  20. be eliminated.
  21.  
  22. The Patent System and Computer Programs
  23. =======================================
  24.  
  25.    The framers of the United States Constitution established the patent
  26. system so that inventors would have an incentive to share their
  27. inventions with the general public.  In exchange for divulging an
  28. invention, the patent grants the inventor a 17 year monopoly on its
  29. use.  The patent holder can license others to use the invention, but
  30. may also refuse to do so.  Independent reinvention of the same
  31. technique by others does not give them the right to use it.
  32.  
  33.    Patents do not cover specific systems: instead, they cover
  34. particular techniques that can be used to build systems, or particular
  35. features that systems can offer.  Once a technique or feature is
  36. patented, it may not be used in a system without the permission of the
  37. patent-holder--even if it is implemented in a different way.  Since a
  38. computer program typically uses many techniques and provides many
  39. features, it can infringe many patents at once.
  40.  
  41.    Until recently, patents were not used in the software field. 
  42. Software developers copyrighted individual programs or made them trade
  43. secrets.  Copyright was traditionally understood to cover the
  44. implementation details of a particular program; it did not cover the
  45. features of the program, or the general methods used.  And trade
  46. secrecy, by definition, could not prohibit any development work by
  47. someone who did not know the secret.
  48.  
  49.    On this basis, software development was extremely profitable, and
  50. received considerable investment, without any prohibition on
  51. independent software development.  But this scheme of things is no
  52. more.  A change in U.S. government policy in the early 1980's
  53. stimulated a flood of applications.  Now many have been approved, and
  54. the rate is accelerating.
  55.  
  56.    Many programmers are unaware of the change and do not appreciate the
  57. magnitude of its effects.  Today the lawsuits are just beginning.
  58.  
  59. Absurd Patents
  60. ==============
  61.  
  62.    The Patent Office and the courts have had a difficult time with
  63. computer software.  The Patent Office refused until recently to hire
  64. Computer Science graduates as examiners, and in any case does not offer
  65. competitive salaries for the field.  Patent examiners are often
  66. ill-prepared to evaluate software patent applications to determine if
  67. they represent techniques that are widely known or obvious--both of
  68. which are grounds for rejection.
  69.  
  70.    Their task is made more difficult because many commonly-used
  71. software techniques do not appear in the scientific literature of
  72. computer science.  Some seemed too obvious to publish while others
  73. seemed insufficiently general; some were open secrets.
  74.  
  75.    Computer scientists know many techniques that can be generalized to
  76. widely varying circumstances.  But the Patent Office seems to believe
  77. that each separate use of a technique is a candidate for a new patent. 
  78. For example, Apple was sued because the Hypercard program allegedly
  79. violates patent number 4,736,308, a patent that covers displaying
  80. portions of two or more strings together on the screen--effectively,
  81. scrolling with multiple subwindows.  Scrolling and subwindows are
  82. well-known techniques, but combining them is now apparently illegal.
  83.  
  84.    The granting of a patent by the Patent Office carries a presumption
  85. in law that the patent is valid.  Patents for well-known techniques
  86. that were in use many years before the patent application have been
  87. upheld by federal courts.  It can be hard to prove a technique was
  88. well known at the time in question.
  89.  
  90.    For example, the technique of using exclusive-or to write a cursor
  91. onto a screen is both well known and obvious.  (Its advantage is that
  92. another identical exclusive-or operation can be used to erase the
  93. cursor without damaging the other data on the screen.)  This technique
  94. can be implemented in a few lines of a program, and a clever high
  95. school student might well reinvent it.  But it is covered by patent
  96. number 4,197,590, which has been upheld twice in court even though the
  97. technique was used at least five years before the patent application. 
  98. Cadtrak, the company that owns this patent, collects millions of
  99. dollars from large computer manufacturers.
  100.  
  101.    English patents covering customary graphics techniques, including
  102. airbrushing, stenciling, and combination of two images under control of
  103. a third one, were recently upheld in court, despite the testimony of
  104. the pioneers of the field that they had developed these techniques
  105. years before.  (The corresponding United States patents, including
  106. 4,633,416 and 4,602,286, have not yet been tested in court, but they
  107. probably will be soon.)
  108.  
  109.    All the major developers of spreadsheet programs have been
  110. threatened on the basis of patent 4,398,249, covering "natural order
  111. recalc"--the recalculation of all the spreadsheet entries that are
  112. affected by the changes the user makes, rather than recalculation in a
  113. fixed order.  Currently Lotus alone is being sued, but a victory for
  114. the plaintiff in this case would leave the other developers little
  115. hope.  The League has found prior art that may defeat this patent, but
  116. this is not assured.
  117.  
  118.    Nothing protects programmers from accidentally using a technique
  119. that is patented, and then being sued for it.  Taking an existing
  120. program and making it run faster may also make it violate half a dozen
  121. patents that have been granted, or are about to be granted.
  122.  
  123.    Even if the Patent Office learns to understand software better, the
  124. mistakes it is making now will follow us into the next century, unless
  125. Congress or the Supreme Court intervenes to declare these patents void.
  126.  
  127.    However, this is not the whole of the problem.  Computer
  128. programming is fundamentally different from the other fields that the
  129. patent system previously covered.  Even if the patent system were to
  130. operate "as intended" for software, it would still obstruct the
  131. industry it is supposed to promote.
  132.  
  133. What Is "Obvious"?
  134. ==================
  135.  
  136.    The patent system will not grant or uphold patents that are judged
  137. to be obvious.  However, the system interprets the word "obvious" in a
  138. way that might surprise computer programmers.  The standard of
  139. obviousness developed in other fields is inappropriate for software.
  140.  
  141.    Patent examiners and judges are accustomed to considering even
  142. small, incremental changes as deserving new patents.  For example, the
  143. famous `Polaroid vs. Kodak' case hinged on differences in the number
  144. and order of layers of chemicals in a film--differences between the
  145. technique Kodak was using and those described by previous, expired
  146. patents.  The court ruled that these differences were unobvious.
  147.  
  148.    Computer scientists solve problems quickly because the medium of
  149. programming is tractable.  They are trained to generalize solution
  150. principles from one problem to another.  One such generalization is
  151. that a procedure can be repeated or subdivided.  Programmers consider
  152. this obvious--but the Patent Office did not think that it was obvious
  153. when it granted the patent on scrolling multiple strings, described
  154. above.
  155.  
  156.    Cases such as this cannot be considered errors.  The patent system
  157. is functioning as it was designed to do--but with software, it produces
  158. outrageous results.
  159.  
  160. Patenting What Is Too Obvious to Publish
  161. ========================================
  162.  
  163.    Sometimes it is possible to patent a technique that is not new
  164. precisely because it is obvious--so obvious that no one would have
  165. published a paper about it.
  166.  
  167.    For example, computer companies distributing the free X Window
  168. System developed by MIT are now being threatened with lawsuits by AT&T
  169. over patent number 4,555,775, covering the use of "backing store" in a
  170. window system that lets multiple programs have windows.  Backing store
  171. means that the contents of a window that is temporarily partly hidden
  172. are saved in off-screen memory, so they can be restored quickly if the
  173. obscuring window disappears.
  174.  
  175.    Early window systems were developed on computers that could not run
  176. two programs at once.  These computers had small memories, so saving
  177. window contents was obviously a waste of scarce memory space.  Later,
  178. larger multiprocessing computers led to the use of backing store, and
  179. to permitting each program to have its own windows.  The combination
  180. was inevitable.
  181.  
  182.    The technique of backing store was used at MIT in the Lisp Machine
  183. System before AT&T applied for a patent.  (By coincidence, the Lisp
  184. Machine also supported multiprocessing.)  The Lisp Machine developers
  185. published nothing about backing store at the time, considering it too
  186. obvious.  It was mentioned when a programmers' manual explained how to
  187. turn it on and off.
  188.  
  189.    But this manual was published one week after the AT&T patent
  190. application--too late to count as prior art to defeat the patent.  So
  191. the AT&T patent may stand, and MIT may be forbidden to continue using a
  192. method that MIT used before AT&T.
  193.  
  194.    The result is that the dozens of companies and hundreds of
  195. thousands of users who accepted the software from MIT on the
  196. understanding that it was free are now faced with possible lawsuits. 
  197. (They are also being threatened with Cadtrak's exclusive-or patent.) 
  198. The X Window System project was intended to develop a window system
  199. that all developers could use freely.  This public service goal seems
  200. to have been thwarted by patents.
  201.  
  202. Why Software Is Different
  203. =========================
  204.  
  205.    Software systems are much easier to design than hardware systems of
  206. the same number of components.  For example, a program of 100,000
  207. components might be 50,000 lines long and could be written by two good
  208. programmers in a year.  The equipment needed for this costs less than
  209. $10,000; the only other cost would be the programmers' own living
  210. expenses while doing the job.  The total investment would be less than
  211. a $100,000.  If done commercially in a large company, it might cost
  212. twice that.  By contrast, an automobile typically contains under
  213. 100,000 components; it requires a large team and costs tens of
  214. millions of dollars to design.
  215.  
  216.    And software is also much cheaper to manufacture: copies can be made
  217. easily on an ordinary workstation costing under ten thousand dollars. 
  218. To produce a complex hardware system often requires a factory costing
  219. tens of millions of dollars.
  220.  
  221.    Why is this?  A hardware system has to be designed using real
  222. components.  They have varying costs; they have limits of operation;
  223. they may be sensitive to temperature, vibration or humidity; they may
  224. generate noise; they drain power; they may fail either momentarily or
  225. permanently.  They must be physically assembled in their proper places,
  226. and they must be accessible for replacement in case they fail.
  227.  
  228.    Moreover, each of the components in a hardware design is likely to
  229. affect the behavior of many others.  This greatly complicates the task
  230. of determining what a hardware design will do: mathematical modeling
  231. may prove wrong when the design is built.
  232.  
  233.    By contrast, a computer program is built out of ideal mathematical
  234. objects whose behavior is defined, not modeled approximately, by
  235. abstract rules.  When an if-statement follows a while-statement, there
  236. is no need to study whether the if-statement will draw power from the
  237. while-statement and thereby distort its output, nor whether it could
  238. overstress the while-statement and make it fail.
  239.  
  240.    Despite being built from simple parts, computer programs are
  241. incredibly complex.  The program with 100,000 parts is as complex as an
  242. automobile, though far easier to design.
  243.  
  244.    While programs cost substantially less to write, market and sell
  245. than automobiles, the cost of dealing with the patent system will not
  246. be less.  The same number of components will, on the average, involve
  247. the same number techniques that might be patented.
  248.  
  249. The Danger of a Lawsuit
  250. =======================
  251.  
  252.    Under the current patent system, a software developer who wishes to
  253. follow the law must determine which patents a program violates and
  254. negotiate with each patent holder a license to use that patent. 
  255. Licensing may be prohibitively expensive, or even unavailable if the
  256. patent is held by a competitor.  Even "reasonable" license fees for
  257. several patents can add up to make a project infeasible. 
  258. Alternatively, the developer may wish to avoid using the patent
  259. altogether; but there may be no way around it.
  260.  
  261.    The worst danger of the patent system is that a developer might
  262. find, after releasing a product, that it infringes one or many
  263. patents.  The resulting lawsuit and legal fees could force even a
  264. medium-size company out of business.
  265.  
  266.    Worst of all, there is no practical way for a software developer to
  267. avoid this danger--there is no effective way to find out what patents a
  268. system will infringe.  There is a way to try to find out--a patent
  269. search--but searches are unreliable and in any case too expensive to
  270. use for software projects.
  271.  
  272. Patent Searches Are Prohibitively Expensive
  273. ===========================================
  274.  
  275.    A system with a hundred thousand components can use hundreds of
  276. techniques that might already be patented.  Since each patent search
  277. costs thousands of dollars, searching for all the possible points of
  278. danger could easily cost over a million.  This is far more than the
  279. cost of writing the program.
  280.  
  281.    The costs don't stop there.  Patent applications are written by
  282. lawyers for lawyers.  A programmer reading a patent may not believe
  283. that his program violates the patent, but a federal court may rule
  284. otherwise.  It is thus now necessary to involve patent attorneys at
  285. every phase of program development.
  286.  
  287.    Yet this only reduces the risk of being sued later--it does not
  288. eliminate the risk.  So it is necessary to have a reserve of cash for
  289. the eventuality of a lawsuit.
  290.  
  291.    When a company spends millions to design a hardware system, and
  292. plans to invest tens of millions to manufacture it, an extra million
  293. or two to pay for dealing with the patent system might be bearable. 
  294. However, for the inexpensive programming project, the same extra cost
  295. is prohibitive.  Individuals and small companies especially cannot
  296. afford these costs.  Software patents will put an end to software
  297. entrepreneurs.
  298.  
  299. Patent Searches Are Unreliable
  300. ==============================
  301.  
  302.    Even if developers could afford patent searches, these are not a
  303. reliable method of avoiding the use of patented techniques.  This is
  304. because patent searches do not reveal pending patent applications
  305. (which are kept confidential by the Patent Office).  Since it takes
  306. several years on the average for a software patent to be granted, this
  307. is a serious problem: a developer could begin designing a large
  308. program after a patent has been applied for, and release the program
  309. before the patent is approved.  Only later will the developer learn
  310. that distribution of the program is prohibited.
  311.  
  312.    For example, the implementors of the widely-used public domain data
  313. compression program `compress' followed an algorithm obtained from the
  314. journal `IEEE Computer'.  (This algorithm is also used in several
  315. popular programs for microcomputers, including `PKZIP'.) They and the
  316. user community were surprised to learn later that patent number
  317. 4,558,302 had been issued to one of the authors of the article.  Now
  318. Unisys is demanding royalties for using this algorithm.  Although the
  319. program `compress' is still in the public domain, using it means
  320. risking a lawsuit.
  321.  
  322.    The Patent Office does not have a workable scheme for classifying
  323. software patents.  Patents are most frequently classified by end
  324. results, such as "converting iron to steel;" but many patents cover
  325. algorithms whose use in a program is entirely independent of the
  326. purpose of the program.  For example, a program to analyze human
  327. speech might infringe the patent on a speedup in the Fast Fourier
  328. Transform; so might a program to perform symbolic algebra (in
  329. multiplying large numbers); but the category to search for such a
  330. patent would be hard to predict.
  331.  
  332.    You might think it would be easy to keep a list of the patented
  333. software techniques, or even simply remember them.  However, managing
  334. such a list is nearly impossible.  A list compiled in 1989 by lawyers
  335. specializing in the field omitted some of the patents mentioned in
  336. this paper.
  337.  
  338. Obscure Patents
  339. ===============
  340.  
  341.    When you imagine an invention, you probably think of something that
  342. could be described in a few words, such as "a flying machine with
  343. fixed, curved wings" or "an electrical communicator with a microphone
  344. and a speaker".  But most patents cover complex detailed processes that
  345. have no simple descriptions--often they are speedups or variants of
  346. well-known processes that are themselves complex.
  347.  
  348.    Most of these patents are neither obvious nor brilliant; they are
  349. obscure.  A capable software designer will "invent" several such
  350. improvements in the course of a project.  However, there are many
  351. avenues for improving a technique, so no single project is likely to
  352. find any given one.
  353.  
  354.    For example, IBM has several patents (including patent number
  355. 4,656,583) on workmanlike, albeit complex, speedups for well-known
  356. computations performed by optimizing compilers, such as register
  357. coloring and computing the available expressions.
  358.  
  359.    Patents are also granted on combinations of techniques that are
  360. already widely used.  One example is IBM patent 4,742,450, which
  361. covers "shared copy-on-write segments."  This technique allows several
  362. programs to share the same piece of memory that represents information
  363. in a file; if any program writes a page in the file, that page is
  364. replaced by a copy in all of the programs, which continue to share
  365. that page with each other but no longer share with the file.
  366.  
  367.    Shared segments and copy-on-write have been used since the 1960's;
  368. this particular combination may be new as a specific feature, but is
  369. hardly an invention.  Nevertheless, the Patent Office thought that it
  370. merited a patent, which must now be taken into account by the
  371. developer of any new operating system.
  372.  
  373.    Obscure patents are like land mines: other developers are more
  374. likely to reinvent these techniques than to find out about the
  375. patents, and then they will be sued.  The chance of running into any
  376. one of these patents is small, but they are so numerous that you
  377. cannot go far without hitting one.  Every basic technique has many
  378. variations, and a small set of basic techniques can be combined in
  379. many ways.  The patent office has now granted at least 2000 software
  380. patents--no less than 700 in 1989 alone, according to a list compiled
  381. by EDS.  We can expect the pace to accelerate.  In ten years,
  382. programmers will have no choice but to march on blindly and hope they
  383. are lucky.
  384.  
  385. Patent Licensing Has Problems, Too
  386. ==================================
  387.  
  388.    Most large software companies are trying to solve the problem of
  389. patents by getting patents of their own.  Then they hope to
  390. cross-license with the other large companies that own most of the
  391. patents, so they will be free to go on as before.
  392.  
  393.    While this approach will allow companies like Microsoft, Apple and
  394. IBM to continue in business, it will shut new companies out of the
  395. field.  A future start-up, with no patents of its own, will be forced
  396. to pay whatever price the giants choose to impose.  That price might
  397. be high: established companies have an interest in excluding future
  398. competitors.  The recent Lotus lawsuits against Borland and the Santa
  399. Cruz Operation (although involving an extended idea of copyright
  400. rather than patents) show how this can work.
  401.  
  402.    Even the giants cannot protect themselves with cross-licensing from
  403. companies whose only business is to obtain exclusive rights to patents
  404. and then threaten to sue.  For example, consider the New York-based
  405. Refac Technology Development Corporation, representing the owner of the
  406. "natural order recalc" patent.  Contrary to its name, Refac does not
  407. develop anything except lawsuits--it has no business reason to join a
  408. cross-licensing compact.  Cadtrak, the owner of the exclusive-or
  409. patent, is also a litigation company.
  410.  
  411.    Refac is demanding five percent of sales of all major spread-sheet
  412. programs.  If a future program infringes on twenty such patents--and
  413. this is not unlikely, given the complexity of computer programs and the
  414. broad applicability of many patents--the combined royalties could
  415. exceed 100% of the sales price.  (In practice, just a few patents can
  416. make a program unprofitable.)
  417.  
  418. The Fundamental Question
  419. ========================
  420.  
  421.    According to the Constitution of the United States, the purpose of
  422. patents is to "promote the progress of science and the useful arts."
  423. Thus, the basic question at issue is whether software patents,
  424. supposedly a method of encouraging software progress, will truly do so,
  425. or will retard progress instead.
  426.  
  427.    So far we have explained the ways in which patents will make
  428. ordinary software development difficult.  But what of the intended
  429. benefits of patents: more invention, and more public disclosure of
  430. inventions?  To what extent will these actually occur in the field of
  431. software?
  432.  
  433.    There will be little benefit to society from software patents
  434. because invention in software was already flourishing before software
  435. patents, and inventions were normally published in journals for
  436. everyone to use.  Invention flourished so strongly, in fact, that the
  437. same inventions were often found again and again.
  438.  
  439. In Software, Independent Reinvention Is Commonplace
  440. ===================================================
  441.  
  442.    A patent is an absolute monopoly; everyone is forbidden to use the
  443. patented process, even those who reinvent it independently.  This
  444. policy implicitly assumes that inventions are rare and precious, since
  445. only in those circumstances is it beneficial.
  446.  
  447.    The field of software is one of constant reinvention; as some people
  448. say, programmers throw away more "inventions" each week than other
  449. people develop in a year.  And the comparative ease of designing large
  450. software systems makes it easy for many people to do work in the field. 
  451. A programmer solves many problems in developing each program.  These
  452. solutions are likely to be reinvented frequently as other programmers
  453. tackle similar problems.
  454.  
  455.    The prevalence of independent reinvention negates the usual purpose
  456. of patents.  Patents are intended to encourage inventions and, above
  457. all, the disclosure of inventions.  If a technique will be reinvented
  458. frequently, there is no need to encourage more people to invent it;
  459. since some of the developers will choose to publish it (if publication
  460. is merited), there is no point in encouraging a particular inventor to
  461. publish it--not at the cost of inhibiting use of the technique.
  462.  
  463. Overemphasis of Inventions
  464. ==========================
  465.  
  466.    Many analysts of American and Japanese industry have attributed
  467. Japanese success at producing quality products to the fact that they
  468. emphasize incremental improvements, convenient features and quality
  469. rather than noteworthy inventions.
  470.  
  471.    It is especially true in software that success depends primarily on
  472. getting the details right.  And that is most of the work in developing
  473. any useful software system.  Inventions are a comparatively unimportant
  474. part of the job.
  475.  
  476.    The idea of software patents is thus an example of the mistaken
  477. American preoccupation with inventions rather than products.  And
  478. patents will encourage this mistaken focus, even as they impede the
  479. development work that actually produces better software.
  480.  
  481. Impeding Innovation
  482. ===================
  483.  
  484.    By reducing the number of programmers engaged in software
  485. development, software patents will actually impede innovation.  Much
  486. software innovation comes from programmers solving problems while
  487. developing software, not from projects whose specific purpose is to
  488. make inventions and obtain patents.  In other words, these innovations
  489. are byproducts of software development.
  490.  
  491.    When patents make development more difficult, and cut down on
  492. development projects, they will also cut down on the byproducts of
  493. development--new techniques.
  494.  
  495. Could Patents Ever Be Beneficial?
  496. =================================
  497.  
  498.    Although software patents in general are harmful to society as a
  499. whole, we do not claim that every single software patent is necessarily
  500. harmful.  Careful study might show that under certain specific and
  501. narrow conditions (necessarily excluding the vast majority of cases) it
  502. is beneficial to grant software patents.
  503.  
  504.    Nonetheless, the right thing to do now is to eliminate all software
  505. patents as soon as possible, before more damage is done.  The careful
  506. study can come afterward.
  507.  
  508.    Clearly software patents are not urgently needed by anyone except
  509. patent lawyers.  The pre-patent software industry had no problem that
  510. was solved by patents; there was no shortage of invention, and no
  511. shortage of investment.
  512.  
  513.    Complete elimination of software patents may not be the ideal
  514. solution, but it is close, and is a great improvement.  Its very
  515. simplicity helps avoid a long delay while people argue about details.
  516.  
  517.    If it is ever shown that software patents are beneficial in certain
  518. exceptional cases, the law can be changed again at that time--if it is
  519. important enough.  There is no reason to continue the present
  520. catastrophic situation until that day.
  521.  
  522. Software Patents Are Legally Questionable
  523. =========================================
  524.  
  525.    It may come as a surprise that the extension of patent law to
  526. software is still legally questionable.  It rests on an extreme
  527. interpretation of a particular 1981 Supreme Court decision, `Diamond
  528. vs.  Deihr'.(1)
  529.  
  530.    Traditionally, the only kinds of processes that could be patented
  531. were those for transforming matter (such as, for transforming iron into
  532. steel).  Many other activities which we would consider processes were
  533. entirely excluded from patents, including business methods, data
  534. analysis, and "mental steps."  This was called the "subject matter"
  535. doctrine.
  536.  
  537.    `Diamond vs. Deihr' has been interpreted by the Patent Office as a
  538. reversal of this doctrine, but the court did not explicitly reject it. 
  539. The case concerned a process for curing rubber--a transformation of
  540. matter.  The issue at hand was whether the use of a computer program in
  541. the process was enough to render it unpatentable, and the court ruled
  542. that it was not.  The Patent Office took this narrow decision as a
  543. green light for unlimited patenting of software techniques, and even
  544. for the use of software to perform specific well-known and customary
  545. activities.
  546.  
  547.    Most patent lawyers have embraced the change, saying that the new
  548. boundaries of patents should be defined over decades by a series of
  549. expensive court cases.  Such a course of action will certainly be good
  550. for patent lawyers, but it is unlikely to be good for software
  551. developers and users.
  552.  
  553. One Way to Eliminate Software Patents
  554. =====================================
  555.  
  556.    We recommend the passage of a law to exclude software from the
  557. domain of patents.  That is to say that, no matter what patents might
  558. exist, they would not cover implementations in software; only
  559. implementations in the form of hard-to-design hardware would be
  560. covered.  An advantage of this method is that it would not be
  561. necessary to classify patent applications into hardware and software
  562. when examining them.
  563.  
  564.    Many have asked how to define software for this purpose--where the
  565. line should be drawn.  For the purpose of this legislation, software
  566. should be defined by the characteristics that make software patents
  567. especially harmful:
  568.  
  569.    * Software is built from ideal infallible mathematical components,
  570.      whose outputs are not affected by the components they feed into.
  571.  
  572.      Ideal mathematical components are defined by abstract rules, so
  573.      that failure of a component is by definition impossible.  The
  574.      behavior of any system built of these components is likewise
  575.      defined by the consequences of applying the rules step by step to
  576.      the components.
  577.  
  578.    * Software can be easily and cheaply copied.
  579.  
  580.    Following this criterion, a program to compute prime numbers is a
  581. piece of software.  A mechanical device designed specifically to
  582. perform the same computation is not software, since mechanical
  583. components have friction, can interfere with each other's motion, can
  584. fail, and must be assembled physically to form a working machine.
  585.  
  586.    Any piece of software needs a hardware platform in order to run. 
  587. The software operates the features of the hardware in some combination,
  588. under a plan.  Our proposal is that combining the features in this way
  589. can never create infringement.  If the hardware alone does not infringe
  590. a patent, then using it in a particular fashion under control of a
  591. program should not infringe either.  In effect, a program is an
  592. extension of the programmer's mind, acting as a proxy for the
  593. programmer to control the hardware.
  594.  
  595.    Usually the hardware is a general purpose computer, which implies no
  596. particular application.  Such hardware cannot infringe any patents
  597. except those covering the construction of computers.  Our proposal
  598. means that, when a user runs such a program on a general purpose
  599. computer, no patents other than those should apply.
  600.  
  601.    The traditional distinction between hardware and software involves a
  602. complex of characteristics that used to go hand in hand.  Some newer
  603. technologies, such as gate arrays and silicon compilers, blur the
  604. distinction because they combine characteristics associated with
  605. hardware with others associated with software.  However, most of these
  606. technologies can be classified unambiguously for patent purposes,
  607. either as software or as hardware, using the criteria above.  A few
  608. gray areas may remain, but these are comparatively small, and need not
  609. be an obstacle to solving the problems patents pose for ordinary
  610. software development.  They will eventually be treated as hardware, as
  611. software, or as something in between.
  612.  
  613. What You Can Do
  614. ===============
  615.  
  616.    One way to help eliminate software patents is to join the League for
  617. Programming Freedom.  The League is a grass-roots organization of
  618. programmers and users opposing software patents and interface
  619. copyrights.  (The League is not opposed to copyright on individual
  620. programs.)  Annual dues for individual members are $42 for employed
  621. professionals, $10.50 for students, and $21 for others.  We appreciate
  622. activists, but members who cannot contribute their time are also
  623. welcome.
  624.  
  625.    To contact the League, phone (617) 243-4091, send Internet mail to
  626. the address `league@prep.ai.mit.edu', or write to:
  627.  
  628.      League for Programming Freedom
  629.      1 Kendall Square #143
  630.      PO Box 9171
  631.      Cambridge, MA 02139
  632.  
  633.    In the United States, another way to help is to write to Congress. 
  634. You can write to your own representatives, but it may be even more
  635. effective to write to the subcommittees that consider such issues:
  636.  
  637.      House Subcommittee on Intellectual Property
  638.      2137 Rayburn Bldg
  639.      Washington, DC 20515
  640.      Senate Subcommittee on Patents, Trademarks and Copyrights
  641.      United States Senate
  642.      Washington, DC 20510
  643.  
  644.    You can phones your representatives at (202) 225-3121, or write to
  645. them using the following addresses:
  646.  
  647.      Senator So and So
  648.      United States Senate
  649.      Washington, DC 20510
  650.      
  651.      Representative Such and Such
  652.      House of Representatives
  653.      Washington, DC 20515
  654.  
  655. Fighting Patents One by One
  656. ===========================
  657.  
  658.    Until we succeed in eliminating all patenting of software, we must
  659. try to overturn individual software patents.  This is very expensive
  660. and can solve only a small part of the problem, but that is better
  661. than nothing.
  662.  
  663.    Overturning patents in court requires prior art, which may not be
  664. easy to find.  The League for Programming Freedom will try to serve as
  665. a clearing house for this information, to assist the defendants in
  666. software patent suits.  This depends on your help.  If you know about
  667. prior art for any software patent, please send the information to the
  668. League at the address given above.
  669.  
  670.    If you work on software, you can personally help prevent software
  671. patents by refusing to cooperate in applying for them.  The details of
  672. this may depend on the situation.
  673.  
  674. Conclusion
  675. ==========
  676.  
  677.    Exempting software from the scope of patents will protect software
  678. developers from the insupportable cost of patent searches, the wasteful
  679. struggle to find a way clear of known patents, and the unavoidable
  680. danger of lawsuits.
  681.  
  682.    If nothing is changed, what is now an efficient creative activity
  683. will become prohibitively expensive.  To picture the effects, imagine
  684. if each square of pavement on the sidewalk had an owner, and
  685. pedestrians required a license to step on it.  Imagine the
  686. negotiations necessary to walk an entire block under this system. 
  687. That is what writing a program will be like if software patents
  688. continue.  The sparks of creativity and individualism that have driven
  689. the computer revolution will be snuffed out.
  690.  
  691.    ---------- Footnotes ----------
  692.  
  693.    (1)  See "Legally Speaking" in `Communications of the ACM', August
  694. 1990.
  695.  
  696.  
  697. 
  698. Tag Table:
  699. Node: Top100
  700. 
  701. End Tag Table
  702.