Ohjelmistot ja ohjelmointi: lokakuu 2005 - arkisto
Macromedia tiedotti kesäkuun alussa liittyvänsä Eclipse Foundation:iin ja tuovansa Eclipse IDE:een perustuvan Flash-tekniikalla toteutetujen thin client -sovellusten kehitysvälineen. Mainoskikkare-maineestaan ilmeisesti eroon pyrkivä Macromedia kutsuu Flash-tekniikkaa nyt parhaiden ysärivuosien tapaan alustaksi (platform).
Muutama päivä sitten oli vuorossa oli PHP-moottorin tekijä Zend Technologies, joka suunnittelee julkaisevansa myöhemmin tänä vuonna paketin nimeltä Zend PHP Framework. Sovelluskehyksen on määrä tuoda ryhtiä PHP-kehitykseen:
Zend PHP Framework: A Web application framework which will standardize the way PHP applications are built. The Zend PHP Framework will accelerate and improve the development and deployment of mission-critical PHP Web applications.
(Lehdistötiedote 19.10.-05)
Ilmeisesti tarkoitus on lisätä PHP:n uskottavuutta ns. enterprise-markkinoilla, jotka tällä hetkellä ovat melko vahvasti Javan J2EE- ja Microsoftin .NET-teknologiaperheiden hallinnassa. Lisäksi Zend on ajamassa projektia PHP-pluginin toteuttamiseksi Eclipse-alustalle. PHP5:n olio-ohjelmointiominaisuudet tuovat sen jo varsin lähelle Java-kieltä, joskin vahvan tyypityksen ja esimerkiksi luokkien pakettirakenteen puuttuminen hankaloittavat J2EE-maailmaan tottuneen kehittäjän työskentelyä ja uudelleenkäytettävien sovellusosien hallintaa.
OpenOffice 2.0 on julkaistu virallisesti. Suurin yksittäinen muutos lienee siirtyminen OASIS OpenDocument -standardin mukaisiin XML-pohjaisiin tiedostomuotoihin. Suomen- ja ruotsinkielinen versio on saatavilla sisältäen suomenkieltä ymmärtävän tavutuspaketin. Mukana on myös ykisnkertainen HSQLDB-tiedokanta, joka on Java-pohjainen ja käyttää tiedon, taulukuvausten, kyselyjen, raporttien yms. tallentamiseen paikallisella kovalevyllä sijaitsevaa XML-tiedostoa. Aika hämärältä kuulostaa, mutta ehkä tuota voi käyttää vaikkapa osoitekortiston yms. tallentamiseen.
XForms-tuki kuulostaa myös mielenkiintoiselta. Tätä HTML-lomakkeiden älykkäämmän seuraavan sukupolven tulemista onkin jo odotettu vuosikausia. Firefoxiin tuki on ilmeisesti tulossa versiossa 1.5. PDF-tiedostojen tuki on myös laajennettu linkkeihin ja lomakkeisiin.
Ja huimista huiminta: OO:n taulukkolaskenta Calc tukee nyt samaa maksimimäärää rivejä kuin MS Excel (216=65536 kpl) ;-) Ei kyllä ymmärrä yksinkertainen koodarin mieli, miksi tämäkin rajoitus piti vielä Microsoftilta kopioida. Eletään kuitenkin vuotta 2005.
Oikeusministeriössä keväällä 2005 valmistunut toimisto-ohjelmaselvitys suosittaa hallinnonalan 10000 työasemakäyttäjästä 8500 siirtymistä OpenOffice-perheen käyttöön vuodesta 2007 alkaen. Selvityksessä vertailtiin kolmea vaihtoehtoa keskenään kokonaiskustannusten perusteella Windows XP:n oletettuna elinaikana 2006-2011:
- Lotuksen SmartOffice (70%) + MS Office (30%): 2,8 milj ¤
- pelkkä MS Office: 9,8 milj. ¤
- OpenOffice (85%) + MS Office (15%): 4,2 milj ¤
SmartOfficen vahva asema johtuu siitä, että ohjelmisto on nykyisin laajasti käytössä hallinnonalalla. MS Officesta ei arvella voitavan kokonaan luopua, joten kaikkiin vaihtoehtoihin sisältyy lisenssimaksuja Microsoftille. Myös SmartOfficen lisenssimaksuja sisältyy kaikkiin vaihtoehtoihin useamman vuoden siirtymäkauden ajan.
Ehkä sitten nuo tietokonekauppiaatkin uskaltaisivat ryhtyä myymään PC-koneita, joihin olisi esiasennettu OpenOffice. Ainakin käyttäjät saisivat paremman paketin kuin Microsoftin Works, joka halvemmissa koneissa tuntuu nyt olevan vakiona. Samalla mukaan voisi paketoida Firefoxin ja Thunderbirdin korvaamaan IE:n ja Outlookin. Tällä tavalla luulisi saavan massoja liikkeelle myös kotikäyttäjien keskuudessa. Tämän jälkeen olisikin jo melko lailla pienempi askel siirtyä Linuxin käyttöön.
Muutaman päivän intensiivisen koodauksen jälkeen aloin saada jo melko toimivaa jälkeä aikaan tuossa Ajax-projektissa ja JavaScript-koodia oli kasassa n. 700 riviä. Firefox totteli käskyjä pääasiassa oikein kiltisti ja js-konsoli kertoi missä mentiin vikaan. Mutta annas olla kun yritin IE:llä. Ensin pähkäilin pitkään, että miksi ei näy ruudulla yhtään mitään, vaikka source-näkymä näyttää ihan hyvältä. Olin sisällyttänyt javascriptin tyhjällä elementillä:
<script language="javascript" type="text/javascript" src="editor_engine.js"/>
IE ei tästä tykännyt laisinkaan, vaan lopetti koko sivun piirtämisen valittamatta kuitenkaan mistään virheestä(sic!). Kun korjasin tagin muotoon:
<script language="javascript" type="text/javascript" src="editor_engine.js"></script>
niin päästiin eteenpäin. Mystisiä ongelmia tuli kuitenkin heti eventtien käsittelyssä (esim. onChange-event lähtee eri aikaan) ja ilmeisesti myös DOM-käsittelyssä, vaikka olin yrittänyt erikseen ottaa huomioon selainten event-rajapintojen erot.
Nyt siis näyttää siltä, että teen tämän sovelluksen käyttöliittymälogiikan sittenkin perinteisemmin mahdollisimman pitkälti serveripuolella PHP:lla. Ehkä palaan tuohon Ajax-koodiin vielä jossain myöhemmässä vaiheessa, mikäli aikaa on ja selainympäristöt lähentyvät toisiaan. Hyödyllinen kokemus tämä kuitenkin oli. Nyt voi olla entistä paremmin perustein sitä mieltä, että työpöytätyyppiset sovellukset kannattaa ylimääräisen säädön minimoimiseksi tehdä joko kontrolloidussa palvelinympäristössä tai työasemapäässä paksuna sovelluksena esim. Javalla.
XUL on myös mielenkiintoinen UI-rakennustekniikka, johon pitäisi tutustua tarkemmin jossain välissä. Mozillan Firefoxin ja Thunderbirdin kälit on ilmeisesti kokonaan rakennettu tällä XML-pohjaisella käyttöliittymäkuvauskielellä. Firefox-selaimen lukuisat laajennokset todistanevat tekniikan jonkinasteisesta käyttökelpoisuudesta. Ei olekaan lainkaan ihme, että Firefoxilla JavaScript ja XML-pohjaiset työkalut toimivat mainiosti, sillä niitä tarvitaan kiinteänä osana koko kälimoottorin pyörittämistä.
Vähintään läheltä Mozillan XUL-tekniikkaa liippaavat Open Source -työkalupakit Luxor ja SwixNG, jotka pyrkivät Javalla pyöritettävän käyttöliittymän kuvaamiseen XML-pohjaisella kielellä. Molemmat puhuvat XUL-kielestä, ja ilmeisesti termin käytöstä on vähän kränää.
Töissä olen toteuttamassa ensimmäistä kokonaista Ajax-tyyppistä (Asynchronous JavaScript and XML) sovellustani. Koko käyttöliittymälogiikan koodaaminen JavaScriptillä tuntuu vanhan koulun sovelluskehittäjästä vähintään uskaliaalta, mutta tekniikan näytöt, mm. Google GMail ja ennen kaikkia Maps ovat melko vakuuttavia esimerkkejä tekniikan käyttökelpoisuudesta työpöytätyyppisten, mutta netin kautta käytettäviksi tarkoitettujen sovellusten toteuttamisessa. Ajax-sovelluksissa pyritään eroon webin perinteisestä pyyntö-vastaus -toimintamallista, jonka keskeisiä piirteitä ovat mm.
- kunkin resurssin (~sivun) yksilöivä ja pysyvä URL: osoite määrää sen mitä ruudulle tulee,
- tietojen syöttäminen tapahtuu muokkaamalla tietoja HTML-lomakkeella ja lähettämällä lomakkeen tiedot kerrallaan palvelimelle käsiteltäväksi,
- palautteen antaminen tapahtuu palauttamalla palvelimelta staattinen tai dynaamisesti luotu kokonainen HTML-sivu, jonka selain näyttää käyttäjälle,
- HTML-sivujen sisältöä ei juurikaan voi muokata asiakaspäässä lataamatta uutta sivua palvelimelta.
Ajax-sovelluksissa pysytään tyypillisesti yhdellä "sivulla", jonka sisältöä ja rakennetta muokataan JavaScriptin ja Document Object -mallin (DOM) tarjoaman ohjelmointirajapinan avulla. Palvelimelle kommunikoidaan erityisen XMLHTTPRequest-luokan avulla, jonka avulla palvelimelta voi pyytää vaikkapa xml-muotoisia tiedostoja, joita puolestaan voidaan käsitellä JavaScriptin ja DOM:in avulla. Näin esimerkiksi hiiren klikkaus taulukon rivin päällä voi käynnistää riviä vastaavan datatiedoston lataamisen palvelimelta ja sen sisältämien tietojen esittämisen samalle sivulle lennossa rakennettavan HTML-koodin muodossa. Pyyntö voidaan tehdä asyncronisesti omassa säikeessään, jolloin selain ei "hyydy" pyynnön tekemisen ajaksi, vaan käyttäjä voi jatkaa toimintoa, jota oli tekemässä. Pyynnön valmistuttua XMLHTTPRequest-säie kutsuu haluttua JavaScript-funktiota, joka hoitaa saadun tiedon käsittelyn ja esittämisen.
Tässä tekniikassa on myös riskinsä, joista ei suinkaan vähäisimpänä täydellinen riippuvuus selaimen JavaScript-tuesta. Sovelluksen koodin paljastaminen käyttäjille ja sen mahdolliset toimintahäiriöt voivat myös monissa tapauksissa olla tietoturvariskejä. Uskalsin kuitenkin ottaa tämän tekniikan kyseisen työprojektin välineeksi, sillä aikaisempi sovellusversio oli jo valmiiksi täysin JavaScript-riippuvianen ja sovellus tulee sisäiseen käyttöön, jolloin selainten ja työasemakonfiguraatioiden ajanmukaisuus on ns. suuren yleisön soveluksia paremmin hallinnassa. Lisäksi tiedon välittäminen ja tallentaminen XML-muodossa sopii hyvin firmassa käynnissäolevaan kattavaan hankkeeseen, jonka tavoitteena on siirtyä välitämään tietoa järjestelmien välillä lähes yksinomaan XML-muodossa.
Sanomattakin on selvää, että sovelluksen pitäisi olla käytössä hyvin pian, joten pitkiä päiviä lienee tässä vielä edessä lähiaikoina. Uusi mielenkiinoinen tekeminen kuitenkin motivoi kummasti :-)
Olipa taas turhauttavaa puuhastelua kaverin toimimattoman läppärin kanssa tänään: virustorjuntaohjelmiston toimimattomuudesta Wndows XP:n uudelleenasennukseksi eskaloitunut kolmen tunnin installation fiasco päättyi siihen, ettei Windowsin aktivointi verkon yli onnistunut, mistä syystä koneelle ei päässyt lainkaan kirjautumaan sisään. Mitään ei voinut tehdä, piti vaan nostaa kädet pystyyn. EI NÄIN. Heinäkuussa vastaavan illan jälkeen mainitsin uusimpien Windows-versioiden olevan tolkullisempia kuin 9x-sarjalaiset. Taisin olla liian optimisti.
En tiedä, usko menee vähitellen ihan lopullisesti näihin Microsoftin tuotteisiin. Olisin aivan kypsä siirtymään kokonaan Linuxiin, jos vain saisin sinne käyttämäni Corelin grafiikkaohjelmistopaketin, jonkin Picasaa vastaavan kuva-arkiston ja Nikon Capturen. Ei tarvitsisi edes olla ilmaista, olen kyllä valmis maksamaan hyvästä softasta jonkun verran. Avoin lähdekoodi ja vapaasti levitettävät softat ovat kieltämättä GNU/Linux -maailman jykevä keskisalko, mutta olisi jo korkea aika vaatia ohjelmistotaloilta Linux-versioita kaikista vähänkin isommista ohjelmistoista. OpenOffice ja Firefox täytävät jo tällä hetekellä suuren osan peruskäyttäjien koti-PC:n käyttötarpeista. Suuren ongelman muodostavat kuitenkin esim. digikameran valmistajien tuottamat ja kameroiden mukana jakelemat ohjekmistot, jotka yleensä toimivat vain Windows-käyttöjärjestelmissä.
Linuxin laajamittainen käyttöönotto saattaisi kyllä merkitä huomattavaa työmäärän vähennystä tuhansille mikrotukihenkilöille. Tällaiselle satunnaiselle asentajalle se olisi kuitenkin suuri helpotus.







