[ Siirry blogin etusivulle ]

perjantai, helmikuu 09, 2007

Onko Symbian softakehittäjän painajainen?

Kenneth Falck avautuu blogissaan siitä, mikä Symbianissa mättää. Hän linkittää artikkeliin, josta en tajunnut puoliakaan. Kennu työskentelee SWelcomissa R&D-nörttinä ja on osallistunut moniin mediakonsernin kehityshankkeisiin.

Minä en osaa koodata tai tunne muutenkaan ohjelmistokehitystä, mutta parissa mobiiliprojektissa olen ollut mukana. Molemman jälkeen kaikki projektiin osallistuneet ovat olleet sitä mieltä, ettei ainakaan lehtitalon kannata julkaista palveluitaan Java- tai Symbian-sovelluksena, vaan mieluummin tähdätä selaimella käytettäviin palveluihin. Sovelluksen kehittäminen on liian kallista ja tulevien versioiden hallinta hankalaa.

S60-sovelluksissa pahin hetki on ollut S60 2nd Editionin ja 3rd Editionin välissä, kun sovellukset eivät edes teoriassa pysyneet yhteensopivina. Helpottuuko muutosten hallinta jatkossa? S60 3.0 FP1 ja FP2 ovat jo tulossa, eikä kehitys tietysti voikaan pysähtyä paikoilleen.

Monet ovat väläyttäneet, että Nokian pitäisi ainakin yrityslaitteissa ja USA:n markkinoilla vaihtaa Windows Mobileen. Uskotteko, että niin käy lähivuosina?

Tunnisteet: , ,

Kommentit: 21

Blogger oopa kirjoitti:

Ainakin Nokian osuus Symbianista jarruuttaa siirtymistä. 47.9% osuus yhtiöstä on varmasti yksi syys Symbianissa pysymisessä. Tai sitten on tehtävä kokonainen takinkäännös.

09 helmikuu, 2007 17:23  
Anonymous Anonyymi kirjoitti:

"Onko Symbian softakehittäjän painajainen?"

On.

Olen kouluttanut yksityisellä ja julkisella sektorilla Symbian-ohjelmointia vuosia ja täytyy sanoa, että Symbian-ohjelmointi on verrattuna mihin muuhun tahansa ympäristöön käsittämättömän hankala hallita.

Olen kyseisen artikkelin kanssa täysin samaa mieltä, että Symbianin ongelmat piilevät käsittämättömissä teknisissä ratkaisuissa ja eritoten huonossa dokumentaatiossa.

Jos Nokian intresseissä on aidosti se, että kolmannet osapuolet tulevat tekemään sovelluksia S60-laitteilla, on Nokialla yksi vaihtoehto: Symbianin vaihtaminen Linuxiin.

09 helmikuu, 2007 18:07  
Blogger zache_ kirjoitti:

Nokia varmaan pysyy tiukasti Symbianissa, mutta S60 painopiste siirtyy koko ajan kohti low end laitteita. PDA-vekotuspuolelle varmaan tulee ulkopuolelta ostettuja Windows Mobile laitteita USA myyntiä varten. Todellinen siirtymä on linuxiin pikkuhiljaa sitä mukaa kun alusta ja laitteet kypsyvät.

Tai Applen tapaan *BSD:n päälle, jos Nokialla menee hermot GPL lisensointiin. Tuo muutos tuskin on kovin nopea, koska Windows Mobile tai Linux tuskin on riittävän kevyt tämän hetkisiin halpoihin massaluureihin.

Lyhyemmän aikavälin siirtymä puolestaan on webbitauhkaan (xhtml+javascript, flash) ja alustariippumattomiin korkeantason scriptikieliin joita on nopeampi koodata kuin esim j2me:tä. Python tulee mieleen ekana moisista....

09 helmikuu, 2007 18:19  
Anonymous Anonyymi kirjoitti:

Alkuperäisen artikkelin perustelut ovat hieman asiantuntemattomia ja Nokian vastauksesta voi asiaa tarkstella toisesta näkökulmasta.

09 helmikuu, 2007 18:54  
Anonymous Anonyymi kirjoitti:

Olen samaa mieltä kommenttien asiantuntemattomuudesta. Kommentit säikeistyksen rajoittuneisuudesta ovat täyttä potaskaa. On menneet kaverilla käsitteet tuossa sekaisin jos niitä on alun perinkään ymmärretty. Vaikka on Symbianissa korjattavaakin (käyttöliittymäkerrokset kuten S60 ja UIQ sekä työkalut ja yhteensopivuusongelmat), perusteet ovat mielestäni kunnossa.

