2009-12-09

bada

Samsung kallar bada för ett OS, men det ser mer ut att vara en applikationsmiljö som kan flyttas mellan olika OS. Det finns en massa intressant information på dev-sajten. Jag tittade igenom det de kallar för "tutorials", som snarare påminner om presentationsmaterial. De är ganska roliga, med engelska som är dålig på ett sätt så att det bara blir skojigt. Min favorit: "Can I play with data corruption and other madness?" (Svaret på frågan är nej, man kan inte leka med data-korruption och annan galenskap i bada.)

Det är lite läskigt att de verkar ha tagit starka intryck av Symbian: C++ med tvåfas-konstruktion, inget multipelt arv utom med interface-klasser, inga exceptions, all data minutiöst inkapslad etc. Man slipper visserligen leaves, active objects och 50 sträng-klasser, men den errno-liknande felhanteringen ser inte direkt smidig ut att använda.

UI-delen är väldigt konservativ, ett klassiskt "Button *b = new Button()"-API. Det finns en builder med som kan spara ut komponenter som XML. Exemplet som ges är att man gör sin komponent i buildern och skapar upp en kontroll från XML-en i C++-koden. Verkar lite knöligt, men eventuellt så kan man ladda in en XML-fil för hela UI:t, som med GTK/Glade. Vill man göra coola UI-grejer så finns det en Flash-kontroll och GLES, som överallt annars.

Annars är det mycket stöd för att hantera communities, kontakter, social nätverk, realtidswebben 3.5 etc. All ens interaktion med andra loggas automatiskt, och det finns API:er för att söka i databasen där infon lagras. Det finns även med API:er för att hantera en del special-grejer, som ansiktsigenkänning, haptics, rörelsesensor etc.

Rent allmänt ser det ganska trevligt ut, trots Symbian-vibbarna. Det skulle nog kunna vara ganska trevligt att jobba med. Och med slogans som "The platform with more opportunities" så kan man knappast misslyckas, eller hur?

4 kommentarer:

Twoflower sa...

Jag gillade meningen: "UI-delen är väldigt konservativ, ett klassiskt "Button *b = new Button()"-API." Till och med uttrycket ger lite House of Lords-vibbar.

Olof sa...

"inget multipelt arv utom med interface-klasser"

Jag är kanske Objective C-skadad, men jag tycker det är bra att slippa problem med multipelt arv. Det här med tvåfaskonstruktion var något nytt - det känns också ganska NS-aktigt, fast problematiskt om man är van vid vanlig C++.

Fast jag vet vad Erik T skulle svara på min kommentar: du verkar inte kunna så mycket om programmering.

puterman sa...

Jag kanske borde ta upp min nedlagda C-uppsats om kod-estetik någon gång.

En C++-fanatiker skulle säkert hävda att man inte klarar sig utan multipelt arv, men anledningen är naturligtvis interfaces inte finns som separat entitet i C++. Däremot tror jag att multipelt arv faktiskt är användbart i undantagsfall, typiskt om man vill blanda privat och publikt arv.

Tvåfaskonstruktion är mest ett sätt att rädda slarviga utvecklare från sig själva. Det lokala besväret att skriva konstruktorer som kollar så att allokeringar lyckas slipper man. Det skitar istället ner koden överallt där man skapar objekt.

Anonym sa...

nu tycker jag det är hög tid för ett nytt inlägg på din blogg