torstai 27. lokakuuta 2011

VisiCalc täytti 32 vuotta

Sivulla http://bricklin.com/history/vcexecutable.htm on pala tietotekniikan historiaa: 30 vuotta sitten julkaistu DOS-ohjelma, joka edelleen toimii tämän päivän pc-tietokoneissa.

Kyse on maailman ensimmäisestä taulukkolaskentaohjelmasta, jonka Dan Bricklin ja Bob Frankston esittelivät 19.10.1979 (huomaa vuosikymmen!) Apple II -tietokoneelle. Ohjelmasta tuli tavattoman suosittu (aikansa Facebook, heh) ja kun IBM PC esiteltiin elokuussa 1981, ohjelmasta ilmestyi pian myös DOS-versio. VisiCalc tosin menetti nopeasti asemansa uudelle kilpailijalle, joka oli kehitetty suoraan DOSille ja hyödynsi "kaiken" (max 640 kt) keskusmuistin.

Ällistyttävää on se, että 30 vuotta vanha ohjelma toimii edelleen tämän päivän tietokoneissa (poislukien 64-bittinen Windows). Eikä ohjelma tosiaan ole koolla pilattu: exe-tiedosto on 27 520 tavua. Siis alle 30 kilotavua! Vertailun vuoksi: tämän www-sivun html-koodi on noin 135 kilotavua eli nelinkertainen. Mutta hei, vuonna 1981 oli käytössä 160 kilotavun levyke -- pitihän sille jäädä tilaa myös työtiedostoille :-)

Yhteensopivuus on pc-maailmassa sekä siunaus että kirous.

16 kommenttia:

Igor kirjoitti...

Tuo Visicalc oli todellinen killer application. Minä sain silloin ihan alussa myyjältä lainaksi viikonlopuksi Apple II koneen ja Visicalcin. Opettelin Visicalcin käytön perjantai-iltana ja lauantaina ja sunnuntaina koodasin Visicalcille samankaltaisen taloushallinnon ohjelman, jonka olin koodannut noin kuukaudessa Apple II kilpailijalle Commodorelle (jolle myös löytyi Visicalc). Koin aikamoisen herätyksen kun älysin tehneeni Visicalcilla päivässä sen mitä olin ohjelmoinut kuukauden. Eli tuottavuus oli Visicalcilla noin 30 kertainen! Moni yritys osti silloin Applen II:n pelkästään ajaakseen tuota Visicalcia.

Sen jälkeen opin tarkaksi työkalujen suhteen. Merkittävä vuosipäivä. Vaikka PC:llä Visicalcin sijasta sen 'klooni' Lotus olikin se killeri ainakin minun muistikuvani mukaan.

Unknown kirjoitti...

Tässä hyvä, lyhyt historiikki muista VisiCalcin jälkeen ja jopa hieman ennenkin tulleista taulukkolaskentaohjelmista:

http://www.cs.umd.edu/class/spring2002/cmsc434-0101/MUIseum/applications/spreadsheethistory2.html

Ja täällä ylemmällä tasolla esim. tekstinkäsittelystä:
http://www.cs.umd.edu/class/spring2002/cmsc434-0101/MUIseum/applications/index.html

Igor kirjoitti...

Löytyihän tuosta Teemu Mykkäsen linkistä (hyvät linkit!) tekstinkäsittelyohjelma Wordstarkin. Käytin sitä jo 8 bittisissä mikrotietokoneissa ja siirryin myöhemmin MS-DOS versioon. Sitten tuli Word Perfect joka jämähti paikoilleen Windowsin ilmestyttyä. Niin jämähti kotimainen TEKO:kin. Erinomainen tekstinkäsittelyohjelma josta oli huhujen mukaan Windows testiversiokin. Koko ohjelma lopetettiin. Ami Pro (jota en TEKO:n tavoin löytänyt taulukosta) oli melko hyvä Windowsissakin mutta Microsoft jylläsi markkinat omalla Wordillaan. Halpisversiona käytin pitkään Microsoftin Worksia, jolla pystyi tekemään suurimman osan tarvittavista hommista ja siinä oli ihan kohtuullisen taulukkolaskentakin.

Jari kirjoitti...