09 helmikuu, 2007 19:34  
Anonymous Anonyymi kirjoitti:

"Alkuperäisen artikkelin perustelut ovat hieman asiantuntemattomia ja Nokian vastauksesta voi asiaa tarkstella toisesta näkökulmasta."

Minusta iPhonea ja Symbiania ei pidä vertailla lainkaan (tässä vaiheessa). iPhone tullee olemaan suhteellisen suljettu alusta, kun taas Symbian on avoin.

Tämä seikka ei kuitenkaan poista sitä faktaa, että Symbian-ohjelmointi on niin syvältä kuin vain olla ja voi. Tämä johtaa käytännössä siihen, että niin kauan kuin Nokian laitteissa on alustana Symbian, emme tule näkemään kunnollisia kolmannen osapuolen tarjoamia sovelluksia (Verratkaa vaikka Palmin softatarjontaa Symbian tarjontaan..)

Artikkelissa mainitaan seuraavia Symbian-ongelmia:

- Crippled C++ support
- Confusing and limited string handling.
- Limited support for multi-threading
- Bad development environment

Nokia blogin vastine ylläoleviin asioihin oli "I agree with you with regards to most of the technical issues you listed"

Aamen.

Apple on tehnyt suhteellisen onnistuneesti radikaalejakin muutoksia omassa alustassaan (Motorola -> PowerPC, PowerPC->Intel, Mac OS 9 -> Mac OS X). Vaikeaa ymmärtää, miksi Nokialla alustan vaihto voisi olla niin vaikeaa, kun historiassa on (useita) onnistuneita esimerkkejä isoistakin alustamuutoksista.

09 helmikuu, 2007 19:38  
Anonymous Anonyymi kirjoitti:

"Vaikka on Symbianissa korjattavaakin (käyttöliittymäkerrokset kuten S60 ja UIQ sekä työkalut ja yhteensopivuusongelmat), perusteet ovat mielestäni kunnossa."

Miten perusteet ovat kunnossa, jos "Hello World"-Gui sovelluksen tekeminen ja siinä olevan koodin ymmärtäminen vie perusohjelmoijalta 2-3 viikkoa?

Miten perusteet voi olla kunnossa, jos työkalut kaatuilevat satunnaisesti?

Miten perusteet voi olla kunnossa, jos tarjottavassa luokkakirjastosta on unohtunut dokumentaatio?

Miten perusteet voi olla kunnossa, jos tarjolla oleva "emulaattori" onkin kaatuileva simulaattori?

Miten perusteet voi olla kunnossa, jos säikeistyksen ohjelmointi on helpompaa kuin merkkijonojen?

Jos Nokian salaisena agendana on ollut saada mahdollisimman vähän kolmannen puolen sovelluksia alustalleen, niin tässä he ovat kyllä sympparin avulla onnistuneet.

09 helmikuu, 2007 19:48  
Anonymous Anonyymi kirjoitti:

"Miten perusteet ovat kunnossa, jos "Hello World"-Gui sovelluksen tekeminen ja siinä olevan koodin ymmärtäminen vie perusohjelmoijalta 2-3 viikkoa?"

Miten voit olettaa että uuden käyttöjärjestlmän, ohjelmointiparadigman, luokkakirjastot, ohjelmointikäytännöt ja työkalut voi oppia 2-3 viikossa?

"Miten perusteet voi olla kunnossa, jos työkalut kaatuilevat satunnaisesti?"

Totta, niissä on ongelmia. Siksi käytänkin jo kypsää Codewarrioria enkä siirry Carbideen ennen kuin on pakko. Toivottavasti sitten toimii.

"Miten perusteet voi olla kunnossa, jos tarjottavassa luokkakirjastosta on unohtunut dokumentaatio?"

Näin S60:n kanssa. Suurin osa Symbianin tekemää (sekä myös UIQ:n tekemää) dokumentaatiota on kunnossa. Valitettavasi. En ymmärrä miten firmalla jolla rahaa riittää, ei ole varaa korjata tätä epäkohtaa.

"Miten perusteet voi olla kunnossa, jos tarjolla oleva "emulaattori" onkin kaatuileva simulaattori?"

Sama kommentti kuin edelliseen.

"Miten perusteet voi olla kunnossa, jos säikeistyksen ohjelmointi on helpompaa kuin merkkijonojen?"

Menisin itseeni. Deskriptorit eivät ole vaikeita ohjelmoitavia. Jos vaan perusteet ovat kunnossa.

09 helmikuu, 2007 20:43  
Anonymous Anonyymi kirjoitti:

