Applella kuokkimassa

[Tämä ei suoranaisesti liity blogin otsikkoon, mutta on sen verran nörttiä kamaa, että piilotan sen tänne pilaamasta Pää auki -blogin uskottavuutta.]

Osallistuin Applen kehittäjilleen järjestämään Universal Application Workshoppiin, jossa kerrottiin, kuinka kehittäjien onnistuu saada vanhat PowerPC-suorittimille suunnatut ohjelmansa myös Inteleillä toimiviksi universaaleiksi. Minä tiedän ohjelmistojen kehittämisestä hieman liian vähän, enkä pääasiallisena aiheena olleesta C++:sta senkään vertaa [sanoin olevani coolisti Cocoa-kehittäjä], joten raportti ei ole teknisesti erityisen raskas.

Applen tapahtumiin kannattaa mennä ajoissa. Kuohuviiniä ja mansikoita ei sentään saatu niin kuin aikoinaan Kämpin Peilisalin Apple-tapahtumissa, mutta leivonnaiset olivat maittavia. Myös hedelmävati oli valikoimiltaan runsas. Luin joskus jostain, että MacWorld-messuilla karkkiautomaatteihin vaihdettaisiin Jobsin käskystä suklaapatukat hedelmiin, mutta tämä voi olla legendaa.

Esitystä pitänyt jonkinlainen kehittäjäjohtaja Paul Burford Applen Lontoon-toimistosta oli pätevä esiintyjä, ja näytti Applen taannoin mainoksissaan käyttämältä Smasmouthilta. Hän käytti esityksessään uutta MacBook Prota kaukosäätimineen. Ja lisäksi toista kaukosäädintä, sillä Applen kaukosäätimessä ei ole laserkarttakeppiä…

Rosetta-emulaattoria käsitelleessä osuudessa ei ollut varsinaisesti mitään uutta. Universal-ohjelmista en sen sijaan ollut tiennyt, että ne toimivat kaikilla Mac OS X:n versioilla – eivät vain uusimmalla, myös Intelille tehdyllä, niin kuin voisi luulla. ”Ihan totta, ne toimivat, vaikka Mac OS X 10.0:lla, vaikka kukaan ei tietenkään käytä sitä, kun se on ihan hirveä”, hän nauratti yleisöään [mitä, ei naurata vai?]. Kuulemma yli 90% macisteistä käyttää nykyään Mac OS X 10.3:a tai uudempaa.

Burford selitti, että koska Mac OS X:n edeltäjä, NeXTSTEP, aikoinaan toimi neljällä eri tyyppisellä suorittimella, universaalius – tai fat-binary, kuten sitä silloin kutsuttiin – kehitettiin jo kauan sitten ja säilytettiin Mac OS X:ssä pahan päivän varalle. Vaikka varsinainen ohjelma joudutaankin sisällyttämään mukaan kahtena eri käännöksenä, universaaliohjelmat eivät Applen kokemuksien mukaan ole kuin 10-20% tavallisia kookkaampia, sillä valtaosa tiedostokoosta kuluu kuviin ja muihin vastaaviin resursseihin.

Kirjoitin muistiinpanojani koneellani, kuten aina. Tällä kertaa tosin sokkona näyttö täysin pimeänä, sillä akkuni oli lopuillaan. Yllätyksekseni kaikki muut käyttivät kynää ja paperia. Noin nelikymmenpäisen yleisön keski-ikä oli myös korkeampi kuin olisin olettanut: varmaan hyvinkin päälle kolmenkymmenen. Mukana oli yksi nainen, mutta jakkupukunsa istuvuudesta päätellen hän saattoi olla enemmänkin manageriosastoa.

Karvain pala monelle Carbon-kehittäjälle on siirtyminen pois CodeWarrior-kehitysympäristöstä. Burford selitti, kuinka CW on Motorolan omistama eikä yhtiöllä ole kiinnostusta kehittää ohjelmistoa Intelin suorittimia varten. Jotta ohjelmistoprojektinsa voisi tuoda Applen Xcodeen, se tulee kääntää erityisen tiukalla GCC 4.0 -kääntäjällä, mitä Burford piti siirtymisen suurimpana vaikeutena. Hän mainitsi Applen kehittäneen Xcodeen automaattisen import-toiminnon, mutta neuvoi välttämään sen käyttöä, sillä lopputuloksia saattaa olla vaikeaa ymmärtää. ”Parempi jättää se amerikkalaisten leluksi”, kuittasi.