"Koin aikamoisen herätyksen kun älysin tehneeni Visicalcilla päivässä sen mitä olin ohjelmoinut kuukauden. Eli tuottavuus oli Visicalcilla noin 30 kertainen!"

Mikä mahtoi olla ohjelmointikieli? Minusta ohjelmointi on dynaamisuutensa ansiosta paljon tuottavampaa, mutta Commodoresta päätellen olet koodannut jollakin konekielellä tai Basicilla.

Pera kirjoitti...

Näin joskus Suomen telkkarista tarinan, missä new-yorkilainen entinen roska-auton kuski oli aikoinaan ostanut niitä ensimmäisimpiä "tietokoneita", ja ryhtynyt kehittämään täysin tietotekniikkaa taimattomattomana itselleen lasketaohjelmaa.

Heppu dokumentissa istui ja kertoi osaksi omistamansa ohjelmistofirmansa henkilökunnan baarin jakkaralla, kuinka hänen osallaan amerikkalainen unelma toteutui. Unelma toteutui hänenkohdallaan sen takia, että hänellä oli oikeanlaiset aivot omaksua tietokoneen ohjelmointia ilman koulujen koulutusta alalle.

Igor kirjoitti...

Jari: Commodoren Basic oli kieli. Konekielellä siihen olisi saanut vääntää muutaman kuukauden lisää. Mutta ei vastaava ohjelma paljoa nopeammin millään muullakaan sen ajan kielellä olisi syntynyt (olen koodannut ammatikseni yli 30 vuotta että jotain tiedän minäkin!). Joka tapauksessa tuottavuuden kasvu oli huomattava kun Visicalc sopi juuri sellaiseen työhön.

Peran esimerkki ei sovellu tähän case'iin kun minulla oli asianmukainen koulutus. En tullut koodariksi tukkimetsästä. Koodasin myös Cobolilla ja Fortranilla enkä vieläkään osaa vähätellä Applen tai Commodoren Basicia. Sieltähän nekin olivat Bill Gatesin kynästä :)

Niko Paulanne kirjoitti...

Hyvä muistutus tietotekniikan elinkaaresta!

Vielä tänäkin päivänä on mielestäni todella kummallista, että yritetään keksiä pyörä yhä uudestaan ja uudestaan tekemällä sovelluksia alemman tason ohjelmointikielillä, kun ongelman voisi ratkaista helpommin. Monessa valmiissa ohjelmistossa on tarvittavat palikat helppoon tiedon syöttämiseen, muokkaamiseen ja tulostamiseen. Aika monen perustietokantasovelluksen teko onnistuisi vaikka perustaulukkolaskentaohjelmistolla ja aikaa säästyisi.

Jari kirjoitti...

Igor: OK, itse koodailin samalla Gatesin ja Allenin lanseeraamalla kielellä koko 90-luvun, ja myönnän ettei se ollut erityisen tuottavaa. Visuaalinen taulukkolaskenta sopi tuohon aikaan, koska tilan puutteen vuoksi käsitteellinen ohjelmointi oli vaikeaa. Esimerkiksi muuttujat nimettiin Basicissa yhdellä tai kahdella merkillä ja "funktiot" rivinumeroilla.

Olen kokenut Prolog-kielen taulukkolaskentaa tuottavammaksi. Prolog oli olemassa jo ennen taulukkolaskentaa, mutta Commodoren pienellä muistilla sen käyttäminen ei varmaankaan olisi ollut järkevää.

Igor kirjoitti...

Niko P ymmärsi kommenttini oikein: oikea työkalu oikeaan tehtävään. Tuskin Jarikaan esittää että Prolog olisi kaikkiin mahdollisiin tehtäviin paras työkalu?

Jari: Siitä Bill Gatesin Basicista löytyi jo 1980-luvulla sekä 8- että 16-bittisiin ympäristöihin kääntäjä, jossa muuttujanimet saivat olla pitkiä eikä rivinumeroitakaan tarvittu. Ei se vähemmän tuottava ollut osaajan käsissä kuin vaikkapa Fortran tms.

Petteri Järvinen kirjoitti...

CBASIC oli muistaakseni saatavilla jo CP/M-koneisiin.