"Menisin itseeni. Deskriptorit eivät ole vaikeita ohjelmoitavia."

Jep, varsin kattava katsaus descriptoreihin meriselityksineen löytyy tästä loistavasta Descriptor FAQ:sta.

http://descriptors.blogspot.com/

09 helmikuu, 2007 20:59  
Anonymous Anonyymi kirjoitti:

"Miten voit olettaa että uuden käyttöjärjestlmän, ohjelmointiparadigman,
luokkakirjastot, ohjelmointikäytännöt ja työkalut voi oppia 2-3 viikossa?"

Kuka tahansa C++:ssa tai Javaa osaava ottaa Midlet-ohjelmoinnin
perusteet haltuun päivässä. Samaa ei voi kaiketi sanoa Symbianista. Tottakai
Symbian on on ihan eri pelikentässä Midlet-ohjelmoinnin kanssa, mutta
kai jossain on jotain mätää, jos tältä planeetalta ei
löydy kuin "kaksi henkilöä", jotka osaavat tehdä S60 Hello World GUI
sovelluksen puhtaalta pöydältä ilman templatea ja ilman valmiiksi
tarjottua IDEä.

Useassa eri alustassa pitkälle pärjätään jo ihan perustekstieditorin
ja kääntäjän kanssa. Jos Symbian - ohjelmointia vaikkapa yrittää lähteä
vääntämään Linux - alustalla käyttäen Emacsia, voi sanoa, että pelkän käyttöympäristön
laittaminen kuntoon ei ole mikään muutaman tunnin homma.

Puhuttamakaan siitä, että jos lähdetään kirjoittamaan koodia puhtaalta
pöydältä. Maemo.orgista
löytyy esimerkki maemolle tehdystä "Hello World"
applikaatiosta. Vertaapa tuota koodimäärää ja rakennusprosessia
s60:sen vastaavaan. Ollaan aivan eri planeetalla.

"Totta, niissä on ongelmia. Siksi käytänkin jo kypsää Codewarrioria enkä siirry
Carbideen ennen kuin on pakko. Toivottavasti sitten toimii."

"Näin S60:n kanssa. Suurin osa Symbianin tekemää (sekä myös UIQ:n tekemää)
dokumentaatiota on kunnossa. Valitettavasi. En ymmärrä miten firmalla jolla
rahaa riittää, ei ole varaa korjata tätä epäkohtaa."

Minun kokemukseni on nimenomaan S60:ssä ja kritiikkini kohdistuukin Nokian S60:seen. Pitäisi luonnollisesti puhuta tällöin s60:stä, eikä
Symbianista.

"Menisin itseeni. Deskriptorit eivät ole vaikeita ohjelmoitavia. Jos vaan perusteet ovat kunnossa."

Mitkä perusteet?

"Jep, varsin kattava katsaus descriptoreihin meriselityksineen löytyy tästä >loistavasta Descriptor FAQ:sta.

http://descriptors.blogspot.com/"

Se että merkkijonoista joutuu kirjoittamaan jo tällaisia
tutoriaaleja kertoo jo siitä, että asia on liian vaikea. Minkä ihmeen
takia aivan perusteisiin kuuluvasta asiasta kuten
*merkkijonoista* saadaan väännettyä 5-7 luokkaa(?) (Joo sitä perustellaan muistinhallinta syistä, mutta kuinkas paljon mobiililaitteissa on muisti lisääntynyt sitten epoc-aikojen?)

Sen jälkeen sitten
pitää kirjoitella pitkiä tutoriaaleja jossa yritetään selvittää
näiden eroja ja niiden käyttöä. Missä muussa järjestelmässä merkkijonojen
käsittely on tehty näin hankalaksi?

09 helmikuu, 2007 21:56  
Anonymous Anonyymi kirjoitti:

"löytyy esimerkki maemolle tehdystä "Hello World"
applikaatiosta. Vertaapa tuota koodimäärää ja rakennusprosessia
s60:sen vastaavaan. Ollaan aivan eri planeetalla."

No GTK+ on kyllä melkoista kakkaa C++ immeisen näkokulmasta, vaikka tuossa hello world:ssä helpolta näyttääkin. C - koodia joka yrittää olla hämärästi oliomaista ja se boiler plate koodi mitä tuollakin kirjastolla saat kirjoittaa on melkoisen huimaa. Isommissa ohjelmissa hemmetin hankalaa seurattavaa ilman melkoista "learning curvea". Aika monta tutoriaalia saa siinäkin ympäristössä lukea ennenkuin UI layout näyttää järkevältä ja eventit rupeavat kulkemaan mitenkään järkevästi.