Burford vaikutti kovi rehelliseltä esityksessään. Hän toisti jatkuvasti, että vasta parivuotias Xcode on vielä raakile eikä moniltakaan osin CodeWarriorin tapaan loppuunsa hiottu. Javasta kysyttäessä hän totesi, että Xcode antaa luoda Java-ohjelmia, mutta Eclipse on parempi vaihtoehto. Toki Xcodestakin löytyy monia hienoja ominaisuuksia, joista merkittävimmäksi hän hehkutti profilointityökalu Sharkia. Hän kertoi esimerkistä, jossa Shark osasi ehdottaa, että taulukko käytäisiin läpi eri järjestyksessä, jolloin aluksi sikin sokin keskusmuistista haettu tieto voitaisiin hakea järjestyksessä. Lopputuloksena haku nopeutui 30-kertaiseksi.

Nykyiset muistit ovat kuulemma monimutkaisen rakenteensa takia yllättävän hitaita tiedon haussa (?). Burford kertoi, että G3-aikakauden muistit ovat tältä osin oleellisesti nykyisiä nopeampia, ja muistista syntyy herkästi pullonkauloja, joita ihmisen on hankala huomata.

Vaikka Sharkin kehittänyttä koodaria oli aluksi katsottu kieroon ja sanottu, että kyllä kunnon kehittäjä hotspottinsa tuntee, työkalu on kuulemma nyttemmin applelaisten lempilapsi. Burford korosti, kuinka Xcodea käytetään nykyään Applen sisällä kaikkialla, mikä osaltaan kiihdyttää sen kehitystä. Hän hauskuutti kertomalla, kuinka Xcode-tiimiläiset yrittävät hipsiä ruokalaan vähän hiljaisempana aikana, jotta saisivat syödä rauhassa. Kehittäjät kun ovat kimpussa jatkuvasti.

Universal-ohjelmien luominen onnistuu sekä PPC- että Intel-koneella, mutta debuggaus pitää tehdä kohdearkkitehtuurin laitteella. Burford mainosti, että Mac mini on kätevä ja halpa ratkaisu tähän tarpeeseen. Homma toimii myös etänä Remote Debuggingin avulla.

Eri tyyppisiä prosessoreja esitelleen kuvan yhteydessä joku kysyi, kuinka käy, kun G5 on 64-bittinen eikä Applella ole toistaiseksi käytössä kuin 32-bittisiä Intel-suorittimia. Burford kiisti, että tietäisi mitään, mutta lupasi lyödä suuresta summasta vetoa, että Power Maccien seuraajassa on 64-bittinen suoritin.

Naapurihuoneessa oli pienimuotoinen laboratorio, jossa pääsi testaamaan ohjelmiaan Intel-koneilla. Paikalla oli kahdeksan MacBook Prota sekä iMac ja Mac mini – tai puolet Euroopan Intel-Maceistä, niin kuin Burford heitti.

En kehdannut hirveästi mennä leikkimään, kun osa väestä oli liikkeellä ihan vakavissaan, mutta pikaisesti voisi mainita, että MacBook Pro tuntui sietämättömän nopealta. Hieman kuin iMac aikoinaan Mac OS 8.5:llä.

Vastaa

Täytä tietosi alle tai klikkaa kuvaketta kirjautuaksesi sisään:

WordPress.com-logo

Olet kommentoimassa WordPress.com -tilin nimissä. Log Out / Muuta )

Twitter-kuva

Olet kommentoimassa Twitter -tilin nimissä. Log Out / Muuta )

Facebook-kuva

Olet kommentoimassa Facebook -tilin nimissä. Log Out / Muuta )

Google+ photo

Olet kommentoimassa Google+ -tilin nimissä. Log Out / Muuta )

Muodostetaan yhteyttä palveluun %s