Microsoftilla oli tehokas Basic-kääntäjä joskus 1980-luvun puolivälissä. QuickBasic ja Borlandin Turbo Basic olivat nekin kääntäjiä, joissa oli mukana (sen ajan olosuhteisiin nähden) hieno kehitysympäristö.

Näillä oli hyvin vähän tekemistä sen alkuperäisen, ohjelmoinnin opetukseen tarkoitetun Basicin kanssa.

Jari kirjoitti...

"Näillä oli hyvin vähän tekemistä sen alkuperäisen, ohjelmoinnin opetukseen tarkoitetun Basicin kanssa."

Kyllä Basic-kieli on aina säilyttänyt luonteensa rakenteettomana kielenä. Laskisin sen esoteerisiin kieliin, koska se on minusta yksinkertaisimpia tapoja päästä Turing-täydelliseen ohjelmointiin. Esim. olio-ohjelmointi taisi tulla Basiciin vasta hiljalleen VB.NETin myötä, jos Microsoft enää itsekään sanoo sitä Basic-kieleksi.

Jari kirjoitti...

QuickBasicissa oli tosiaan hieno ympäristö, jossa oli hypertekstiin perustuva ohje. Editorissa oli automaattinen koodin muotoilu. Mutta itse kielessä esim. callback-menetelmä puuttui täysin. Jäi jotenkin sellainen maku, että Microsoft ei halunnut käyttäjien tekevän ohjelmia jotka kilpailisi Microsoftin ohjelmien kanssa. Siihen Basic oli hyvä valinta.

Igor kirjoitti...

Jari kirjoittaa ilmeisesti tulkkaavasta Quickbasicista. Vaikka sen viimeiset versiot olivatkin ihan kelpoja nopeaan ja kevyeen protoiluun niin Microsoftilla oli ammattitason tuotteitakin kuten esimerkiksi aito Basic kääntäjä. Visual Basicin, muistaakseni 5. version myötä, palastui sellainenkin erikoisuus että Microsoftin C-kääntäjä osasi kääntää myös Basicia. En pysty tässä luettelemaan mutta Jari ei ehkä tiedä että eräitä tunnettuja menestysohjelmiakin on koodattu Basicilla.

Viittaus puuttuvaan Callback ominaisuuteen on vain pieni yksityiskohta. Ei sellaista ollut aikoinaan "tosikielenä" pidetyssa Fortranissa tai Cobolissakaan. Mutta oli tuohon callbackkiinkin Basic virtuooseilla (sellaisiakin oli!) omat kikkansa.

Mutta sitä kiukan ihmettelin että Jari vielä koko 90-luvun kertoi koodanneensa (Quick)basicilla? Oli se 1990-luvulle tultaessa jo hiukan vanhahtava tuote.

Jari kirjoitti...

Minun tietojeni mukaan QuickBasicissa oli aito basic-kääntäjä. Sekoitatkohan sen QBASICiin, joka oli puolestaan tulkkaava. Noiden ero näkyi nopeudessa. Onko Microsoft tehnyt jonkun vielä "aidomman" kääntäjän kuin mitä QuickBasicissa oli?

Ihmettelen kielivalintaani itsekin. Olin mattimyöhäinen. Toisaalta harrastin protoilua, joten rakenteellinen ohjelmointi ei silloin kiinnostanut. Nyt käytössäni on onneksi kuitenkin C++.

Igor kirjoitti...

Jari on oikeassa. Minä muistin väärin.

Quickbasic oli aito kääntäjä ja sen viimeinen 4.5 versio oli ihan kelpo. Siitä on niin kauan aikaa etten enää muistanut sen oikeaa nimeä ja sekoitin Qbasic-tulkkiin. MS-DOS koneissa käytin jonkin aikaa Quickbasic kääntäjän rinnalla Borlandin TurboBasicia.

Lasse Holm kirjoitti...

Muistan hyvin VisiCalkin, ja sen jälkeen tulleen Lotus 123 joka mielestäni teki sen varsinaisen läpimurron, paljon ennen Exceliä.
Olin siihen aikaan erään kotimaisen teollisuuden toimijan palveluksessa, ja muistan hyvin kun sain firman toisena henkilöna PC:n käyttööni.