"(Joo sitä perustellaan muistinhallinta syistä, mutta kuinkas paljon mobiililaitteissa on muisti lisääntynyt sitten epoc-aikojen?)"

Ah, et siis selkeästi lukenut tuota FAQ:a :-).

"Jos Symbian - ohjelmointia vaikkapa yrittää lähteä
vääntämään Linux - alustalla käyttäen Emacsia, voi sanoa, että pelkän käyttöympäristön
laittaminen kuntoon ei ole mikään muutaman tunnin homma. "

Ummm... miksi väen vängällä käyttää Linux:a kun työkalutuki on vain Windows:lle. Onnistuuko esim. Maemo ohjelmointi Windows alustalla ilman muutaman tunnin säätämistä vai onnistuuko ollenkaan?

Jokaisessa platformissa on omat v-mäisyytensä. Näin on tasan tarkkaan sekä Linux pohjaisissa embedded kikkareissa, kuin Symbian mollukoissa ja WinMo pallukoissa.

Itse olen tehnyt hommia kahdella ensiksi mainitulla ja päätä saa lyödä seinään ihan vuorotahtiin. WinMossa on myös omat outoudensa:
http://developers.slashdot.org/comments.pl?sid=220668&cid=17892938

09 helmikuu, 2007 22:31  
Anonymous Anonyymi kirjoitti:

Jaa. Symbian ohjelmistoja usein osaavat parhaimmiten
ne tahot, jotka sitä "eniten morkkaavat".

Nääs, nämä asioista perillä olevat tahot osaavat asiat, kielellä kuin kielellä, ympäristössä kuin
ympäristössä, ja tahtovatkin pudottaa pelistä pois ne, joilla on lyhyt pinna opetella vähäisten resurssien
laitteiden ohjelmistomaailmaa.

Tein itse aikoinaan J2ME:llä ja Symbian C++:lla samat asiat toteuttavan ohjelman,
ja yllätys, Symbian C++:lla ohjelmisto tuli tehtyä lyhyemmässä ajassa ja vähemmällä koodirivien määrällä kuin J2ME vastaava. Tässä ohjelmassa oli säikeitä ja
verkon yli operaatioita muunmuassa ja virheen
hallinta toimi täydellisesti.

Ällistyttävää eiko totta?

Siis, ei kannata vetää hernettä nokkaan vielä 1. opetteluvooden jälkeen Symbian C++:n kanssa,
eikä täten antaa etumatkaa niille kehittäjille,
jotka jo tietävät kuinka Symbian C++ maailma toimii.

09 helmikuu, 2007 23:29  
Blogger Tero Lehto kirjoitti:

Huomaattehan, että kommenttia kirjoittaessa voi laittaa tuohon Other-kenttään nimimerkin.

Toivoisin, että sitä käytettäisiin. On hankala seurata kommentteja, jos on monta "Anymous"-nimistä kirjoittajaa.

Omalla nimellä ei tarvitse kirjoittaa, nimimerkkihän ei paljasta mitään.

10 helmikuu, 2007 13:06  
Anonymous Jaska kirjoitti:

"yrityslaitteissa ja USA:n markkinoilla vaihtaa Windows Mobileen. Uskotteko, että niin käy lähivuosina?"

Aasian maissa PocketPC puhelimet hyvin esillä, aika vaikea löytää esim. Bangokista Nokian E:sarjan puhelimia, joka puolella myynissä Dopodeja,HTC,HP laitteita!

10 helmikuu, 2007 13:42  
Anonymous Jeppe kirjoitti:

"Ah, et siis selkeästi lukenut tuota FAQ:a :-)."

Tarkoitatko nyt tätä Why use Descriptors kohtaa.. vai kerrotaanko siellä jossain muuallakin motivointia deskriptoreita kohtaan?

Symbian OS Explained (sisältää vaatimattomat 36 sivua merkkijonoista):

"The key point to remember is that they [descriptors] were designed to be very efficient on low memory devices, using the minimum amount of memory necessary to store the string, while describing it fully in terms of its length and layout. There is, neccessarily, some trade-off between efficiency and simplicity of use"

=>

1) C-merkkijonot ovat liian vaarallisia
2) String-luokka olisi vaatinut liikaa resurssia (liikaa muistia)
=> Tehtiin deskriptorit

Eikös tuon FAQin selvitys tässä kohtaa siis ole puutteellinen (vain kohta 1).

10 helmikuu, 2007 16:52  
Anonymous Jeppe kirjoitti:

