-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathLEAGUE.DOC
1192 lines (953 loc) · 55.6 KB
/
LEAGUE.DOC
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Fight "Look and Feel" Lawsuits
Join the League for Programming Freedom
(Version of August 7, 1990)
The League for Programming Freedom is an organization of people who
oppose the attempt to monopolize common user interfaces through "look
and feel" copyright lawsuits. Some of us are programmers, who worry
that such monopolies will obstruct our work. Some of us are users,
who want new computer systems to be compatible with the interfaces we
know. Some are founders of hardware or software companies, such as
Richard P. Gabriel. Some of us are professors or researchers,
including John McCarthy, Marvin Minsky, Guy L. Steele, Jr., Robert S.
Boyer and Patrick Winston.
"Look and feel" lawsuits aim to create a new class of
government-enforced monopolies broader in scope than ever before.
Such a system of user-interface copyright would impose gratuitous
incompatibility, reduce competition, and stifle innovation.
We in the League hope to prevent these problems by preventing
user-interface copyright. The League is not opposed to copyright
law as it was understood until 1986--copyright on particular
programs. Our aim is to stop changes in the copyright system which
would take away programmers' traditional freedom to write new
programs compatible with existing programs and practices.
The League for Programming Freedom will act against the doctrine
behind look-and-feel suits by any means consistent with the law and
intellectual liberty. We will write editorials, talk with public
officials, file amicus curiae briefs with the courts, and boycott
egregious offenders. On May 24th, 1989, we picketed Lotus
headquarters on account of their lawsuits, and then again on August 2,
1990. These marches stimulate widespread media coverage for the
issue. If you have other ideas, please suggest them.
The League is also opposed to software patents, potentially even more
dangerous than look-and-feel copyright. Patents threaten to make
every design decision in software development a chance for a lawsuit.
However, there is no way we can get rid of them except by organizing
to make Congress hear our voice.
Unless new forms of monopolistic practices arise, these are the only
issues that the League plans to act on.
Membership dues in the League are $42 per year for programmers,
managers and professionals; $10.50 for students; $21 for others.
Please give more if you can. The League's funds will be used for
filing briefs; for printing handouts, buttons and signs; whatever will
influence the courts, the legislators, and the people. You won't get
anything personally for your dues--except for the freedom to write
programs. The League is a non-profit corporation, but because it is a
lobbying organization, your contributions may not be tax-deductible.
We also accept corporate (nonvoting) members; please phone or write
for more information.
The League needs both activist members and members who only pay their
dues.
If you have any questions, please write to the League or phone
(617) 243-4091. Or send Internet mail to [email protected].
Richard Stallman, President
Chris Hofstader, Secretary
Denis Filipetti, Treasurer
To join, please send a check and the following information to:
League for Programming Freedom
1 Kendall Square #143
P.O.Box 9171
Cambridge, Massachusetts 02139
(Outside the US, please send a check in US dollars from a bank with
connections to the US, to save us check cashing fees.)
Your name:
Your address, where we should write to you for elections and such:
The company you work for, and your position:
Your phone numbers (home, work or both) and email address, so we can
contact you for demonstrations or for writing letters. (If you don't
want us to contact you for these things, please say so; your support
as a member is helpful nonetheless.)
Is there anything about you which would enable your endorsement of the
LPF to impress the public? For example, if you are or have been a
professor or an executive, or have written software that has a good
reputation, please tell us.
Would you like to help with LPF activities?
The corporate charter of the League for Programming Freedom states:
The purpose of the corporation is to engage in the following
activities:
1. To determine the existence of, and warn the public about
restrictions and monopolies on classes of computer programs where such
monopolies prevent or restrict the right to develop certain types of
computer programs.
2. To develop countermeasures and initiatives, in the public interest,
effective to block or otherwise prevent or restrain such monopolistic
activities including education, research, publications, public
assembly, legislative testimony, and intervention in court proceedings
involving public interest issues (as a friend of the court).
3. To engage in any business or other activity in service of and
related to the foregoing paragraphs that lawfully may be carried on
by a corporation organized under Chapter 180 of the Massachusetts
General Laws.
The officers and directors of the League will be elected annually by
the members.
\input texinfo
@setfilename look-and-feel
@center @titlefont{Against User Interface Copyright}
@sp 1
@center (August 7, 1990)
@sp 1
@center The League for Programming Freedom
In June 1990, Lotus won a copyright infringement suit against Paperback
Software, a small company that implemented a spreadsheet that obeys the
same keystroke commands used in Lotus 1-2-3. Paperback was not accused
of copying code from 1-2-3; only of supporting compatible user commands.
Such imitation was common practice until unexpected court decisions in
recent years extended the scope of copyright law.
Within a week, Lotus went on to sue Borland over Quattro, a spreadsheet
whose usual interface has only a few similarities to 1-2-3. Lotus
claims that these similarities in keystroke sequences and/or the ability
to customize the interface to emulate 1-2-3 are enough to infringe.
More ominously, Apple Computer has sued Microsoft and Hewlett Packard
for implementing a window system whose displays partially resemble those
of the Macintosh system. Subsequently Xerox sued Apple for implementing
the Macintosh system, which derives some general concepts from the
earlier Xerox Star system. These suits try to broaden the Lotus
decision and establish copyright on a large class of user interfaces.
The Xerox lawsuit was dismissed because of a technicality; but if their
planned appeal succeeds, a monopoly of unprecedented scope could still
result.
And Ashton-Tate has sued Fox Software for implementing a database
program that accepts the same programming language used in dBase. This
is a radical demand, but in the current judicial climate, the threat
cannot be dismissed.
This paper addresses primarily the issue of copyright on specific user
interfaces, but most of the arguments apply with added force to any
broader monopoly.
@heading What Is a User Interface?
A user interface is what you have to learn to operate a machine. The
user interface of a typewriter is the layout of the keys. The user
interface of a car includes a steering wheel for turning, pedals to
speed up and slow down, a lever to signal turns, etc.
When the machine is a computer program, the interface includes that of
the computer---its keyboard, screen and mouse---plus those aspects
specific to the program. These typically include the commands, menus,
programming languages, and the way data is presented on the screen.
A copyright on a user interface copyright means a government-imposed
monopoly on its use. In the example of the typewriter, this would mean
that each manufacturer would be forced to arrange the keys in a
different layout.
@heading The Purpose of Copyright
In the United States, the Constitution says that the purpose is to
``promote the progress of science and the useful arts.'' Conspicuously
absent is any hint of intention to enrich copyright holders to the
detriment of the users of copyrighted works.
The Supreme Court made the reason for this absence explicit, stating in
@cite{Fox Film vs.@: Doyal} that ``The sole interest of the United
States and the primary object in conferring the [copyright] monopoly lie
in the general benefits derived by the public from the labors of
authors.''
In other words, since copyright is a government-imposed monopoly,
which interferes with the freedom of the public in a significant way,
it is justified only if it helps the public more than it costs.
The spirit of individual freedom must, if anything, incline us against
monopoly. Following either the Supreme Court or the principle of
freedom, the fundamental question is: what value does user interface
copyright offer the public---and what price would we have to pay for it?
@heading Reason #1: More Incentive Is Not Needed
The developers of the Star, the Macintosh system, 1-2-3 and dBase
claim that without interface copyright there would be insufficient
incentive to develop such products. This is disproved by their own
actions.
Until 1986, user interface copyright was unheard of. The computer
industry developed under a system where imitating a user interface was
both standard practice and lawful. Under this system, today's
plaintiffs made their decisions to develop their products. When faced
with the choice in actuality, they decided that they did, indeed, have
``enough incentive''.
Even though competitors were free to imitate these interfaces, this did
not prevent most of them from being successful and producing a large
return on the investment. In fact, they were so successful that they
became de-facto standards. (The Xerox Star was a failure due to poor
marketing even though nothing similar existed.)
Even if interface copyright would increase the existing incentive,
additional improvements in user interfaces would not necessarily result.
Once you suck a bottle dry, more suction won't get more out of it. The
existing incentive is so great that it may well suffice to motivate
everyone who has an idea worth developing. Extra incentive, at the
public's expense, will only increase the price of these developments.
@heading Reason #2: ``Look and Feel'' Will Not Protect Small Companies
The proponents of user interface copyright claim that it would protect
small companies from being wiped out by large competitors. Yet look
around: today's interface copyright plaintiffs are large, established
companies. User interface copyright is crushing when the interface is
an effective standard. However, a small company is vulnerable when
their product is little used, and its interface is little known. In
this situation, user interface copyright won't help the small company
much.
Imagine a small company with 10,000 customers. A large company may
believe there is a potential market for a similar product of a million
users that the small company has not reached. The large company will
try to use its marketing might to reach them before the small company
can.
User interface copyright won't change this outcome. Forcing the large
company to develop an incompatible interface will have little effect on
the majority of potential customers, those who have not learned the
other interface. They will buy from the large company anyway.
What's more, interface copyright will work against the small company if
the large company's product becomes an effective standard. Then new
customers will have an additional reason to prefer the large company.
To survive, the small company will need to offer compatibility with this
standard---but, due to user interface copyright, it will not be allowed
to do so.
Instead of relying upon monopolistic measures, small companies are
most successful when they rely on their own inherent advantages:
agility, low overhead, and willingness to take risks.
@heading Reason #3: Diversity in Interfaces is Not Desirable
The Copyright system was designed to encourage diversity; its details
work toward this end. Diversity is the primary goal when it comes to
novels, songs, and the other traditional domains of copyright. Readers
want to read novels they have not yet read.
But diversity is not the goal of interface design. Computer users want
consistency in interfaces because this promotes ease of use. Thus, by
standardizing street signs and symbols on automobile dashboards, we have
made it possible for any driver in the world to operate any car with
virtually no instruction. Incompatibility in interfaces is a price to
be paid when worthwhile, not a benefit.
Significantly better interfaces may be hard to think of, but it is easy
to invent interfaces which are merely different. Interface copyright
will surely succeed in encouraging this sort of ``interface
development''. The result will be gratuitous incompatibility.
@heading Reason #4: Meaningful Competition Will Be Reduced
Under the regime of interface copyright, there will be no compatible
competition for established products. For a user to switch to a
different brand will require retraining.
But users don't like to retrain, not even for a significant improvement.
For example, the Dvorak keyboard layout, invented several decades ago,
enables a typist to type much faster and more accurately than is
possible with the standard ``QWERTY'' layout. Nonetheless, few people
use it. Even new typists don't learn Dvorak, because they want to learn
the layout used on most typewriters.
Alternative products that require such an effort by the consumer are not
effective competition. The monopoly on the established interface will
yield in practice a monopoly on the functionality accessed by it. This
will cause higher prices and less technological advancement---a windfall
for lucky businesses, but bad for the public at large.
@heading Reason #5: Incompatibility Does Not Go Away
If there had been a 50-year interface copyright for the steering
wheel, it would have expired not long ago. During the span of the
copyright, we would have got cars steered with joysticks, cars steered
with levers, and cars steered with pedals. Each car user would have
had to choose a brand of car to learn to drive, and it would not be
easy to switch.
The expiration of the copyright would have freed manufacturers to switch
to the best of the known interfaces. But if Ford cars were steered with
wheels and General Motors were steered with pedals, neither company
could change interface without abandoning their old customers. It would
take decades to converge on a single interface.
@heading Reason #6: Users Have Invested More Money Than Developers
The plaintiffs like to claim that user interfaces represent large
investments on their part.
In fact, the effort spent designing the user interface of a computer
program is usually small compared to the cost of developing the
program itself. The people who make a large investment in the user
interface are the users who train to use it. Users have spent much
more time and money learning to use 1-2-3 than Lotus spent developing
the entire program, let alone what Lotus spent develop the program's
interface @emph{per se}.
Thus, if investment justifies ownership, it is the users who should be
the owners. The users should be allowed to decide---in the
marketplace---who may use it. According to Infoworld magazine (mid
January 1989), computer users in general expect user interface copyright
to be harmful.
@heading Reason #7: Discrimination Against Software Sharing
User interface copyright discriminates against freely redistributable
software, such as freeware, shareware and public domain software.
Although it @emph{may} be possible to license an interface for a
proprietary program, if the owner is willing, these licenses require
payment, usually per copy. There is no way to collect this payment for
a freely redistributable program. The result will be a growing body of
interfaces that are barred to non-proprietary software.
Authors of these programs donate to the public the right to share them,
and sometimes also to study and change their workings. This is a public
service, and one less common than innovation. It does not make sense to
encourage innovation of one sort with means that bar donation of another
sort.
@heading Reason #8: Copyright Will Be a Tool For Extortion
The scope of interface copyright is so vague and potentially wide that
it will be difficult for any programmer to be sure of being safe from
lawsuits. Most programs need an interface, and there is usually no way
to design an interface except based on the ideas you have seen used
elsewhere. Only a great genius would be likely to envision a usable
interface without a deep resemblance to current practice. It follows
that most programming projects will risk an interface infringement suit.
The spirit of ``Millions for defense, but not a cent for tribute'' is
little honored in business today. Customers and investors often avoid
companies that are targets of suits; an eventual victory may come years
too late to prevent great loss or even bankruptcy. Therefore, when
offered a choice between paying royalties and being sued, most
businesses pay, even if they would probably win.
Since this tendency is well known, companies often take advantage of it
by filing or threatening suits they are unlikely to win. As long as any
interface copyright exists, this form of extortion will broaden its
effective scope.
@heading Reason #9: Interface Copyright Inhibits Useful Innovation
Due to the evolutionary nature of interface development, interface
copyright will actually retard progress.
Fully fleshed-out interfaces don't often arise as @emph{tours de force}
>from the minds of isolated masters. They result from repeated
implementations, by different groups, each learning from the results of
previous attempts. For example, the Macintosh interface was based on
ideas tried previously by Xerox and SRI, and before that by the Stanford
Artificial Intelligence Laboratory. The Xerox Star also drew on the
interface ideas that came from SRI and SAIL. 1-2-3 adapted the
interface ideas of Visicalc and other spreadsheets. dBase drew on a
program developed at the Jet Propulsion Laboratory.
This evolutionary process resembles the creation of folk art rather than
the way symphonies, novels or films are made. The advances that we
ought to encourage are most often small, localized changes to what
someone else has done. If each interface has an owner, it will be
difficult to implement such ideas. Even assuming the owner will license
the interface that is to be improved, the inconvenience and expense
would discourage all but the most determined.
Users often appreciate small, incremental changes that make programs
easier or faster to use. This means changes that are upwards
compatible, or affect only part of a well-known interface. Thus, on
computer keyboards, we now have function keys, arrow keys, a delete key
and a control key, which typewriters did not have. But the layout of
the letters is unchanged.
However, such partial changes as this are not be permitted by copyright
law. If any significant portion of the new interface is the same as a
copyrighted interface, the new interface is illegal.
@heading Reason #10: Interface Developers Don't Want Copyright
At the 1989 ACM Conference on Computer-Human Interaction, Professor
Samuelson of Emory School of Law presented a ``mock trial'' with legal
arguments for and against user interface copyright, and then asked the
attendees---researchers and developers of user interfaces---to fill out
a survey of their opinion on the subject.
The respondents overwhelmingly opposed all aspects of user interface
copyright; by as much as 4 to 1 for some aspects. When they were asked
whether user interface copyright would harm or help the field, on a
scale from 1 to 5, the average answer was 1.6.@footnote{See the May 1990
issue of the Communications of the ACM, for the full results.}
The advocates of user interface copyright say that it would provide
better security and income for user interface designers. However, the
survey shows that these supposed beneficiaries would prefer to be let
alone.
@heading Do You Really Want a User Interface Copyright, Anyway?
For a business, ``locking in'' customers may be profitable for a time.
But, as the vendors of proprietary operating systems have found out,
this generates resentment and eventually drives customers to try to
escape. In the long run, this leads to failure.
Therefore, by permitting user interface copyright, society encourages
counterproductive thinking in its businesses. Not all businesses can
resist this temptation; let us not tempt them.
@heading Conclusion
Monopolies on user interfaces do not serve the users and do not
``promote the progress of science and the useful arts.'' User
interfaces ought to be the common property of all, as they undisputedly
were until a few years ago.
@heading What You Can Do
@comment Feel free to delete this section when sending a copy
@comment to a politician
@itemize @bullet
@item
Don't do business as usual with the plaintiffs, Xerox, Lotus, Apple and
Ashton-Tate. Buy from their competitors instead; sell their stock;
develop new software for other computer systems and port existing
applications away from their systems.
@item
Above all, don't work for the ``look and feel'' plaintiffs, and don't
accept contracts from them.
@item
Join the League for Programming Freedom. The League is a grass-roots
organization of programmers and users opposing software patents and
interface copyrights. Annual dues for individual members are $42 for
employed professionals, $10.50 for students, and $21 for others. We
appreciate activists, but members who cannot contribute their time are
also welcome.
Phone the League at (617) 243-4091, send Internet mail to
@code{league@@prep.ai.mit.edu}, or write to:
@display
League for Programming Freedom
1 Kendall Square #143
P.O. Box 9171
Cambridge, MA 02139
@end display
@item
Give copies of this paper to your friends, colleagues and customers.
@item
In the United States, write to your representatives and to these
Congressional subcommittees:
@display
House Subcommittee on Intellectual Property
2137 Rayburn Bldg
Washington, DC 20515
Senate Subcommittee on Patents, Trademarks and Copyrights
United States Senate
Washington, DC 20510
@end display
@item
In Europe, there is currently no user interface copyright, but the
European Commission is proposing to institute it. Express your
opposition by writing to:
@display
Jean-Francois Verstrynge
DG 3/D/4
Commission of the European Communities
200 Rue de la Loi
1049 Bruxelles
BELGIUM
@end display
Also write to your own representative to the European Parliament.
@end itemize
@bye
\input texinfo @c -*-texinfo-*-
@comment %**start of header
@setfilename patents.info
@comment %**end of header
@sp 7
@center @titlefont{Against Software Patents}
@sp 1
@center (August 7, 1990)
@sp 1
@center The League for Programming Freedom
Software patents threaten to devastate America's computer industry.
Newly-granted software patents are being used to attack companies such
as the Lotus Development Corporation and Microsoft for selling programs
that they have independently developed. Soon new companies may be
barred from entering the software arena, because the cost of licensing
the dozens of patents necessary for a major program will make such a
project economically impossible.
As programmers, we believe that if the United States Patent and
Trademark Office continues to grant software patents, we will soon be
effectively forbidden from writing programs that are useful.
@heading The Patent System and Computer Programs
The framers of the Constitution established the patent system so that
inventors would have an incentive to share their inventions with the
general public. In exchange for divulging an invention, the patent
grants the inventor a 17 year monopoly on the use of the invention. The
patent holder can license others to use the invention, but may also refuse to
do so. Independent reinvention of the same technique by others does
not let them use it.
Patents do not cover specific programs: instead, they cover particular
techniques that are used to build programs, or particular features that
programs offer. Once a technique or feature is patented, it may not be
used in another program without the permission of the
patent-holder---even if it is implemented in a different way. Since a
program typically uses many techniques and provides many features, it
can infringe many patents at once.
Until recently, patents were simply not used in the field of software.
Software developers would copyright individual programs, or make them
trade secrets.
Copyright was traditionally understood to cover the particular details
of a particular program; it did not cover the features of the program,
or the general methods used. And trade secrecy, by definition, could
not prohibit any development work by someone who did not know the
secret.
On this basis, software development was extremely profitable, and
received considerable investment, without prohibiting the development of
new programs by others.
But this scheme of things is no more. Software patents became legal in
the U.S. in 1981, and now enough time has elapsed for numerous patents
to be approved.
Many programmers are unaware of the change and do not appreciate the
magnitude of its effects. Today the lawsuits are just beginning.
@heading Absurd Patents
The Patent Office and the courts have had a very difficult time with
computer software. The Patent Office refuses to hire Computer Science
graduates as examiners, and in any case does not offer competitive
salaries for the field. Patent examiners are often ill-prepared to
evaluate software patent applications to determine if they represent techniques
which have been previously used or are obvious---both of which are
grounds for rejection.
Their task is made more difficult because many commonly-used software
techniques do not appear in the scientific literature of computer
science. Some seemed too obvious to publish, others seemed
insufficiently general. Complicated assemblages of techniques have
often been kept secret.
And what is obvious to a programmer is frequently not obvious to a
patent examiner, many of whom view innovations in computer science the
same way as they see innovations in chemistry or biology. Computer
scientists know many techniques that can be generalized to widely
varying circumstances. Based on patents that have been awarded, the
Patent Office seems to believe that each separate use of a technique is
a candidate for a patent.
For example, Apple has been sued because the Hypercard program violates
patent number 4,736,308, a patent that describes nested scrollable
objects: windows that can scroll, containing tables that can
individually scroll, containing items that can individually scroll.
These three types of scrolling were all in use at the time that patent
number 4,736,308 was applied for, but combining them is now illegal.
Many well-known and widely used techniques have been patented.
Unfortunately, the granting of a patent by the Patent Office carries a
presumption in law that the patent is valid. Patents for well-known
techniques that were in use for more than 10 years before the patent was
granted have been upheld by federal courts.
For example, the technique of using exclusive-or to write a cursor onto
a screen is well known, and has been used for decades. (Its advantage
is that another identical exclusive-or operation can be used to erase
the cursor without damaging the other data on the screen.) This
technique can be used in just a few lines of program, and a clever high
school student might well reinvent it. But this, as well as other
important graphics techniques, is covered by patent number 4,197,590,
which has been upheld twice in court.
English patents covering customary graphics techniques, including
airbrushing, stenciling, and combination of two images under control of
a third one, were recently upheld in court, despite the testimony of the
pioneers of the field that they had developed these techniques years
before. (The corresponding United States patents, including 4,633,416
and 4,602,286, have not yet been tested in court, but they probably will
be soon.)
Currently all companies who have developed spreadsheet programs are
being sued because of a patent 4,398,249, covering ``natural order
recalc''---the recalculation of all the spreadsheet entries that are
affected by the changes the user makes, rather than recalculation in a
fixed order. This technique is very similar to the old artificial
intelligence techniques of antecedent reasoning and constraint
propagation, but we cannot rely on the courts to overturn the patent on
these grounds.
Nothing protects programmers from accidentally using a technique that is
patented---and then being sued for it. Taking an existing program and
making it run faster may also make it violate half a dozen patents that
have been granted, or are about to be granted.
Even if the Patent Office learns to understand software better, the
mistakes it is making now will follow us into the next century, unless
Congress or the Supreme Court intervenes to declare them void.
However, this is not the extent of the problem. Computer programming is
fundamentally different from the other fields that the patent system
previously covered. As a result, even if the patent system were fixed
to operate ``as intended'' for software, it would still largely wipe out
the industry it is ostensibly designed to encourage.
@heading Why Software Is Different
Software systems are much easier to design than hardware systems of the
same number of components. For example, a program of a hundred thousand
components might be fifty thousand lines long and could be written by
two good programmers in a year. The equipment needed for this costs
less than ten thousand dollars; the only other cost would be the
programmers' own living expenses while doing the job. The total
investment would be less than a hundred thousand dollars. If done
commercially in a large company, it might cost twice that. By contrast,
an automobile typically contains under a hundred thousand components; it
requires a large team and costs tens of millions of dollars to design.
And software is also much cheaper to manufacture: copies can be made
easily on an ordinary workstation costing under ten thousand dollars.
To produce a hardware system often requires a factory costing tens of
millions of dollars.
Why is this? A hardware system has to be designed using real
components. They have varying costs; they have limits of operation;
they may be sensitive to temperature, vibration or humidity; they may
generate noise; they drain power; they may fail either momentarily or
permanently. They must be physically inserted in their place in the
machinery, and it must be possible to gain access to them to test or
replace them.
Moreover, each of the components in a hardware design is likely to
affect the behavior of many others. Therefore, is it very hard to
figure out what a hardware design will do: mathematical modeling may
prove wrong when the design is built.
By contrast, a computer program is built out of ideal mathematical
objects whose behavior is defined, not merely modeled approximately, by
abstract rules. When you write an if-statement after a while-statement,
you don't have to worry that the if-statement will draw power from the
while-statement and thereby distort its output, nor that it will
overstress the while-statement and make it fail.
Despite the fact that they are built from simple parts, computer
programs are incredibly complex. The program with fifty thousand lines
probably has a hundred thousand parts, making it as complex as an
automobile, though far easier to design.
While programs cost substantially less to write, market and sell than
automobiles, the cost of dealing with the patent system is not less.
The same number of components will, in general, be likely to involve the
same number of possibly-patented techniques.
@heading What Is ``Obvious''?
The patent system will not grant or uphold patents that are judged to be
``obvious.'' However, the standard of obviousness that the patent
system has developed in other fields is inappropriate to the software
field.
Patent examiners are accustomed to considering even small, incremental
changes as deserving new patents. For example, the famous
@cite{Polaroid vs.@: Kodak} case turned on differences in the number and
order of layers of chemicals in a film---differences between the
technique Kodak was using and those described by previous, expired
patents. The court ruled that these differences were unobvious.
Computer scientists solve problems far faster than people in other
disciplines, because the medium of programming is more tractable. So
they are trained to generalize solution principles from one problem to
another. One such generalization is that a procedure can be repeated
within itself, a process known as nesting. Nesting in software is
obvious to computer programmers---but the Patent Office did not think
that it was obvious when it granted the patent on nested scrolling, for
which Apple was sued.
Cases such as this cannot be considered errors. The patent system is
functioning in software just as it does in other fields---but with
software, the result is outrageous.
@heading Patenting What Is Too Obvious to Publish
Sometimes it is possible to patent a technique that is not new precisely
because it is obvious---so obvious that no one saw a point in writing
about it.
For example, computer companies distributing the free X Window System
developed by MIT are now being threatened with lawsuits by AT&T over
patent number 4,555,775, covering the use of ``backing store''. This
technique is used when there are overlapping windows; the contents of a
window that is partly hidden are saved in off-screen memory, so they can
be put back quickly on the screen if the obscuring window disappears (as
often happens).
In fact, the technique of backing store was used in an earlier MIT
project, the Lisp Machine System, before AT&T applied for the patent.
But the Lisp Machine developers did not publish anything mentioning the
use of backing store
until the
programmers' reference manual was written some years later.
They expected that any window system developer would have the same idea,
given that the memory of the computer was large enough to make the idea
practical. (Earlier window systems, such as those at Xerox, did not use
backing store because the computers in use had insufficient memory space
to spare any for this purpose.)
Without a publication, the use of backing store in the Lisp Machine
System may not count as prior art to defeat the patent. So the AT&T
patent may be enforceable, and MIT may be forbidden to continue using a
method that MIT used before AT&T.
The result is that the dozens of companies and hundreds of thousands of
users who accepted the software from MIT on the understanding that it
was free are now faced with possible lawsuits.@footnote{They are being
threatened by Cadtrak as well.} The X Windows Project was intended to
develop a window system that all developers could use freely. Because
of software patents, this public service goal seems to have been
thwarted.
@heading The Danger of a Lawsuit
Under the current patent system, a software developer who wishes to
follow the law must determine which patents his program violates and
negotiate with each patent holder a license to use that patent.
Licensing may be prohibitively expensive, as in the case when the patent
is held by a competitor. Even ``reasonable'' license fees for several
patents can add up to make a project unfeasible. Alternatively, the
developer may wish to avoid using the patent altogether; unfortunately,
there may be no way around it.
The worst danger of the patent system is that a developer might find,
after releasing a product, that it infringes one or many patents. The
resulting lawsuit and legal fees could force even a medium-size company
out of business.
Worst of all, there is no practical way for a software developer to
avoid this danger---there is no effective way to find out what patents a
system will infringe. There is a way to try to find out---a patent
search---but such searches are unreliable and in any case too expensive to
use for software projects.
@heading Patent Searches Are Prohibitively Expensive
In a system with a hundred thousand components, there can easily be
hundreds of techniques that might already be patented. Since each
patent search costs thousands of dollars, searching for all the possible
points of danger could easily cost over a million. This is far more
than the cost of writing the program.
But the costs don't stop there. Patent applications are written by
lawyers for lawyers. A programmer reading a patent may not believe that
his program violates the patent, but a federal court may rule otherwise.
It is thus now necessary to involve patent attorneys at every phase of
program development.
Yet such involvement only reduces the risk of being sued later---it
does not eliminate the risk. So it is necessary to have a reserve of
cash for the eventuality of a lawsuit.
When a company spends millions to design a hardware system, and plans to
invest tens of millions to manufacture it, an extra million or two to
pay for dealing with the patent system might be bearable. However, for
the inexpensive programming project, the same extra cost is prohibitive.
In particular, individuals and small companies cannot afford these
costs. Software patents will put an end to software entrepreneurs.
@heading Patent Searches Are Unreliable
Even if companies could afford the heavy cost of patent searches, they
are not a reliable method of avoiding the use of patented techniques.
This is because patent searches do not reveal pending patent
applications (which are kept confidential by the Patent Office).
Since it takes several years on the average for a patent to be
granted, this is a serious problem: a company could begin designing a
large program after a patent has been applied for, and release the
program before the patent is approved. Only later will that company
find out whether its profits will be confiscated.
For example, the implementors of the widely-used public domain program
@code{compress} followed an algorithm obtained from the journal,
@cite{IEEE Computer}. They and the user community were surprised to
learn later that patent number 4,558,302 had been issued to one of the
authors of the article. Now Unisys is demanding royalties for using
this algorithm. Although the program is still in the public domain,
using it means risking a lawsuit. And implementing the algorithms
found in the journals is no longer safe.
In addition, the Patent Office does not have a workable scheme for
classifying software patents. Patents are most frequently classified by
the activity they are used in, such as ``converting iron to steel;'' but
many patents cover algorithms whose use in a program is entirely
independent of the purpose of the program. For example, a program to
analyze human speech might infringe the patent on a speedup in the Fast
Fourier Transform; so might a program to perform symbolic algebra (in
multiplying large numbers); but the category to search for such a patent
would be hard to predict.
You might think it would be easy to keep a list of the patented software
techniques, or even simply remember them. However, managing such a list
is nearly impossible in practice. The patent office has now granted
more than 2000 software patents. In 1989 alone, 700 patents were
issued. We can expect the pace to accelerate.
When you think of inventions, you probably call to mind revolutionary
inventions such as the telephone or magnetic core memory. This is not
the standard that the patent system uses, however. What we would
consider a minor cleverness or variation or combination of existing
techniques, they consider patentable. This leads to a profusion of
obscure patents.
Any capable software designer will ``invent'' several such
improvements in the course of a project, and will say that they are
straightforward---hardly inventions at all. However, the number of
avenues for such improvement is very large, so no single project is
likely to find any given one. Therefore, the Patent Office is not
likely to classify them as obvious. As a result, IBM has several
patents (including 4,656,583) on certain fairly straightforward,
albeit complex, speedups for well-known computations performed by
optimizing compilers, such as computing the available expressions and
register coloring.
Patents are also granted on combinations of techniques that are
already well known and in use. One example is IBM patent 4,742,450,
which covers ``shared copy-on-write segments.'' This is a technique
that allows several programs to share the same piece of memory that
represents information in a file; if any program writes a page in the
file, that page is replaced by a copy in all of the programs, which
continue to share that page with each other but no longer share with
the file.
Shared segments and copy-on-write are very old techniques; this
particular combination may be new as an advertised feature, but is hardly
an invention. Nevertheless, the Patent Office thought that
it merited a patent, which must now be taken into account by the
developer of any new operating system.
These sorts of patents are like land mines: your chances of running into
any one of them are small, but soon there will be thousands of them.
Even today it is hard to keep track of them, and a recent list published
by lawyers specializing in the field omitted some of these IBM patents.
In ten years, programmers will have no choice but to march on blindly
and hope they are lucky.
@heading Patent Licensing Has Problems, Too
Most large software companies are trying to solve the problem of patents
by getting patents of their own. Then they hope to cross-license with
all the other companies and be free to go on as before.
While this approach will allow companies like Microsoft, Apple and IBM
to continue business, it will shut future companies out of the
marketplace. A future start-up, with no patents of its own, will have
no choice but to meet whatever conditions the giants choose to impose.
And that price might be extremely high: companies currently in the
market have an incentive to keep out future competitors. The recent
Lotus lawsuits against Borland and the Santa Cruz Operation (although
involving an extended idea of copyright rather than patents) show how
this can work.
Even a system of industry-wide cross-licensing will not protect the
software industry from companies whose only business is to buy patents
and then sue people for license fees. For example, the New York-based
REFAC Technology Development Corporation recently bought the rights to
the ``natural order recalc'' patent, solely so that REFAC could sue
Lotus, Microsoft and other companies selling spread-sheet programs.
Contrary to its name, REFAC does not develop anything except lawsuits.
It has no financial incentive to join a cross-licensing compact. The
exclusive-or patent is owned by another such litigation company,
Cadtrak, which is now suing Western Digital.
REFAC is demanding five percent of sales of all major spread-sheet
programs. If some future program infringes on twenty such patents---and
this is not at all unlikely, given the complexity of a computer program
and the specificity of patents that have been recently issued---that
program will never be used.
To get a picture of the effects for yourself, imagine if each square of
pavement on the sidewalk had its owner, and you had to negotiate a
license to step on it. Imagine trying to walk the entire length of a
block under this system. That is what writing a program will be like if
software patents are allowed to proliferate.
@heading The Fundamental Question
According to the Constitution of the United States, the purpose of
patents is to ``promote the progress of science and the useful arts.''
Thus, the basic question at issue is whether software patents,
supposedly a method of encouraging software progress, will truly do so,
or whether they will instead hold progress back.
So far we have explained the ways in which patents will make ordinary
software development difficult. But what of the intended benefits of
patents: more invention, and more public disclosure of inventions? To
what extent will these actually occur in the field of software?
There will be little benefit to society from software patents because
invention in software was already flourishing before software patents,
and inventions were normally published in journals for everyone to use.
Invention flourished so strongly, in fact, that the same inventions were
often found again and again.
@heading In Software, Independent Reinvention Is Commonplace
A patent is an absolute monopoly; anyone who uses the patented
technique can be stopped, even if it was independently reinvented.
The field of software is one of constant reinvention; as some people
say, programmers throw away more ``inventions'' each week than other
people develop in a year. And the comparative ease of designing large
software systems makes it easy for many people to do work in the field.
As programmers, we solve many problems each time we develop a program.
In the past, we would publish the important solutions in journals, and
forget the rest. All of these solutions are likely to be reinvented
frequently as additional people tackle similar problems and try to do a
good job.
Today, however, many of these specialized solutions are being patented.
If you then rediscover it in the course of your work, you are headed for
a lawsuit that you cannot anticipate.
Meanwhile, the prevalence of independent reinvention negates the usual
justification for patents. Patents are intended to encourage the
development of inventions and, above all, the disclosure of inventions.
If a technique will be reinvented frequently, there is no need to
encourage more people to invent it; since some of the developers will
choose to publish it (if it merits publication), there is no point in
encouraging a particular inventor to do so---and certainly not at such
a high price.
@heading Could Patents Ever Be Beneficial?
Although software patents are in general are harmful to society as a
whole, we do not claim that every single software patent is necessarily
harmful. It is possible, though not certain, that careful study would
show that under certain specific and narrow conditions (necessarily
excluding the vast majority of cases) it would be beneficial to grant
software patents.
Nonetheless, the right thing to do now is to eliminate all software
patents as soon as possible---before more damage is done. The careful
study can come afterward.