2011-05-05

Suljetun lähdekoodin ohjelmistot on kiellettävä.

Olen tänään pohdiskellut puoluetoverini Henri Tuholan kanssa sitä, pitäisikö suljettu lähdekoodi määritellä rikokseksi. Suurin osa ihmiskunnan tämänhetkisistä ongelmista johtuu nimenomaan suljetun lähdekoodin ohjelmistoista, jotka haaskaavat resursseja ja hidastavat teknologian kehitystä. Lisäksi suljetuissa ohjelmistoissa voi olla ties minkälaisia vakoilu- ja hallintatarkoituksiin tarkoitettuja porsaanreikiä, joita kukaan ei pysty huomaamaan lähdekoodin itsekkään pimittämisen vuoksi. Yleensäkin kaikki ei-vapaa informaatio -- niin suljettu lähdekoodi kuin esimerkiksi ei-julkiset Facebook-profiilitkin, pimittävät ihmiskunnalta sen tarvitsemaa informaatiota ja saavat kaikkien verkkoon kytkeytyneiden ihmisaivojen muodostaman ns. noosfäärisen superälyn toimimaan vajavaisesti ja jopa virheellisesti. Virhetoiminnat viivyttävät teknologisen singulariteetin saavuttamista ja saattavat pahimmillaan maksaa jopa ihmiskunnan hengissäpysymisen.

Henkilökohtaisesti olen näiden tosiasioiden valossa ehdottomasti sitä mieltä, että paras keino turvata ihmiskunnan tulevaisuus ja maksimoida yhteiskunnan vapaus ja teknologinen kehitysnopeus on kieltää suljetun lähdekoodin ohjelmistot. Näitä ovat esimerkiksi Microsoftin ja Applen tuottamat käyttöjärjestelmät, joiden sijaan voitaisiin kaikissa mahdollisissa tehtävissä ruveta käyttämään vaikkapa suomalaislähtöistä Gentoo-järjestelmää. Lähestulkoon kaikkiin tarkoituksiin on jo nykyään olemassa sopiva avoimen lähdekoodin ohjelmisto, joka on kaikissa asioissa teknisesti täysin ylivertainen verrattuna vanhanaikaiseen ja luddiittiseen suljetun lähdekoodin vastineeseensa. Ja mikäli johonkin tarkoitukseen ei sopivaa ohjelmaa löydy, voi kuka tahansa helposti kirjoittaa sellaisen itse tai muokata jotain olemassaolevaa ohjelmaa vastaamaan omia tarpeitaan.

Gentoo on sen vuoksi ideologisesti puhdas järjestelmä, että se kannustaa kääntämään kaikki ohjelmistot itse lähdekoodista, jolloin ne toimivat kohdelaitteessa aina moninkertaisella nopeudella verrattuna esikäännettyihin binääreihin -- varsinkin, jos käyttäjä muistaa käyttää tehokkainta tämänhetkisen tieteen tuntemaa optimointiflagia "-funroll-all-loops". Lisäksi koska ohjelman lähdekoodi ladataan aina koneelle ennen sen asentamista, on käyttäjän helppo lukea se läpi ennen ohjelman käyttöönottoa. Näin käyttäjä sisäistää samalla ohjelman toiminnan läpikotaisin eikä se tuota hänelle yllätyksiä. Itse käytän lähdekoodin läpikäymiseen Dictator-nimistä Rapid Serial Visual Presentation -ohjelmistoa, jolla laajankin ohjelmiston koodin läpi lukemiseen menee sopivien nootropiinien vaikutuksen alaisena korkeintaan muutamia tunteja.

Suurin osa ihmisistä ei koskaan lue käyttämiensä ohjelmien lähdekoodia. Tällainen velvollisuuksien laiminlyöminen on mielestäni täysin edesvastuutonta, sillä koodiin, jota kukaan muu kuin sen alkuperäinen kirjoittaja ei lue, on helppo piilottaa ties minkälaisia rootkittejä. CIA:n kaltaiset tiedustelupalvelut käyttävät rootkittejä epäilyttävien henkilöiden vakoilemiseen, mikä vaarantaa koko ihmiskunnan tulevaisuuden. Mielestäni jo alakoulussa tulisi opettaa ohjelmakoodin lukemista ja kirjoittamista, jotta ihmiset pystyisivät tarkastamaan käyttämiensä ohjelmien oikeellisuuden ennen niiden käyttöönottoa. Tämän myötä ei ihmiskunnan myöskään tarvitsisi haaskata resursseja käyttöohjeiden ja dokumenttien kirjoittamiseen, sillä lähdekoodi on jo itsessään täydellisin kuviteltavissa oleva dokumentaatio, jonka lisäksi ei kenenkään tarvitsisi tarvita mitään muuta. Myös kaikenlainen tekninen tuki voitaisiin lopettaa tarpeettomana.