"Nääs, nämä asioista perillä olevat tahot osaavat asiat, kielellä kuin kielellä, ympäristössä kuin
ympäristössä, ja tahtovatkin pudottaa pelistä pois ne, joilla on lyhyt pinna opetella vähäisten resurssien
laitteiden ohjelmistomaailmaa."

Q: Miksi Symbian-projektit ovat tolkuttoman kalliita ja aikaavieviä?
A: Johtuu siitä, että ympäristö on niin hieno, että sitä ei ihan kaikki osaa käyttää.

10 helmikuu, 2007 17:07  
Anonymous Anonyymiläinen kirjoitti:

Heh... tämä aihe on niin herkkä ja kuuma, että monet kommentoijat eivät uskalla käyttää edes anonyymiä nimimerkkiä.

Ongelmana on se, että Nokian Symbian-junalla on jo paljon massaa ja nopeutta. Toisaalta kun ottaa huomioon, että kaikki Symbian-kännykän omistajat eivät välttämättä edes tiedä (tai eivät ole kiinnostuneet tietämään), että heidän kännykässään on nimenomaan Symbian OS ja koska kaikki (mobiili)sovelluskehittäjätkään eivät ole jaksaneet innostua S:sta, niin vaihto Linuxiin ei välttämättä olisi edes kovin dramaattinen siirto Nokialta.

10 helmikuu, 2007 17:23  
Anonymous Janne kirjoitti:

Tuollainen löytyi: http://www.engadget.com/2007/02/09/press-shot-of-nokias-e90-communicator-emerges/

11 helmikuu, 2007 02:49  
Blogger zache_ kirjoitti:

Tero: Mietin kun näin tämän entryn kysymyksen, että oliko tämä tarkoituksella pistetty perjantai illaksi?

11 helmikuu, 2007 10:50  
Anonymous Symbiatch kirjoitti:

S60-sovelluksissa pahin hetki on ollut S60 2nd Editionin ja 3rd Editionin välissä, kun sovellukset eivät edes teoriassa pysyneet yhteensopivina.

Pitääpi minunkin sitten heittää lusikkani soppaan, vaikka kaikki jo kantani tietävätkin.

2nd->3rd -vaihdoksessa kyllä teoriassa sovellusten yhteensopivuus oli jollain tasolla ok. Itsekin muutaman softan sain melkein heittämällä menemään, ikäviä ongelmia kylläkin löytyi tyyliin "ai nää kaksi kutsua ei toimi näin päin vaan toisin päin kun 2nd edissä toimivat kumminkin päin." Sinänsä tuota epäyhteensopivuutta käytetään joskus myös tekosyynä, monet softat saisi kyllä aika helposti siirrettyä mutta kiinnostusta ei taida olla.

Pitää myös seurata käykö pian niin, että toteutetaan softia vain 3rd edille ja unohdetaan vanhat kokonaan. Taloudellisesti voi joskus olla moinen kannattavaa kun laitekanta uudistuu, mutta tällä hetkellä ei varmastikaan vielä.

Silti vieläkin jaksan mainita että Win32APIlla on voinut tehdä softan niin PC:lle kuin mobiililaitteellekin jo ~13 vuotta sitten ja samat rajapinnat toimivat vieläkin. Siinä on jo saavutus.

Kun kerran Symbian 9 rikkoi yhteensopivuutta, olisivat sitten menneet suoraan kunnolla eteenpäin. TRAPit pois ja normaalit poikkeukset kehiin, rajapintoja järkevöittämään jne. Mutta ei haluttu mennä niin pitkälle ettei väki ihan raivostuisi, tai jotain.

Mutta onneksi nyt on Open C SDK, sillä kaikki porttaamaan softaa S60-alustalle! Surku vaan että suoraan porttautuvista softista suurin osa on sellaisia joita ei kännykässä edes tarvitse ajaa. Käyttöliittymät kun pitää joka tapauksessa tehdä uusiksi.

12 helmikuu, 2007 17:01  
Blogger Miikka kirjoitti:

Jos siirtymistä harkittaisi niin ehdottomasti avoimen koodin puolelle kuin johkin suljettuun Windows-pohjaiseen sotkuun. Avoin ohjelmakoodi on tulevaisuus ja vakaus. Tämän huomasi mm. Applekin siirtyessään Darwiniin, joka on BSD-lisenssin alla. Ja softakehitys tietenkin myös olisi paljon helpompaa, koska koodaajat pystyisivät selkeästi saada selville miten käyttis luurissa pyörii.

14 maaliskuu, 2007 19:31  

Lähetä kommentti

<< Etusivulle