Richard Stallman
Puhe ohjelmistoideapatenteista
Helsinki 23.7.2004 (RMS Baltic Tour)
Terve!
Minut tunnetaan enimmäkseen työstä vapaiden ohjelmistojen parissa ja GNU-käyttöjärjestelmän kehittämisestä, vaikka useimmat eivät tiedäkään että kyseessä on GNU-käyttöjärjestelmä. En kuitenkaan aio puhua siitä tänään.
Aiheena tänään on eräs mahdollinen laki, joka uhkaa kaikkia ohjelmistokehittäjiä ja tietokoneiden käyttäjiä niissä maissa, joissa kyseinen laki on voimassa. EU harkitsee lakia parhaillaan. Vaaratekijä on ohjelmistoideoiden patentointi eli ohjelmistoideapatentit.
Jotta voisitte ymmärtää mistä on kysymys, haluaisin pyytää teitä unohtamaan hämmentävän termin, jonka todennäköisesti olette kuulleet aiemmin. Termi on "henkinen omaisuus" (intellectual property). Tämä termi on hämmentävä koska se niputtaa yhteen lakeja, jotka koskevat täysin eri asioita, kuten tekijänoikeuslaki, patenttilaki ja tavaramerkkilaki. Nämä ovat erillisiä lakeja, joilla kullakin on erilaisia vaatimuksia ja erilaisia seurauksia kansalle. Huolellinen tarkastelu edellyttää niiden erillistä käsittelyä.
Ongelmana termissä "henkinen omaisuus" on, että se vaikeuttaa ihmisten mahdollisuutta ymmärtää näitä eri lakeja ja sitä mitä ne koskevat, ja sen sijaan saa ajattelemaan epämääräistä yleistystä, jota ei todellisuudessa ole olemassa. Siispä ihmiset, jotka alkavat ajatella niin sanottua "henkistä omaisuutta", ajattelevat olemassaolematonta eivätkä huomaa useita erilaisia asioita, joissa on järkeä. Jotta voisitte tajuta miten erilaisia asioita tekijänoikeudet ja patentit ovat, otetaan yksi esimerkki: Tekijänoikeudet koskevat tiettyjä töitä. Jokainen tekijänoikeus koskee jotain tiettyä työtä, mutta tekijänoikeus koskee vain töitä kokonaisuuksina ja se nimenomaan ei koske yksittäisiä ideoita. Sen sijaan patentti on juuri yksinoikeus tiettyyn ideaan, joka kuvataan patentissa. Patentti sanoo: Idea on tämä, kukaan muu ei voi tehdä tätä. Siinä voi myös olla lista ideoita, joita kutsutaan vaatimuksiksi. Eli ne ideat, joita ei saa toteuttaa, kuvataan patentissa.
Toinen suuri ero on se, että tekijänoikeudet ovat olemassa automaattisesti. Kaikki mitä kirjoitetaan on automaattisesti tekijänoikeuden suojaamaa, mutta patentit myöntää patenttitoimisto hakemuksesta, jonka tekeminen maksaa paljon rahaa. On vielä kallimpaa maksaa asianajajille sellaisen hakemuksen muotoilemisesta, joka olisi patenttivirastolle kelpaava. Kaikki kirjoitettu saa tekijänoikeuden riippumatta siitä miten hyvä tuotos on. Laadulla ei ole merkitystä, mutta ilmeisestikin jotta jokin idea voitaisiin patentoida, sen on oltava uusi, käyttökelpoinen ja epätriviaali, vaikkakin käytännössä patenttivirkailijat tulkitsevat usein itsestäänselvätkin ideat epätriviaaleiksi.
Tekijänoikeudet eivät oikeastaan vanhene koskaan. Nykyään joissain tapauksissa ne voivat kestää 150 vuotta, mutta niitä jatketaan ja jatketaan, joten ne voivat hyvinkin kestää ikuisesti. Patentit kestävät 20 vuotta, joka myös on pitkä aika tietokonealan mittapuulla. Kaksikymmentä vuotta sitten WWW:tä ei ollut olemassa, Internet oli vasta alkutaipaleella ja IBM PC oli melko uusi leikkikalu. Toinen tärkeä ero on, että tekijänoikeus koskee jonkinlaista kopiointia. Sen todistaminen, ettei ole kopioinut keneltäkään, on pätevä puolustus mitä hyvänsä tekijänoikeusrikkomusta vastaan, koska kiellettyä on nimenomaan kopioiminen ja toisen työn materiaalin käyttäminen – ei teosten samanlaisuus. Jos joku viettää vuoden luolassa ilman yhteyksiä ulkomaailmaan ja sinä aikana joku toinen julkaisee romaanin, niin luolassa samanlaisen romaanin kirjoittanut voi puolustautua kopiointisyytöksiltä. Hän voi todistaa, ettei ole kopioinut. Sen sijaan patentti on ehdoton yksinoikeus patentoituun ideaan. Ei ole mitään merkitystä, vaikka joku todistaisi keksineensä idean aivan itse.
Nämä ovat siis joitakin suuria eroja tekijänoikeuksien ja patenttien välillä, mutta lisäksi on paljon pieniä eroja, koska lait ovat kehittyneet erillisinä, joten niissä on yleisesti ottaen vain vähän yhteistä. Useimmiten kun ihmiset kuvailevat miten patenttisysteemi toimii, heillä on mukana omat intressinsä. Kuvailijat ovat patenttivirkailijoita, patenttilakimiehiä, patenttien haltijoita tai patentinhaltijoiden edustajia, joten tietenkin he haluavat saada järjestelmän näyttämään hyvältä.
The Economist -lehti vertasi patenttijärjestelmää aikaavievään uhkapeliin, koska sen vaikutukset projekteihin ovat suurimmaksi osaksi sattumanvaraisia. Olen varma, että olette nähneet millainen uhkapelien julkisuuskuva on. Siinä keskitytään siihen epätodennäköiseen mahdollisuuteen, että voitat ja jätetään huomiotta ylivoimaisen suuri todennäköisyys hävitä. Siten voidaan yrittää järjestelmällisesti antaa ihmisille vääristynyt kuva asiasta vaikka ei suoranaisesti valehdeltaisikaan.
Patenttijärjestelmän julkisuuskuva toimii samoin. Järjestelmää kuvataan yleensä sellaisen henkilön näkökulmasta, joka saa patentin ja sitten kävelee pitkin katua silloin tällöin ohikulkijoita osoitellen: "Antakaa minulle rahanne!".
Tasoittaakseni epätasapainoa aion kuvata patenttijärjestelmää toiselta kannalta eli sellaisen ihmisen näkökulmasta, jonka täytyy kulkea kadulla ihmetellen koskahan joku tempaisee esiin patentin, osoittaa sillä häntä ja sanoo: "Antaa minulle kaikki rahanne!". Toisin sanoen kyseessä on sellaisen henkilön näkökulma, joka tahtoo kehittää ohjelmia.
Oletetaan, että halutaan kehittää ohjelmia ja maa sallii ohjelmistoideapatentit. Halutaan myös yrittää tehdä yhteistyötä patenttijärjestelmän kanssa ja varmistaa, etteivät patentit estä ohjelmaa. Mitä silloin täytyy tehdä? Ensimmäiseksi pitää etsiä kaikki patentit, jotka saattavat kieltää ohjelman. Se on mahdoton tehtävä, koska patenttivirasto käsittelee parhaillaan salaisia patenttihakemuksia ja patentit saatetaan myöntää huomenna tai vuoden kuluttua eikä meillä ole mitään keinoa selvittää onko sellaista tapahtumassa.
Pakkausohjelma compress
kirjoitettiin vuonna 1984. Se on, tai oli, datanpakkausohjelma ja se käytti LZW-datanpakkausalgoritmia, jonka ohjelman tekijä oli löytänyt tieteellisen julkaisun artikkelista. Tämä tapahtui siihen aikaan kun luulimme, että tieteellisten julkaisujen tarkoitus oli esitellä meille tekniikoita, joita voisimme käyttää työssämme.
Vuonna 1984 LZW ei ollut patentoitu algoritmi. Patentti myönnettiin 1985, joten compress
-ohjelman tekijä ei voinut mitenkään tietää miten tulisi käymään. Patentinhaltija ei välittömästi alkanut vaatia ihmisiä lopettamaan algoritmin käyttöä. Sen sijaan patentinhaltija järkeili: "Odotetaan muutama vuosi ja annetaan heidän kaivaa kuoppansa syvemmiksi. Hyökkäämme heitä vastaan sitten kun he ovat sijoittaneet liikaa voidakseen perääntyä".
80-luvun lopulla aloimme huomata compress
-ohjelman käyttäjien uhkailua ja aloimme etsiä jotain muuta tapaa tehdä datanpakkausta. Joku otti minuun yhteyttä ja kertoi: "Olen kehittänyt tätä ohjelmaa noin vuoden verran. Nyt olen päättänyt lahjoittaa sen GNU-projektille.". Me aioimme julkaista sen. Noin viikkoa ennen julkaisua näin New York Times lehden viikottaisen patenttikolumnin. Seurasin sitä harvoin, ehkä muutaman kerran vuodessa, ja onnekkaasti kävi niin, että lehdessä sanottiin jollekin myönnetyn patentin "uuden datanpakkausmetodin keksimisestä". Ajattelin, että asiaa olisi parasta tutkia ja niinhän siinä kävi, että patentti koski ohjelmaa, jonka aioimme julkaista. Ohjelma siis kuoli ennen kuin syntyikään.
Asiat olisivat voineet mennä vielä huonomminkin. Olisimme saattaneet julkaista ohjelman ensin ja patentti olisi voinut tulla kuukautta tai vuotta myöhemmin. Nyt loppujen lopuksi joku toinen kehitti algoritmin, jota käytettiin gzip
-ohjelmassa ja kaikki siirtyivät käyttämään gzip
:iä. Näyttää siis, että tuolla tarinalla on onnellinen loppu, mutta kerron teille lisää myöhemmin. Meillä on siis todellinen ongelma, joka koskee vielä julkaisematta olevia patentteja.
Sen sijaan julkaistuista patenteista saa tietoa, koska patenttivirasto julkistaa patentit. On mahdollista hankkia koko pino. USA:ssa patenttien määrä olisi satoja tuhansia kun taas Euroopan patenttivirasto on myöntänyt noin 30000. On epäselvää ovatko ne lainkaan laillisesti päteviä, sillä Euroopan patenttiviraston perustava sopimus kieltää tämän. Ensin Euroopan maita pyydettiin äänestämään, jotta ne korjasivat sopimuksen ja maat äänestivät "ei", joten patenttivirasto päätti vain rikkoa sopimusta. Patenttien pätevyyden kyseenalaisuuden vuoksi ihmisiä ei yleensä vielä yritetä haastaa niiden rikkomisesta.
On mahdollista hankkia koko patenttipino ja lukea se, mutta suuren määrän vuoksi lukemiselta ei jäisi aikaa mihinkään muuhun. Pitää siis etsiä asiaan liittyvät patentit ja etsimiseen on monia enemmän tai vähemmän toimivia tapoja, mutta ne eivät ole täysin luotettavia. Kaikkia patentteja ei voi löytää etsimällä.
USA:ssa oli ennen patentti natural order recalculation -algoritmille taulukkolaskennassa. Tämä tarkoittaa, että kun taulukkolaskentaohjelma laskee taulukon uudelleen, lasketaan joka solu niiden solujen jälkeen, joista se on riippuvainen, jotta kaikki solut päätyvät konsistenttiin tilaan. Pienissä tietokoneissa käytetyt varhaisimmat taulukkolaskentaohjelmat laskivat aina vain ylhäältä alaspäin. Heti kun tietokoneet tulivat suuremmiksi alettiin lisätä kivoja ominaisuuksia kuten uudelleenlaskeminen oikeassa järjestyksessä. Siinä käytetään algoritmia, joka yleisesti tunnetaan nimellä topologinen järjestys (engl. topological sort). Patentti koski kymmeniä erilaisia tapoja, joilla ohjelman voi saada tekemään topologisen järjestyksen.
Kerran joku pyysi minua lähettämään hänelle kopion kyseisestä patentista, joten etsin sen arkistostamme, kopioin ja lähetin hänelle. Muutamaa viikkoa myöhemmin hän sanoi minulle: "Luulen sinun lähettäneen väärän patentin. Tämä on jotain kääntäjiin liittyvää.". Siispä etsin patentin uudelleen arkistostamme ja siinä todellakin luki: "Metodi kaavojen kääntämiseen objektikoodiksi". Katsoin huolellisemmin ja havaitsin, että kyseessä oli oikea patentti. Se todellakin kuvasi kymmenittäin tapoja suorittaa topologinen järjestys, mutta patentti ei maininnut termiä "natural order recalculation", ei sanaa "taulukkolaskenta" eikä myöskään termiä "topologinen järjestys" vaikka algoritmi on tunnettu sillä nimellä 1960-luvulta lähtien. Joten jos haluttaisiin kirjoittaa taulukkolaskentaohjelma ja etsittäisiin mahdollisesti relevantteja patentteja, niin tätä ei oltaisi löydetty. Siitä ei oltaisi kuultukaan ellei satuttaisi lukemaan artikkelia, jonka mukaan joku oli haastettu oikeuteen.
Kuitenkin etsintä tuottaa ison pinon patentteja, jotka on käytävä läpi ja selvitettävä mitä ihmeessä ne tarkoittavat. Se on vaikeaa sillä patentit ovat kirjoitettu kiduttavalla lakikielellä, jossa sanat eivät tarkoita mitä niiden ajattelisi tarkoittavan. Dokumentteja on hyvin vaikea ymmärtää.
Australian hallitus antoi 1980-luvulla toimeksiannon tutkimukseen, jonka johtopäätöksenä oli, ettei ollut merkkejä siitä, että patentit olisivat mitenkään hyödyksi Australialle, ja että ellei kansainvälistä painostusta olisi, suositeltaisiin luopumista patenttijärjestelmästä. Kansainvälisen painostuksen takia kuitenkin suositeltiin vain patenttien saamisen vaikeuttamista, niiden vaikutusalan kaventamista ja voimassaoloajan lyhentämistä. Erityisesti sanottiin, että patenttijärjestelmä ei onnistunut saavuttamaan yhtä sen päätarkoituksista, joka oli saada menetelmiä julkaistuksi, jotta muut alan harjoittajat voisivat oppia niistä. Syynä oli se, että patentteja oli yksinkertaisesti liian hankala lukea ja tuskin kukaan heidän tapaamansa insinööri oli ikinä lukenut patentin. Tämä on ymmärrettävää. Kun jonkin tekstin lukeminen on niin vaikeaa ja siinä kuvataan jotain, jota ei saa tehdä, niin miksi se luettaisiin? Ainoa syy miksi patentteja ylipäänsä luetaan on se, että saataisiin selville minkä tekemistä ei sallita. Syynä ei koskaan ole minkään oppiminen. Tutkimuksessa lainattiin insinöörin sanoja "En tunnista omia keksintöjäni kun ne on ilmaistu patenttikielellä (engl. patentese)". Minä olen havainnut saman ilmiön myös ohjelmistoalalla kun Paul Heckel kirjoitti ohjelman ja sai sitten muutaman patentin, jotka olivat lähtöisin hänen ohjelmassaan käytetyistä ideoista.
Kerran kulutin tunnin katsomalla väitettä numero yksi eräässä hänen patenteistaan ja yritin löytää helppoa tapaa kuvailla asiaa, jonka hän oli patentoinut eli sitä mitä tämä patentti kieltää ihmisiä tekemästä. Enkä kertakaikkiaan onnistunut löytämään mitään yksinkertaista keinoa kuvaamaan sitä. Yksi tapa, jota ajattelin, oli käytännössä väitteen numero yksi uudelleenlausuma, joka on niin monimutkainen, etten pysty pitämään sitä mielessäni pitempään kuin kaksi sekuntia.
Ilmeisesti Paul Heckelkään ei pystynyt, sillä kun hän aluksi näki Hypercardin, hänelle ei tullut mieleen, että se kuuluisi hänen patenttinsa alaan. Se ei ollut samanlainen kuin hänen ohjelmansa eikä se ollut samanlainen kuin hänen ideansa siinä mielessä kuin hän ne ymmärsi, mutta sitten hänen lakimiehensä kertoi hänelle, että patentin voitaisiin tulkita koskevan Hypercardiin liittyviä asioita. Tässä vaiheessa hän alkoi uhkailla Applea ja kun Apple ei vaikuttanut riittävän pelokkaalta, hän alkoi uhkailla Applen käyttäjiä, ja uhkasi haastaa asiakkaita oikeuteen. Sitten Heckel ja Apple tekivät jonkinlaisen salaisen sopimuksen eli ei tiedetä miten paljon rahaa hän sai puristettua Applelta.
Kerran kun pidin tämän puheen, Heckel oli yleisön joukossa ja tässä vaiheessa, tavoilleen uskollisena, hän pomppasi pystyyn ja sanoi:"Tuo ei ole totta! Minä en vain ymmärtänyt [patentoitujen ideoideni] suojauksen vaikutusalaa!". Minä vastasin: "Kyllä, minä sanoin niin". Siinä vaiheessa hän istuutui eikä sanonut sanaakaan puheen loppuosan aikana. Jos olisin vastannut "Ei", hän olisi todennäköisesti osannut väitellä kanssani, mutta hän ei osannut vastata myöntymiseeni.
Olisi siis käytettävä paljon aikaa työskentelyyn lakimiesten kanssa, jotta saisi selville edes sen mitä kaikkea nämä patentit eivät salli tehtävän. Ja jokaisessa tapauksessa lakimies lopulta kertoo jotain seuraavanlaista: "Jos teet jotain tällä alueella, häviät lakijutun lähes varmasti" [*Stallman piirtää pienen ympyrän ilmaan*]. "Jos teet jotain tällä alueella, on huomattava mahdollisuus, että häviät lakijutun" [*Stallman piirtää isomman ympyrän aiemman ympärille*]. "Ja jos todella tahdot olla turvassa, sinun olisi parasta pysyä poissa tältä alueelta" [*piirtää ison ympyrän aiempien ympärille*]. Mutta minkä tahansa lakijutun lopputulos on suurelta osin ennalta-arvaamaton. Joten nyt kun tiedetään mitkä tavat harjoittaa liiketoimintaa ovat sallittuja ja mitkä eivät, mitä tosiasiassa tehdään?
Jokainen patentti voidaan käsitellä kolmella vaihtoehtoisella tavalla. Yksi tapa on välttää patentti eli olla käyttämättä sen kattamaa ideaa. Toinen on hankkia lisenssi patentille eli lupa käyttää ideaa. Kolmas on kyseenalaistaa patentin pätevyys ja kumota se. Riippuen erilaisista tilanteista, nämä vaihtoehdot saattavat olla mahdollisia tai sitten eivät. Joten tarkastellaan niitä yksi kerrallaan.
Ensinnäkin, patentin välttäminen tarkoittaa, että sen kattamaa ideaa ei käytetä. Jos patentin sisältönä on jokin tietty algoritmi, niin ehkäpä on olemassa toinen algoritmi, jolla halutun työn saa suoritettua. Se saattaa olla riittävän hyvä ja siinä tapauksessa on helppoa välttää patentti. Minä näin esimerkiksi patentin, joka koski Fast Fourier Transform algoritmin nopeampaa versiota. Jos ohjelma tarvitsee FFT:ä vain silloin tällöin, niin voidaan käyttää tavallista FFT-algoritmia ja se toimii riittävän hyvin. Patentti on siis vältetty ongelmitta. Sen sijaan jos ohjelma käyttää jatkuvasti FFT-algoritmia ja ohjelma on vain juuri ja juuri riittävän nopea algoritmin nopeammallakin versiolla (joka on kaksi kertaa nopeampi kuin tavallinen), niin jos käytettäisiinkin tavallista FFT:ä, ohjelma olisi liian hidas ja se projekti kuolisi siihen. Se on melko harvinaista juuri tämän nimenomaisen FFT-patentin kohdalla, mutta on tilanteita, joissa tietyn algoritmin välttäminen on mahdotonta ja silloin puhutaan tilanteista, joissa jokin standardi vaatii tietyn algoritmin käyttämistä. Me esimerkiksi vältimme LZW-patentin, koska löysimme vaihtoehtoisen datanpakkausalgoritmin, joka on itse asiassa nopeampi ja myös paremmin pakkaava. Meillä oli siis compress
ohjelman korvaava vaihtoehto nimeltä gzip
, jota ihmiset siirtyivät käyttämään.
Mutta PostScript-kielen määrittely viittaa myös LZW:hen. Pitäisi olla operaattori, joka pakkaa LZW:tä käyttäen ja myös operaattori pakkauksen purkamiseen. Mitä siis voidaan tehdä? Me emme voineet toteuttaa PostScript-kieltä täydessä laajuudessaan ja välttää kyseistä patenttia. Onneksi patentti ei päde jos ohjelma osaa vain purkaa pakkauksen ja koska PostScript-kieltä suoritetaan tavallisesti tulostimissa, tulostimen ei yleensä haluta pakkaavan dataa. Halutaan vain pakkauksen purkamista, joten vaikka emme toteuttaneetkaan PostScriptiä kokonaan, toteutus oli käytännöllisesti katsoen riittävän hyvä käyttäjille. Pääsimme siis pälkähästä kuin ihmeen kaupalla.
Tarkastellaan nyt GIF-tiedostoja, jotka myös käyttävät LZW-algoritmia. Ei kestänyt kauan kun joku kehitti uuden kuvaformaatin nimeltä PNG (PNG = PNG is Not Gif), joka pohjautuu gzip-pakkausalgoritmiin. Aloimme kertoa ihmisille: "Olkaa ystävällisiä ja lopettakaa GIF-formaatin käyttäminen! Aiheutatte muille ihmisille lakiteknisiä ongelmia käyttämällä GIF-formaattia." Olemme nyt sanoneet niin jo yli kymmenen vuoden ajan, mutta silti nettiä selatessa huomaa useimpien käyttävän yhä GIF-tiedostoja. Vain harvat käyttävät PNG-tiedostoja. On hyvin vaikeaa saada ihmiset vaihtamaan formaattia, sillä he eivät ajattele: "Tahdon pakata kuvatiedostoni". Ne ihmiset, jotka käyttivät compress
-ohjelmaa ajattelivat: "Tahdon pakata tiedostoni" ja me tarjosimme heille toisen ohjelman, jolla voi pakata tiedostoja, joten he siirtyivät käyttämään sitä. Sen sijaan GIF-kuvien käyttäjät eivät ajattele vastaavasti, vaan he ajattelevat:"Haluan laittaa kuvatiedostoni nettiin, jotta muut ihmiset voivat käyttää niitä". Se taas tarkoittaa, että heidän on käytännössä pakko käyttää niitä standardeja, joita tuetaan. GIF on de facto standardi ja ihmisten saaminen käyttämään toista formaattia on suurinpiirtein yhtä vaikeaa kuin saada kaikki Suomessa asuvat alkamaan puhua ranskaa.
Siis käyttäjät sanoivat: "No, emme voi nyt käyttää PNG-formaattia, koska WWW-selainohjelmat eivät tue sitä". Selainohjelmien kehittäjät sanoivat: "Ehkä toteutamme PNG-tuen jonain päivänä, mutta käyttäjät eivät vaadi sitä". Kumpikin osapuoli odotti toisen aloitetta, joten tähän päivään saakka emme ole pystyneet saamaan ihmisiä vaihtamaan ei-patentoituun ratkaisuun. Me ajattelimme, että JPEG-formaatti olisi turvallinen, mutta nyt yhtiöitä haastetaan oikeuteen USA:ssa. Joku väittää, että hänen patenttinsa kattaa JPEG-formaatin. JPEG ei ole de facto standardi, vaan se on virallinen standardi. Standardikomitea, joka julkaisi sen, sanoo, että patentti ei koske JPEG:iä, mutta tuomioistuin on se, joka päättää.
On itse asiassa olemassa kaksi LZW-pakkausta koskevaa patenttia eli kaksi patenttia samasta asiasta. Patenttiviraston ei pitäisi myöntää kahta patenttia samalle idealle, mutta he eivät olleet huomanneet tehneensä niin. Jos kyse olisi jostain fyysisestä rakenteesta tai fyysisestä prosessista, niin asia olisi helpompi huomata. Silloin ei tarvitsisi perehtyä huolellisesti, vaan voisi vain katsoa kuvailtua fyysistä systeemiä ja tarkistaa onko se samanlainen. Mutta ohjelmistopatentit kuvaavat todella vain matemaattisia operaatioita ja ne voidaan kuvata hyvin erilaisin sanoin vaikka puhuttaisiinkin samoista asioista. Juuri niin tapahtui tässä tapaukssa. Näitä kahta patenttia on katsottava ja tutkittava molempia jonkin aikaa, jotta havaitaan, että ne todella koskevat samaa algoritmia. Patenttivirkailijoilla ei ole aikaa sellaiseen. Heillä on paineita työskennellä nopeasti. Heidän pitäisi siirtää tuote asiakkaille. Sillä tavalla patenttivirkailijat ajattelevat. He ajattelevat patenttienhakijoiden olevan heidän asiakkaitaan. He eivät usko, että he millään tavalla yrittävät edustaa kansaa. He yrittävät tehdä sitä mitä patenttienhakijat haluavat, mikä on yksi syy siihen, että he asettavat kynnyksen niin alas ja jatkuvasti pitävät sitä siellä riippumatta siitä mitä heille sanotaan.
Noin vuosi sitten joku sai Australiassa patentin pyörälle. USA:ssa lapsi sai patentin tavalle keinua keinulla sivuttain.
On siis standardeja, jotka ovat vain yhden tai parin patentin kattamia. Tällainen on kuitenkin vasta helppo tapaus verrattuna MPEG2-videoon. Näin listan 39 eri yhdysvaltalaisesta MPEG2-videoformaattia koskevasta patentista. Komitea, joka on määritellyt standardin JPEG-formaatille, haluaisi tehdä jatkostandardin. He kuitenkin havaitsivat, että patentit tekivät uuden standardin teon lähes mahdottomaksi. Ei siis auta löytää tiettyyn tehtävään parempaa algoritmia, jos tietty algoritmi vaaditaan standardin toteuttamiseksi. Käytännössä tällaisia patentteja voi siis olla mahdoton välttää paitsi tekemällä ohjelmasta toimimaton.
Joskus patentoituna on ohjelman toiminto tai ominaisuus, jolloin ainoa tapa välttää patentti on olla sisällyttämättä kyseistä ominaisuutta ohjelmaan. Kerran tekstinkäsittelyohjelma XyWriten käyttäjät saivat postissa päivityksen, joka poisti ohjelmasta ominaisuuden. Tekijät olivat päättäneet poistaa ominaisuuden, jonka avulla saattoi kirjoittaa sanasta lyhenteen, ja pisteen jälkeen ohjelma korvasi sen automaattisesti koko sanalla. Käyttäjä saattoi siis kirjoittaa "kmt", josta tuli "komitea". Kätevä ominaisuus, mutta jollakin oli siihen patentti ja tämä patentinhaltija alkoi uhkailla ohjelman tekijöitä. Aluksi he yrittivät neuvotella lisenssisopimusta, mutta pian huomasivat, ettei patentinhaltijan kanssa voinut neuvotella, joten he poistivat ominaisuuden kokonaan.
Syy siihen, että olen kuullut tästä on se, että ohjelman tekijät kuulivat, että minun Emacs-tekstieditorissani oli samanlainen ominaisuus 1970-luvulla, ja lopulta patentti kumottiinkin. Se kumottiin osittain Emacsista saatujen todisteiden avulla. Onkin mukavaa tietää, että minulla on ollut ainakin yksi patentoitava idea elämäni aikana. Olen myös iloinen siitä, että työni oli pohjana yhdestä ohjelmistoideapatentista eroon hankkiutumiselle. Yksi on poissa, mutta satoja tuhansia vielä jäljellä.
Tästä näkeekin, kuinka ohjelmistoideapatenttien kumoamisehdotukset eivät oikeastaan ratkaise ongelmaa. On toki parempi jos niitä on vähemmän, mutta ongelma ei sillä ratkea. Esimerkiksi 200000 200001:n sijaan ei tee vielä ohjelmoinnista turvallista. Joka tapauksessa he välttivät kyseisen patentin ongelmat. Tekstinkäsittelyohjelmasta voi ottaa pois ominaisuuden toisensa jälkeen. Muutaman jälkeen käyttäjät voivat vielä ajatella ohjelman olevan käytettävä. 40 ominaisuuden jälkeen käyttäjät toteavat, ettei ohjelma ole enää käyttökelpoinen eivätkä halua käyttää sitä. Sitäpaitsi joskus patentti on niin laaja, ettei sen välttämisestä ole toivoakaan.
Koko julkisen avaimen periaate oli patentin suojaama Yhdysvalloissa vuoteen 1997 asti, ja useimmat ohjelmankehittäjät eivät sen takia voineet toteuttaa julkisen avaimen periaatteeseen pohjautuvaa salakirjoitusta. Tästä nähdään, että ei ainoastaan triviaalien tai absurdien asioiden patentointi ole ongelmallista. Julkisen avaimen salakirjoitus oli tärkeä keksintö. Tuskin sanoisin, että se oli triviaali, mutta sen patentointi oli äärimmäisen haitallista.
Sellainen oli patentin välttämisen mahdollisuus. Seuraava vaihtoehto on hankkia patentille lisenssi. Se voi olla mahdollista, tai sitten ei. Kuulin kerran jostakin tietokoneella casino-pelejä tekevästä tyypistä. Kilpailija, jolla oli patentti, vaati tätä lopettamaan toimintansa. Patentin haltija ei ollut halukas mihinkään lisensointiin, kuten patentinhaltijan ei tarvitsekaan. Casino-tyyppi näytti minulle tämän patentin, joka kattoi systeemin, jossa oli monta verkolla yhdistettyä konetta ja joista jokainen tuki yhtä tai useampaa peliä ja saattoi näyttää useamman peli-istunnon kerrallaan. Olen kuitenkin aika varma, että 1980-luvulla monet koulut pystyttivät laboratorioita, joissa verkotettuihin työasemiin asennettiin monen pelattavia pelejä ja näissä työasemissa oli ikkunointimahdollisuudet, joten niillä saattoi näyttää useamman kuin yhden peli-istunnon kerrallaan. Ja näin tekemällä ne tekivät täsmälleen sen, mitä patentti määritteli, mutta heidän mieleensä ei ikinä olisi tullut, että nämä eri asiat voisivat muodostaa patentoitavan idean. Tämä osoittaa muuten, että etsittäessä patentteja, jotka voisivat rajoittaa ohjelmaa, jokin yhdistelmä asioita, joiden et edes hoksaisi olevan yhdistettävissä, voi olla patentoitavissa. Haasteen saapuessa ei ole merkitystä ajatteltiinko niitä asioita yhdessä vai ei. Niin kauan kuin patentissa listataan tietyt elementit ja samat elementit ovat ohjelmassa, tulee ongelmia riippumatta siitä ajatteltiinko niitä yhdessä vai ei.
Tämä osoittaa myös, että patenttijärjestelmän mukaan jos joku keksii tehdä jotain kerran, mutta joku toinen keksit tehdä sen N kertaa, tuo toinen on tehnyt keksinnön. Jos joku muu tekee tämän ja joku muu tuon ja sinä teet tämän tai tuon, olet tehnyt keksinnön. Patenttivirkailijat eivät tajua, että tietojenkäsittelyssä perusperiaate on, että jos on tehty jotain kerran, se voidaan tehdä N kertaa. Joka kerta kun joku tekee tämän ja muut tekevät tuon, se joku voi tehdä tämän tai tuon. Nämä ovat perusrakenteita useimmissa ohjelmointikielissä, mutta patenttijärjestelmä pitää sellaisia keksintöinä. Joka tapauksessa, niin naurettava kuin tämä patentti olikin, casino-yrittäjä ei voinut muuta kuin lopettaa liiketoimintansa.
Useimmat patentinhaltijat suostuvat tarjoamaan lisenssiä, mutta siitä voi joutua maksamaan paljon. "Natural order recalculation" -patenttia tarjottiin lisentoitavaksi 5% osuutta vastaan per myyty taulukko. Kyseessä oli vieläpä halpa, ennen oikeusjuttua annettu hinta. Kenties yhden tai pari, ehkä jopa kymmenen tällaista lisenssiä voikin allekirjoittaa. Entä kun niitä tulee 20? Sitten tulee viimeistään ongelmia, kun 21. patentin haltija tuleekin vaatimaan viittä prosenttiaan. Oikeastaan tämä on absurdi esimerkki. Alalla olevat ihmiset kertoivat minulle, että käytännössä kaksi tai kolme tällaista lisenssiä riittää kaatamaan liiketoiminnan.
Jotkut patentinhaltijat saavat helposti lisenssejä toisten patenteista – nimittäin jättiyritykset. Niillä on yleensä valtavasti alansa patentteja ja ne ristiinlisensoivat toistensa patentteja. Ne voivat myös käyttää patenttejaan pakottamaan lähes kaikki muut ristiinlisensoimaan niiden kanssaan. Näin ne muodostavat poissulkevan kerhon, oikeastaan linnan kukkulan laella, ja me muut olemme mäen juurella katsoen ylös ilman mahdollisuutta päästä ylös.
IBM julkaisi Think Magazine 5/1990 -lehdessä patenttisalkustaan kertovan artikkelin. Siinä sanottiin, että IBM hyötyy kahdella tavalla 9000:sta Yhdysvalloissa voimassa olevasta patentistaan. Ensimmäinen hyöty oli rahankeruu, mutta toinen, jonka sanottiin olevan kymmenen kertaa edellistä suurempi, oli toisten patenttien aiheuttamien ongelmien välttäminen. Pääsy käsiksi toisten patentteihin taisi olla alkuperäinen muotoilu. Tämä tarkoittaa ristiinlisensointia. Patenttejaan käyttäen IBM sai muut antamaan lisenssejä, mikä tarkoittaa, että IBM:n sallittiin käyttää muiden yhtiöiden patentoimia keksintöjä. IBM arvioi, että näin ongelmia välttämällä saatu hyöty oli kymmenen kertaa niin suuri kuin omista patenteista suoraan saatu raha.
Kiinnostavaa on, että patenttijärjestelmä muistuttaa lottoamista. Pienen yrityksen menestyminen on sattumanvaraista. IBM:n kaltainen suuryritys voi sen sijaan punnita järjestelmästä saatavaa hyötyä. He sanovat, että patenttijärjestelmästä koituva haitta on kymmenkertainen odotettavissa olevaan hyötyyn nähden, jos haittoja ei pysty IBM:n tavoin välttelemään. Tämä saattaa tuntua mahdottomalta. Miten järjestelmä, joka kierrättää rahaa, voisi olla keskimäärin kymmenen kertaa vahingollisempi hyötyyn nähden siihen osallistujalle? Ei vaikuta tasapainoiselta. No, vastaus on, että suuri osa aiheutuneesta haitasta on lakimiehille menevää rahaa. Mutta on myös niin, että haitat eivät koidu megayhtiöiden harmiksi, vaan ne vain enimmäkseen hyötyvät. Ristiinlisensoimalla ne voivat välttää haitat, jolloin vain hyödyt jää jäljelle. Pienet yritykset sen sijaan eivät voi tehdä sitä vaan sen sijaan sanovat työntekijöilleen: "Hankkikaa patentteja, meidän täytyy voida puolustautua!"
Sepä ei olekaan pienille yrityksille toimiva vaihtoehto. Oletetaanpa, että pikkufirma saa kaksi patenttia, jotka kattavat tämän ja tuon keksinnön. Se ei vielä ole kovin tehokas puolustus, sillä joku toinen yhtiö jossain muualla voi uhata toisenlaisella patentilla ensimmäistä yritystä, eikä tämä voi yleensä puolustautua. Yrityksellä kun ei yleensä ole tarpeeksi patentteja käyttääkseen niitä tehokkaasti. IBM yhdeksän tuhannen patenttinsa kanssa voi kattaa melkein kaiken. IBM voi hyvin tehokkaasti puolustautua patenttisalkullaan ja pakottaa muut ristiinlisensointiin. Pienet yritykset eivät pääse niin pitkälle, vaan niiden johto sanoo: "Auttakaa meitä hankkimaan patentteja, meidän pitää voida puolustautua!" Viiden tai kymmenen vuoden päästä johdon tai omistajan vaihduttua ne saattavat huomata: "Meidän patenttimme kattaa tuon idean, ja eräs muu on toteuttanut saman idean, hyökätään hänen kimppuunsa hyödyn toivossa!" Jos siis työnantajasi ehdottaa, että auttaisit yritystä hankkimaan patentteja puolustuskäyttöön, ehdottaisin vastaukseksi: "Se on kyllä tärkeää. Kirjoitetaan patenttihakemukseen, että näitä patentteja voi käyttää vain puolustustarkoituksiin!" Se on myös hyvä tapa aloittaa yrityksessä keskustelu ohjelmistopatenteista.
Ristiinlisensointikäytäntö on joka tapauksessa tärkeää panna merkille. Se on virhepäätelmä siinä "nälkiintyvän neron" myytissä, jota ohjelmistopatenttien puolustajat kertovat. Myytti kertoo taiturimaisesta suunnittelijasta tai vastaavasta, joka on työskennellyt ullakollaan ja on keksinyt loistavan idean jonkun asian tekemiseksi ja nyt se on valmis. Hän perustaa liikeyrityksen, josta on oletettavasti määrä tulla suuri menestys, ja ainoa mikä häntä estää, on kilpailevat suuret yritykset. Nämä vievät hänen liiketoimintamahdollisuutensa, ja hänen firmansa kaatuu vain sen takia ja hän näkee nälkää.
Tämä myyttihän on sarja epätodennäköisiä asioita. Ensinnäkin, huipputekniikan kehitystä ei yleensä tehdä eristyksissä, vaan yleensä alan ihmiset vastaavat siitä yhteistyössä. Toisekseen, useimmilla teknisesti edistyneillä ihmisillä ei ole bisnesvainua, joten heidän liiketoimensa menee pieleen joka tapauksessa. Itse asiassa 90 prosenttia uusista liikeyrityksista epäonnistuu muutamassa vuodessa. Mutta oletetaanpa, että myytin nerolla on bisnesnenää. Siinä tapauksessa hän harjoittaa liiketoimiaan hyötyen sillä tavalla, jolla pienet yritykset hyötyvät. Emmehän näe kaikkien pienyritysten kuolevan, vaan maailmassa on paljon kannattavia pienyrityksiä. Joten hänenkään firmansa ei välttämättä kaadu, jos hän osaa johtaa sitä oikein. Oletetaanpa sen sijaan, että hänen liiketoimensa eivät kannata, koska isot firmat kilpailevat hänen kanssaan. Jos hän on tosiaan fiksu high-tech-nero, hänen ei tarvitse nälkiintyä, vaan hän varmaankin pääsee töihin. Mutta tarkastellaanpa silti tätä skenaariota kaikessa epätodennäköisyydessäänkin, koska väitetään, että patenttijärjestelmä tuo tähän helpotusta. Tarinamme nero voi hankkia patentin, ja kun IBM yrittää kilpailla hänen kanssaan, hän sanoo: "IBM, ette voi kilpailla kanssani, minulla on tämä patentti!". Ja oletettavasti IBM vastaa: "Ei taas...". Mutta todellisuudessa IBM vastaakin: "Voi, kuinka mukavaa, sinulla on tuo patentti. Kuule, meillä on tämä, ja tämä, ja tämä, ja vielä tämäkin patentti, ja jos luulet, että voit näitä vastaan taistella, meillä on vielä lisää. Joten mitäs jos tehtäisiin ristiinlisensointisopimus, puristettaisiin kättä, ja kukaan ei kärsi."
Mehän oletimme, että nerollamme on bisnesvainua, joten hän ymmärtää, että hänellä ei ole vaihtoehtoa. Hän allekirjoittaa sopimuksen IBM:n kanssa ja IBM ryhtyy hänen kilpailijakseen. Toisin sanoen patenttijärjestelmä ei suojannut häntä lainkaan. Tämä oletettu patenttijärjestelmän tarkoitus ei siis toimi. Toimimattomuuden voi nähdä myös historiallisesti.
IBM ei voi kuitenkaan pakottaa kaikkia patentinhaltijoita ristiinlisensoimaan, sillä jotkut patentit ovat niin kutsuttujen patenttiloisyritysten hallussa. Nämä loiset eivät tee mitään muuta kuin puristavat rahaa ihmisiltä ja haastavat näitä oikeuteen. Joten vaikka patenttiasianajajat väittävät, että patentit on tosi hieno juttu, he tietävät, kuinka ongelmallisia ne myös ovat. He ovat varmistaneet, että ainakaan uhkauskirjeen muotoilua tai oikeusjutun käynnistämisprosessia tai tuomarin ja valamiesten taivuttelua ei voi patentoida. Kenelläkään ei siis ole patenttia, joka kattaisi näiden loiseläjien puuhat. Edes IBM ei voi pakottaa näitä ristiinlisensoimaan. IBM sen sijaan arvelee, että jokainen joutuu maksamaan näille loisille, joten ne ovat vain osa liiketoiminnan välttämättömiä kustannuksia. Lisäksi IBM laskee, että ohjelmistopatentit ylipäänsä antavat etulyöntiaseman suhteessa pieniin kilpailijoihin. Siksi IBM haluaa ohjelmistoideapatentteja.
Käytän muuten termiä ohjelmistoideapatentit painottaakseni, että kyse ei ole ohjelmien patentoinnista, vaan sellaisten ideoiden patentoinnista, joita voidaan käyttää useissa erilaisissa ohjelmissa ja jotka ovat vain osa yhtä ohjelmaa. Tästä on usein väärinkäsityksiä.
On myös joitakin ohjelmistokehittäjiä, joille on erityisen vaikeaa hankkia lisenssejä patentteihin – nimittäin me vapaiden ohjelmistojen kehittäjät. Syy siihen on se, että lisenssit tavallisesti vaativat maksun jokaisesta kopiosta. Mehän emme voi laskea kopioita, joten meillä ei ole edes teoriassa mahdollisuutta noudattaa moista lisenssiä. Jos joku tarjoaisi minulle lisenssiä miljoonasosaeuron hintaan kopiota kohden, saattaisin pystyä maksamaankin sen, mutta minun ei olisi mahdollista tietää, kuinka paljon se olisi, joten en voisi toimia ehtojen mukaisesti. Patentinhaltija voisi tehdä lisenssin könttäsummalla, sillä heillähän on kaikki neuvotteluvalta. Mutta summat ovat tavallisesti pikemminkin sadan tuhannen luokkaa.
Syy siihen, että vapaat ohjelmistot ovat olleet menestys, on se, että me kehitämme ohjelmistoja ilman rahaa, vapaaehtoisesti. Emme voi kuitenkaan maksaa lisenssimaksuja ilman rahaa, joten ohjelmistopatenteilla on taipumus vähentää vapaiden ohjelmistojen merkitystä tietojenkäsittelyn alalla ja saattaa ne vähäpätöiseen asemaan. Tämä siis on se vaihtoehto, jossa hankitaan lisenssi patentille.
On myös vaihtoehto, jossa patentti kumotaan oikeudessa tai patenttiviraston uudelleentarkastuksessa. Se onko tämä mahdollista tehdä, riippuu vuosien takaisista asioista ja siitä voidaanko niiden paikkansapitävyys todistaa nykyhetkellä. Käytännöllisesti katsoen noppaa heitettiin monta vuotta sitten ja jos heiton tulos oli myönteinen ja asia pystytään todistamaan, niin silloin on olemassa argumentti, jota voidaan käyttää oikeudessa. Muussa tapauksessa argumenttia ei ole ja häviö on selvä, joten oikeuteenmenoa ei kannata yrittääkään.
Jos kuitenkin oletetaan, että argumentti löydetään, niin sen esittäminen on todennäköisesti hyvin kallista. Qualcomm oli syytettynä oikeusjutussa muutama vuosi sitten, jonka se hävisi ja joutui maksamaan 13 miljoonaa dollaria. Niistä 8 miljoonaa meni molempien osapuolen asianajajille. Tämän tuloksena on, että jopa absurdi, todennäköisesti pätemätön ohjelmistoideapatentti on hyvin vaarallinen ase uhkauksiin ellei uhattavalla ole paljon rahaa. Erityisen vaarallista on, että yritys voidaan sulkea ennen oikeuden päätöstä kieltomääräyksellä. Miten yritys sitten saa rahaa asianajajien palkkioiden maksamiseen? Joten tuloksena on, että tuomioistuin ei edes yritä tutkia onko patentti pätevä, vaan häviäminen tapahtuu jo ennen kuin siihen vaiheeseen on edes päästy. Jos joku yrittäisi tehdä sellaista IBM:lle, niin ei kävisi, koska IBM saa rahaa monista asioista. He selviäisivät oikeusjutun loppuun asti ja he saattaisivat sitten voittaa, mutta sinä tai minä emme voisi.
Nämä siis ovat ne kolme vaihtoehtoa, jotka saattavat olla mahdollisia riippuen eri olosuhteista. Joskus mikään niistä ei toimi ja kun niin käy, on projekti haudattava. Käytännöllisesti katsoen ihmiset eivät kuitenkaan tavallisesti yritä etsiä kaikkia patentteja, jotka saattaisivat liittyä heidän ohjelmaansa. Se on liian työlästä ja liian kallista ja sitä paitsi rangaistukset rikkomuksesta ovat ankarampia jos patentin olemassaolosta on tiedetty, joten on turvallisempaa pitää silmät kiinni. Todellisuudessa ihmiset aloittavat kävelemisen ja toivovat, etteivät he astu patentin päälle. Ohjelmistojen kehittäminen maassa, jossa on ohjelmistopatentteja, on kuin miinakentän ylittämistä. Todennäköisesti mitään ei tapahdu kun suunnitelmassa tehdään uusi päätös. On kuitenkin tietty mahdollisuus, että astutaan sellaisen patentin päälle, joka räjähtää ja tuhoaa projektin. Tämä vertaus ei silti ole täydellinen. On yksi tapa, jolla ohjelmistopatentit eivät ole kuin maamiinat. Kun maamiina räjähtää, se ei ole enää sen jälkeen vaarallinen, mutta yksi ainoa ohjelmistoideapatentti voi jatkaa eri kehittäjien projektien tuhoamista.
Ihmiset kysyvät joskus minulta ennakkoluuloisen kysymyksen: "Muut teollisuudenalat ovat työskennelleet patenttien kanssa vuosikymmeniä, miksi ohjelmistoalan pitäisi olla poikkeus?". Ikäänkuin yritettäisiin lähteä liikkeelle siitä, että kaikkia aloja täytyy kohdella samalla lailla, mikä on hölmö oletus. Se on kuin sanoisi:"Muille tuli syöpä, miksei sinullekin pitäisi?". Alkuperäiseen ennakkoluuloiseen kysymykseen on kuitenkin haudattuna älykäskin kysymys ja se on:"Onko olemassa alojen välisiä eroja, jotka ovat relevantteja kyseisten alojen suhteeseen patentointikäytäntöön?".
Eroja on olemassa. Alat eroavat siinä miten tuotteet ovat suhteessa patentteihin. Meillä on yksinkertainen kuva patenttijärjestelmästä, joka on epätosi. Ihmisillä on se kuva, että jokaista tuotetta kohti on olemassa yksi patentti. Luullaan, että kun uusi tuote kehitetään, kukaan muu ei ole voinut patentoida sitä, joten kehittäjä voisi patentoida sen. Kehittäjä olisi se, joka saa yhden patentin. Ihmiset käyttävät mielellään termiä ja heillä on piilo-oletus, että tätä uutta tuotetta tulee koskemaan yksi patentti. Asiat saattoivatkin olla niin 1800-luvulla suurimman osan ajasta, mutta eivät ole enää, koska nykyään yleisesti yhden tuotteen eri osia koskevat monet erilaiset jo olemassaolevat patentit.
Mutta se miten paljon tästä on totta vaihtelee alakohtaisesti. Jos tämä on virheellinen kuvamme, lähin ala on lääketeollisuus. Muutama vuosi sitten lääketeollisuus todella toimi sillä tavalla, että tyypillisesti patentti kattoi koko lääkkeen kemiallisen kaavan. Joten jos kehitettiin uusi lääkkeen, jolla oli erilainen kemiallinen kaava, se ei voinut olla jo patentoitu. Lääkkeen kehittäjä oli todellakin se, joka saattoi saada patentin. Sekin asia muuttuu ja nykyään voidaan kehittää uusia lääkkeitä, joita jo olemassaolevat patentit koskevat. Lääketeollisuus ei siis ole mukana virheellisessä kuvassa. Kuva oli aiemmin oikea, mutta lääketeollisuus ei ole enää sen mukainen vaikkakin silti melko lähellä.
Toisessa äärilaidassa on ohjelmistoala. Yhdessä ohjelmassa yhdistyy enemmän ideoita kuin minkään muun tyyppisessä järjestelmässä tai tuotteessa, joita voidaan valmistaa. Eikä kysymys ole sattumasta tai siitä, että ohjelmoijat ovat fiksumpia kuin insinöörit muilla aloilla, vaan siitä, että ohjelmointiala on helpompi kuin muut alat. Alalla toimitaan idealisoitujen matemaattisten objektien parissa, joilla on määritelmät. Toisilla aloilla työskennellään fyysisten aineiden ja esineiden parissa ja on huomioitava aineelliset ominaisuudet. Tehdään malli, joka sanoo aineen toimivan niin tai näin, mutta ellei aine toimikaan mallin mukaisesti, ei voida syyttää sen olevan aineen vika.
Jos esimerkiksi laitan if
-lauseen while
-lauseen sisään, minun ei tarvitse huolehtia jännitehäviöstä while
-lauseen sisällä, joka aiheuttaisi if
-lauseen toimivan väärin. Minun ei tarvitse huolehtia siitä, että syövyttävä neste pääsisi väliin ja tuhoaisi kosketuspinnan, jolloin signaalit eivät lopulta menisi oikein läpi tai että if
-lause saattaisi jopa irrota pois. Minun ei tarvitse huolehtia siitä, että jos silmukka menee väärälle taajuudelle, if
-lause saattaisi alkaa täristä kunnes se hajoaisi. Minun ei tarvitse huolehtia, että jos se pyörisi nopeammin, se aiheuttaisi radioaaltointerferenssiä ohjelman muissa osissa ja antaisi muuttujille väärät arvot. Minun ei tarvitse huolehtia if
-lauseen aiheuttamasta kuumuudesta ja siitä palaako se loppuun. Minun ei tarvitse huolehtia siitä miten vedän pois rikkinäisen if
-lauseen ja laitan tilalle toisen jos se palaa loppuun tai murtuu. Minun ei tarvitse huolehtia siitä, että kun rakennan kopion ohjelmasta, miten varmistun siitä, että minulla on tilaa laittaa if
-lause while
-lauseen sisään ja niin edelleen. Mistään näistä ongelmista ei tarvitse huolehtia, koska työskentelemme idealisoidun matemaattisen materiaalin parissa emmekä aineellisten esineiden.
Ohjelmointiala on siis paljon helpompi kuin muut alat, mutta ihmiset vievät kykynsä äärirajoille saakka. Jos ala on perusluonteeltaan helppo, siirrytään isompiin ongelmiin ja lopulta alasta tulee vaikea. Siksi kuullaan puhuttavan ohjelmistokriisistä ja ohjelmistosuunnittelun vaikeudesta. Puhujat eivät ole eri mieltä kanssani, vaan meillä on kaksi erilaista vertailua. Minä vertailen ohjelmistoja ja fyysisiä järjestelmiä, joissa on saman verran osia kun taas toiset puhuvat todellisessa elämässä kehitettävistä ohjelmista, joiden kokoluokka on hyvin suuri. Miljoonaosainen ohjelma ei ole epätavallinen. Sellainen koostuu muutamasta sadastatuhannesta rivistä ja muutama ihminen tekee sen verran muutamassa vuodessa. Vastaavaa tapahtuu aivan jatkuvasti. Miljoona osaa fyysisessä järjestelmässä alkaa jo olla ihmisten kykyjen äärirajoilla eikä sellaista järjestelmää juuri koskaan rakenneta. Siis sillä oletuksella, että toistuvia aliyksiköitä ei lasketa usempaa kertaa. Monissa fyysisissä järjestelmissä on toistuvia aliyksiköitä, mutta ne pitäisi laskea vain kerran kun tarkastellaan suunnittelun monimutkaisuutta.
Yhdessä ohjelmassa yhdistyy tyypillisesti enemmän ideoita kuin minkään muun alan suunnittelussa. Maamiina-ilmiö voi siis ilmetä jossain määrin muillakin aloilla, mutta sitä tapahtuu paljon enemmän ohjelmistoalalla. Tämä on yksi syy siihen miksi oikea käytäntö ohjelmistoalalla ei ole sama kuin oikea käytäntö muilla aloilla. On hölmöä olettaa, että aloja täytyy kohdella samalla tavalla. Jos tarkastellaan tekstinkäsittelyohjelmaa, löydetään satoja ominaisuuksia. Jokainen niistä ominaisuuksista on ainakin yksi idea. Jos ominaisuus on MPEG2-videon näyttäminen, sitä ehkä koskee 39 patenttia. Muita ominaisuuksia saattaa koskea yksi tai vaikka tusina patenttia, kukapa tietäisi? Joitain ominaisuuksia ei ehkä koske mikään patentti, mutta asian ydin on, että tekstinkäsittelyohjelmassa on tuhansia haavoittuvia kohtia ja se osoittaa tämän ongelman laajuuden.
Ohjelmistoalan pääasiallisena työnä on tuottaa suuria ohjelmistoja, jotka koostuvat valtavasta määrästä yksityiskohtia, joiden on toimittava oikein ja niiden on oltava keskenään yhteensopivia. Niillä ihmisillä, jotka tekevät ohjelmistoja, on ideoita ja kun he saavat idean, he kirjoittavat tekstinkäsittelyohjelmia ja jos heille tulee mieleen uusi idea, niin he tutkivat onko se parempi ja sitten käyttävät sitä ohjelmassaan. Tässä vaikea osuus ei ole idean saaminen eikä edes idean paremmuuden arviointi, vaan ohjelmakoodin kirjoittaminen. Niin kauan kun meillä on suuri määrä ohjelmoivia ihmisiä, sivutuotteena saadaan monia ideoita. Järjestelmän rajoittaminen ideoiden synnyttämiseksi ja esteiden luominen ohjelmistokehitykselle on typerää paitsi siksi, että se häiritsee ohjelmistokehitystä, myös siksi, että se on itsensäkumoavaa. Rajoittaminen johtaa uusien ideoiden vähenemiseen, koska ihmisten on vaikeaa tehdä juuri sitä työtä, joka synnyttää heille ideoita. On jopa taloustutkimuksia, jotka osoittavat, että patentit tällaisella alalla haittaavat, tai voivat haitata, kehitystä. Eräs tällainen tutkimus on osoitteessa www.researchoninnovation.org/patents.pdf. Siinä osoitetaan talousmallin avulla, että patenttisysteemi voi hidastaa kehitystä jopa taloudellisella tasolla, koska se haittaa sijoitustoimintaa alalla, jolla keksinnöt nojaavat aiempiin innovaatioihin.
Tämä on tärkeää, koska ohjelmistoideapatenttien puolustajat myöntävät kyllä, että patentit voivat aiheuttaa harmia monella tapaa, mutta he sanovat, että patentit edistävät kehitystä, mikä oikeuttaa lähes minkä tahansa haitan. Tässä on kaksi virheolettamaa. Ensinnäkin se, että kehitys olisi tärkeämpää kuin mikään muu, ja toisekseen, että ohjelmistopatenttien tulisi ylipäänsä edistää kehitystä. Niiden puolustajat haluavat, että näitä olettamia pidetään itsestäänselvyyksinä ja kyseenalaistamattomina. Meillä on kuitenkin todisteet siitä, että joissain olosuhteissa ohjelmistopatenttien vaikutus on juuri päinvastainen. Sitä paitsi ohjelmistoalalla on hyvin runsaasti aikaisempiin oivalluksiin nojaavaa kehitystä.
Ohjelmistopatentteja ei tulisi kuitenkaan pitää taloudellisena asiana. Useimmilla aloilla ne voivat olla sitä. Esimerkkinä ovat autojen valmistukseen liittyvät patentit, jotka voivat suoraan rajoittaa vain muutamia autonvalmistajia. Kyseessä on melko pieni osa maailman yhtiöistä, eikä näissä tapauksissa rajoiteta tavallisia kansalaisia tekemästä omia puuhiaan. Tässä tapauksessa voimme siis pitää patentteja taloudellisena kysymyksenä. En tiedä, onko hyväksi yhteiskunnalle, että on olemassa patentteja autonvalmistuksesta. Oikeastaan kukaan ei tiedä. On ylipäänsä hyvin vähän todisteita patenttien hyödystä yhteiskunnalle, mutta ainakin voin sanoa, että tuollaiset patentit eivät ole turmiollisia minun ja sinun elämälle, koska ne eivät rajoita meitä. Mutta ohjelmistopatentit rajoittavat jokaista ohjelmistokehittäjää ja jokaista tietokoneenkäyttäjää, ja näitä on jo aika monta. Kyseessä ei siis ole vain taloudellinen kysymys vaan puhumme jopa sen rajoittamisesta, mitä tietokoneellaan voi tehdä. Puhumme myös siitä, millaista liiketoimintaa tietokoneilla voi tehdä. Tämä on toinen ero ohjelmistoalan ja muiden alojen välillä. Se tarkoittaa, että ohjelmistoideapatentit ovat yksinkertaisesti sietämättömiä.
Vaikka suurten yhtiöiden hallitsemat organisaatiot, kuten Business Software Alliance, puolustavat ohjelmistopatentteja ja usein sanovat niiden olevan pienyrityksille tarpeellisia, ohjelmistopatentteja vastustaa Euroopan pienyritysten liitto, johon kuuluu kaksi miljoonaa pienyritystä. He eivät halua lisää byrokratiaa, joka rajoittaa esimerkiksi heidän sähköistä kaupankäyntiään. FFII:n posteri osoittaa seikkaperäisesti, kuinka Euroopan patenttivirasto (EPO) yrittää rajoittaa e-kauppaa. Kyseessä on posteri "Your webshop is patented", joka osoittaa tarkasti, mitkä kaikki tyypilliset verkkokaupan ominaisuudet ovat EPO:n myöntämien patenttien kattamia ja tulevat käyttöön, mikäli EU:ssa hyväksytään ohjelmistoideapatentit. Jätän keskustelun Euroopan tilanteesta muille puhujille, mutta osoitan ensin muutaman typerän patentteja puolustavan argumentin, joihin usein törmätään.
Ohjelmistoideapatenttien puolustajat tietävät, että useimmilla poliitikoilla ei ole taustaa ohjelmistoalalla. Poliitikoille voi siis sanoa asioita, jotka me tunnistaisimme hölynpölyksi, mutta ohjelmistopatenttien puolustajat arvelevat, että muut kuin alan ihmiset eivät tunnista näitä roskapuheeksi. He saattavat sanoa esimerkiksi, että Yhdysvallat on maailman tietokoneistetuin maa ja siellä on ohjelmistopatentit, joten niiden täytyy olla hyvä asia, joka meidänkin pitäisi toteuttaa. Tai että ilman ohjelmistopatentteja ohjelmistoyritykset eivät selviä. No, niitä kyllä oli runsaasti Yhdysvalloissakin paljon ennen ohjelmistopatentteja. Myös Euroopassa on ollut pitkään ohjelmistoteollisuutta ennen kuin EU edes harkitsi ohjelmistoideapatentteja, joten väite on ilmeisen naurettava.
He saattavat sanoa myös, että on vaikeaa, jos eri maissa on eri lait, joten lainsäädäntöä olisi harmonisoitava, muutettava lakeja yhdenmukaisiksi. Mutta hehän ovat kaiken aikaa tekemisissä eri maiden erilaisen lainsäädännön kanssa. Ja jos Yhdysvalloissa on jotain, kuten jengisotia kaduilla, onko se joku syy siihen, että Euroopassakin olisi oltava? Sokea Yhdysvaltain matkiminen ei ole järkevää. Usein he väittävät myös, että jos Yhdysvalloissa on ohjelmistopatentit ja Euroopassa ei, Yhdysvaltalaisilla yrityksillä on kilpailuetu. Oikeastaan tämä menee päinvastoin. Joka maalla on oma patenttijärjestelmä ja patentit siinä maassa rajoittaa ihmisten tekemisiä samassa maassa. Mutta jokainen maailmassa voi hakea patenttia tuossa maassa ulkomaalaisia poislukematta. Itse asiassa jos Suomi sallii ohjelmistoideapatentit, voidaan olla varmoja, että suurin osa niistä ei tule kuulumaan suomalaisille tai edes eurooppalaisille. Yhdysvaltalaiset yhtiöt kuten IBM haalivat niistä suurimman osan.
Tilanne on nyt siis se, että eurooppalainen ohjelmistokehittäjä tai kuka tahansa voi hakea patenttia Yhdysvaltain patenttitoimistosta ja sittemmin käydä Yhdysvaltalaisten ohjelmoijien ja kotikäyttäjien kimppuun. Kuka tahansa maailmassa voi käydä kimppuumme. Mutta niin kauan kuin Suomessa ei ole ohjelmistopatentteja, ohjelmistokehittäjät ja käyttäjät Suomessa ovat turvassa, joten teillä on nyt etulyöntiasema.
Yhdysvaltain hallinto reagoi tähän tavalliseen tapaan. Kun USA:lla on ongelma, hallitus ei yritä ratkaista sitä vaan päinvastoin se yrittää siirtää saman ongelman koko muun maailman vaivoiksi. Yhdysvallat yrittää vaatia ohjelmistopatentteja erilaisiin kauppasopimuksiin saadakseen ne voimaan myös muissa maissa. Mutta Euroopan unioni on liian vahva siihen, joten onnekkaasti teidän ei tarvitse huolia juuri tästä ongelmasta.
Jos siis pidätte Euroopan vapaana ohjelmistoideapatenteista, lopulta USA:n hallitus saattaa huomata, että Euroopalla on kilpailuetu, ja saattaa jopa päättää ratkaista ongelman. Tämä olisi ainoa näkemäni tapa, jolla tämä ongelma ratkaistaisiin omassa maassani, siis jos Yhdysvallat ymmärtää, että muut maat tulevat paremmin toimeen ilman tätä ongelmaa.
Nyt kuitenkin päättäisin puheeni, koska minun täytyy lähteä...
Käännös: Vesa-Matti Kari ja Jukka Huhta harrastuspohjalta. Käännöstä saa levittää ja parantaa. Parannukset otetaan ilolla vastaan jälkimmäisen sähköpostiosoitteessa, joka löytyy kotisivulta. Lisää tietoa ohjelmistoideapatenteista EFFI:n ja FFII:n sivuilta.