Haluan näyttää kansalaisille malliesimerkkiä omalla toiminnallani, ja tästä johtuen pyrin käyttämään kaikista ohjelmista aina kaikkein uusinta versionhallinnasta löytyvää versiota. Parhaimmillaan saatan päivittää saman ohjelman jopa useita kertoja päivässä. Näin pystyn ottamaan kaikenlaiset uudet teknologiat käyttöön liki välittömästi sen jälkeen kun ne on implementoitu, mikä nopeuttaa kohdallani teknologista kehitystä huomattavasti. Jos kaikki maailman ihmiset minimoisivat teknologian omaksumisviiveen samalla tavoin kuin minä, teknologian kehitys varmasti moninkertaistuisi ja Maa-planeetta saavuttaisi singulariteetin paljon nykyvauhtia aikaisemmin.

Tällä hetkellä täydellisin ohjelmointikieli kaikkiin mahdollisiin tarkoituksiin on Haskell, joka tulisi sisällyttää myös koulujen opetussuunnitelmiin ainakin siihen asti kun sille keksitään parempi vaihtoehto. Samoin kaikki tärkeimmät ohjelmistot pitäisi kääntää Haskell-kielelle, jotta kielen täydellisyydestä saataisiin paras mahdollinen etu. Jos jostain ohjelmasta puuttuu jokin toiminto, voisi kuka tahansa peruskoulun käynyt näppärästi Haskell-kielellä lisätä ohjelmaan tämän toiminnon. Samoin kenenkään ei tarvitsisi enää kärsiä bugisista ohjelmista, sillä Haskell-kielen formaali rakenne tekee bugien tai huonojen teknisten ratkaisujen syntymisen mahdottomaksi. Näin jokainen voisi myös osallistua avoimen lähdekoodin projekteihin vailla pelkoa siitä, että heidän kirjoittamansa koodi olisi jotenkin huonoa.

Toinen asia, johon koulujen tietotekniikkaopetuksessa tulisi Haskell-ohjelmoinnin lisäksi keskittyä, on Unix-komentorivi, joka on edelleen kaikkein tehokkain kuviteltavissa oleva tapa käyttää tietokonetta. Mikäli kaikki maailman ihmiset oppisivat suorittamaan kaikki tietojenkäsittelytehtävänsä tehokkaasti suoraan komentoriviltä kankeiden graafisten käyttöliittymien sijaan, he saisivat kaikki asiansa hoidettua monta kertaa nopeammin, mikä myös nopeuttaisi teknologian kehitystä yhtä moninkertaisesti. Unix-komentorivi on vuosikymmenten saatossa osoittanut ylivoimaisen joustavuutensa ja intuitiivisuutensa liki kaikessa mahdollisessa, mutta Microsoft- ja Apple yhtiöiden aivopesemillä matalaälyisillä kansalaisilla on vaikeaa käsittää tätä intuitiivisuutta. Näiden yhtiöiden tuottamasta taantumuksellisesta luddiittipropagandasta pitäisi jo vähitellen päästä eroon.

Minusta olisi sanoinkuvaamattoman hienoa ihmiskunnan tulevaisuuden kannalta, jos koululaiset voisivat aloittaa päivänsä laulamalla yhdssä Richard Stallmanin kappaleen "Free Software Song" samalla kun Tux-pingviinilippu nostetaan salkoon. Tämä valaisi uuteen sukupolveen uskoa parempaan ja avoimempaan huomiseen, kunnioitusta menneiden hakkerisukupolvien suursaavutuksia kohtaan ja palavaa intoa noosfäärisen superälyn kehittämiseen. Tulevaisuus on lapsissa ja nuorissa, antakaamme heille eväät paremman ja vapaamman maailman rakentamiseksi!

4 comments:

  1. HAI
    CAN HAS STDIO?
    IM IN YR LOOP UPPIN YR VAR TIL BOTH SAEM VAR AN 9001
    VISIBLE "LOLCODE is better than Haskell!"
    IM OUTTA YR LOOP
    KTHXBYE

    ReplyDelete
  2. Tulevaisuus on siis ohjelmissa, joiden kehittämiseen ei ole ollut mahdollista tai motivoivaa laittaa tarpeeksi rahaa ja joiden käytettävyys on tämän vuoksi olematonta (kuten nykyisten OpenOffice, GIMP etc. "ohjelmien")?

    Avosorsalle on paikkansa, mutta ei peruskäyttäjärajapinnassa (paria poikkeusta mukaan lukematta). Testaukseen ja käyttöliittymäsuunnitteluun on jatkossakin oltava motivaatiota - raha on tässä paras.

    ReplyDelete
  3. Tulevaisuudessa ei ole kannattavaa laittaa rahaa ohjelmistoprojektiin, ellei se ole avoimen lähdekoodin projekti. Eikä välttämättä nykyäänkään. Avoin lähdekoodi on osoittanut ylivoimaisuutensa niin monta kertaa, että lähdekoodin salassapitoa kannattavia tahoja ei voi pitää minään muuna kuin luddiitteina, kukkahattutäteinä ja Microsoftin ja Applen käytettävyyspropagandan uhreina. Todellisuudessa ns. "käytettävyys" on ainoastaan tapa alentaa käyttäjien älykkyyttä ja viivyttää singulariteetin saavuttamista.

    ReplyDelete
  4. Millä tavalla softa, jolla voi tehdä tarvitsemansa työn sujuvasti (sen sijaan että käyttäisi softan kanssa tappelemiseen tehokasta työaikaa) "alentaa käyttäjien älykkyyttä"?

    Tuntuu lähinnä siltä, että avosorsaporukan mantrat loppuvat siinä vaiheessa kun ohjelmilla pitäisi tehdäkin jotain. Kun se, että ohjelman koodi on vapaasti jaettavissa, ei maagisesti teekään siitä erityisen toimivaa - eikä millään tavalla automaattisesti parempaa kuin suljetusta ohjelmasta.

    Oikeasti toimivat työpöytäsovellukset, kuvankäsittelysovellukset ja musiikkisovellukset puuttuvat avopuolelta täysin. Ne lähes käytettävätkin ovat käytännössä ideakopioita suljettujen softien vanhoista versioista. Joskus olisi kiva nähdä jotain avoimen puolen innovaatioita näillä saroilla. En usko niihin ihan pian törmääväni - raha kun on tärkeä motivaattori. Toki piraattiporukkakin tämän tajuaa, kunhan ikää tulee lisää ja elämä alkaa tarvita muutakin kuin kolaa, pakastepitsoja ja roaccutania.

    Applen ja Microsoftin "käytettävyyspropaganda" (en ole vielä tähän k.o. firmojen taholta törmännyt) ei nouse firmoista - se nousee ihmisistä, jotka tekevät _töitä_ (ymmärrän, voi olla uusi juttu monille) ohjelmilla ja joiden elanto riippuu työnteon sujuvuudesta ja toimivuudesta. Mikäli avosorsasofta on hyvä, sitä käytetään - parissa hassussa yhteydessä näin on myös ollut. 99% ammattikäyttöön soveltuvista softista (muun kuin esim. tietojärjestelmien ylläpidon puolella) ei-ATK -keskeisillä aloilla on kuitenkin suljettusorsaista - johtuen ihan siitä, että näin voidaan sijoittaa tarpeeksi rahaa oikeasti käyttäjäliittymältään toimivan softan kehittämiseen.

    Kunnat ja kaupungit pääsevät parhaaseen tulokseen käyttämällä ihan tavallisia, kodeissakin yleisiä suljetun koodin ohjelmistoja. Näin työntekijöiden ei tarvitse tuskailla käytön kanssa - työn tekeminen riittää.

    Singulariteetit jätän sitten (sinänsä viihdyttävään) scifikirjallisuuteen. Toki niistä puhuva kertoo aika hyvin, miksei häntä pidä valita mihinkään julkishallinnolliseen tehtävään. Kosketus todellisuuteen puuttuu.

    ReplyDelete