Everything and the Mobile Software Universe…

  • rss
  • Home
  • About

Why Samsung Bada makes sense vs an Android-me-too journey

Thomas Menguy | December 28, 2009

Recently Samsung announced Bada, a new development environment: in a nutshell this is an SDK with a set of C/C++ API associated to an application framework, ported on top of Samsung legacy RTOS, or Linux.
Bada will be deployed in a majority of Samsung touch phones from smartphones to feature phones.
Antony has been quicker than me and posted a nice Bada article at Vision Mobile, depicting why this Samsung move may prove to be a wise one. I mostly agree with him, his arguments are around gross margins, market pressure and differentiation. I’ll try to dig a little more around this differentiation aspects in the Samsung case and why they really seem to innovate in this area, especially versus an Android strategy.

When Bada was announced, I was very negative, my first reactions and comments were harsh: again a me too initiative from Samsung, the OEM with fantastic execution but no clear vision of its services/software strategy, trying all the available OS on the planet and waiting to see if one is successful.
Then I’ve looked back at what they achieved recently and what they’ve announced with Bada.

  • They are now the undisputed number 2 in number of devices sold (not far from 20% of the market in Q2 2009 for ex)
  • The Touchwiz UI 3.0 is on the smartphones AND ALL the other touch phones of the company: difficult to tell who is or is not a smartphone now (I’ve made the experiment at the last CTIA).
  • Release of the Touchwiz UI widget SDK to develop widgets for all the Touchwiz based phones.

What are they trying to do with this TouchWiz UI ?: use the best software platforms (RTOS for cost effectiveness and integration, high level OS for SDKs and features) while trying to uniformize the user experience and consolidate the Samsung brand.

Obviously the next step, to retain its customers, a politically way to say “lock them in”, is to have exclusive applications and services accross the Samsung devices line…even better if the customer has paid for it so he won’t throw away its application investments to buy a competitor phone for its next purchase. Same strategy as Apple, but here we are talking about Samsung a company with dozens if not hundreds of different device models, across all the price ranges, selling more than 200 millions phones a year (yes a year! how many iPhones sold today? :-) , ok margins, blablabla…and yes I have an iPhone).
How to do that? Make a robust application environment, OS agnostic, with a dedicated SDK, to allow deployment of the same binary to a range of devices with different software platforms … well this is exactly the description of Bada.
We (speaking in the name of OpenPlug in this sentence only) have advocated this very same idea for the last 7 years to push OEMs in this direction (Samsung and Nokia were part of the lot :) ), and this is at the end taking of : Nokia with Qt (still has to deliver but the intention is clear) and Samsung with Bada.

But why creating a new one and not simply reuse Android code base?…I’m sure you have the answer already:

  • Android is free? Android is by no extend free: you have to pay a lot of your R&D budget to make a phone with your brand, your services, etc…
  • Android is open, why not getting it? NO Android is a closed box, Google and only Google can really change it, it’s really time for the industry to wake up: it’s not because you have the code of something that you can control it. If you don’t have the roadmap and the team who is maintaining and developing it you simply have meaningless mega bytes of symbols :-)
  • …but this is from Google, the good guys! Sorry, they are not, they are pushing their own services, not yours, and now with the NexusOne their own phone and user experience.

Google/Android has a complete opposite aim versus OEMs own agenda:

  • Android is here to push Google services in the mobile world, as a corollary it allows you to swap your device as easily as possible because the new one will have all your data and applications loaded and compatible from the old one.
  • … wait,wait this is exactly what an OEM doesn’t want: an OEM wants you to buy your next phone from them, not the competitor. So you have to differentiate.

Samsung, like Nokia, simply doesn’t want that an external third party software house decides if its devices has to be like that or like this… to be look alike brothers to its direct competitors (check the Windows Mobile phones for the last 5 years, and you will get the point : all the same).
So why not following their own path? Apple has made the choice and is successful, Nokia is trying, Samsung has to move, and for me it is doing so in a more pragmatic way than Nokia:

  • Bada is not about reinventing a new OS with the underlying plumbing to the hardware as is Nokia Mameo, who cares of that today?
  • The User Experience is already in production and refined device after device
  • Bada SDK is not “fancy” but raw C/C++ … but what the point as long as I can sell and do my applications for hundred of millions of devices and customers (let the fun to the WebOS guys…I’ll get the cash)

Of course Bada is not quite their today, where are the devices? where is the market place? But it is refreshing to see Samsung taking its own path, its own direction…opening even more opportunities to application developers.

Comments
7 Comments »
Categories
Mobile Industry, Uncategorized
Tags
android, Apple, bada, iphone, mobile, Mobile Industry, mobile_phone, nokia, qt, samsung
Comments rss Comments rss
Trackback Trackback

Emerging Countries and Mobile Phones: Kenya case study

Thomas Menguy | April 16, 2007

I get good comments from June on this post about Ultra Low Cost phones, about issues related to text entry for her native Kenyan language (Swahili I assume) : she gave me some great material about the impact and development of the mobile phone uses in Kenya. To write this article I’ve then wandering about the net to get some information about the Kenyan way of cellphoning … surprising.

afrif1.jpg

Mobile Subscriptions Skyrocket: Africa far outpaces the rest of the world in average annual growth of mobile phone subscriptions. According to the International Telecommunication Union, from 1999 through 2004 Africans signed up for cellphones at a far greater rate than Asians and nearly three times as fast as Americans. Most of that growth was in the sub-Saharan region [left].

IEEE Spectrum: Africa Calling

Read the rest of this entry »

Comments
6 Comments »
Categories
Mobile Industry
Tags
africa_calling, kenya, Mobile Industry, mobile_phone, swahili, Uncategorized
Comments rss Comments rss
Trackback Trackback

Performance vs Developper productivity and ease of coding : Why can’t we choose both?

Thomas Menguy | November 18, 2006

This DevX article: Get to Know uSTL: A Lightweight STL for Symbian describing a symbian STL (C++ Standard Template Library, the C++ “toolbox” with lists, vector, string utils, etc.) less crippled that the standard one, really reminded me of this eternal debat.

Recently we have worked on some memory optimization for our product, the part running on the PC. It was using way too much memory compared to what information was effectively loaded.

The data model is XML, and we are creating our objects with SAX parsing of this model… and many things were stored in STL string, and some stream where used….surprise STL string where using 128 bytes preallocating data…so for a 4 bytes string you use …. 128 bytes! stream memory use were growing exponentially!

So we played brut force and quickly reimplemented a class string based on good old char *, and a stream tuned for our use…and guess what: mem usage was divided by 10, and it was really faster.

Conclusion of this story: if you want to go serious, you have to master and well understand all the objects you use heavily: It may sound obvious, but many many time programmers take too many things for granted, especially on the PC world ….you know why Windows is now using way too much RAM :-) …but in the PC camp Moore Law helped a lot to deal with RAM/CPU power explosion…

It is not to say that STL is a bad library (ok, not so intuitive to use, but it is another story), but those kind of services are ok for prototyping, or “normal” application, not for intensive ones. The difference between this two kind of applications is blurry, and coding something faster prevails way too often, heading to crippled apps.

Now look at the mobile phone space, here the Moore Law is not bringing a lot of RAM/CPU, it is “only” bringing down the chipset cost…but the vast majority of mobile phones are still running on CPU with less that 10 MIPS and 256 or 512kB of RAM, BUT feature sets are still growing and growing….

So obviously your applications, services, HAVE to use less RAM and less CPU each time, hum we are really NOT in a PC world.

To achieve that you can:

  1. Continue to code as close as possible to the bar metal (uhm silicium), using low level C code, assembly, few OS services.
  2. Use a Mobile Phone coding framework, taylored for the embedded space (this one is itself made using the previous point mode of programming), with a native programming language (C/C++)
  3. Use a Higher Level OS with a native programming language (C/C++) (Palm, WinCE, Symbian)
  4. Choose an “interpreted framework” like Java or .NET (see the Mono effort in this respect)
  5. Go for scripting. (like OpenLaszlo, Ruby On Rails, Digital Airways, etc)

Of course the more abstract you go the more RAM/CPU you loose, but the more developper productivity you get … if you stick too closely to the PC world mantra. BUT if it doesn’t fit in your target …. it won’t fit , and you loosed a lot more that productivity, you loosed your market.

A high Level OS is simply not a choice: try to fit WinCE in a 10 MIPS machine … it is already not snappy on a 400MHz ARM 926 … (same for Symbian and in less extent Palm)

So things have to be more balanced, and as the zen approach told us “the middle way” may be the solution.

I strongly believe that a mix of very high level services for UI, with a good interconnection with low level services for control, algorithm and modelling part of the application is the way to go:

  1. You let the graphists/designers quickly design your UI
  2. You code the algorithm, controls, threading model, network in C/C++ with low level or very low resource consumming APIs
  3. You let the framework dealing with interactions between applications and resource access sharing.

The last point is crucial, else you end up with a big mess, with unmaintenable and non evolutive code cause all the services will have to know each others, definitively a big mistake. The first one has to be there cause clearly the UI is, in this market, defined in specifications by UI specialists, and it can greatly improve the time to market to let them “design to manufacture” with some powerfull tools to create UI, like user friendly RAD, or even better like Flash Lite SDK, or Digital Airways But those high level solutions are not enough cause they lack the second point: the logic of your app have to be done in a scripting language, which is clearly not tuned nor designed to do that: UI and Logic HAS TO BE more clearly separated to use the best tools to do the job.
Java also doesn’t fulfill those needs … SavaJE is not everywhere, no phone with full Java UI…(I won’t go also in the Java mess around standardization, check this techtype entry about internationalization ): It is not good for UI (only a programmer can do a UI), and so so for application core (CPU and RAM, plus missing APIs).

For sure, as said at TomSoft we need Mobile Developement Simplification(and yes widget standardization can help), but the traditional vision of “one model” fits all seems clearly not relevant for our industry, and more innovative frameworks have to emerge to trully allow the explosion we are all waiting around mobile services (see this entry about skype failure to deliver…).

What do you think?

Update: Taken from the Adobe Flash Lite 2.1, here are some RAM/CPU for flash …

Adoble Flash Lite 2.1 CPU and RAM figures
Ok, we are far from the “Ultra Low Cost”/”Low Cost” segment but not by a 10 factor (except for CPU), so suing only some part of flash for a phone UI is not out of question ….

Update 2: Good read at “C. Enrique Ortiz Mobility Weblog” about the C language, and why it is still, and will stay, usefull. Anyway for me C++ is also a “low level” language as it is compiled and you are dealing yourself with pointers …

Comments
2 Comments »
Categories
Mobile Industry, Software
Tags
application_framework, memory_optimization, mobile, Mobile Industry, mobile_phone, moore_law, Software, stl, symbian
Comments rss Comments rss
Trackback Trackback

What I’ve enjoyed reading

Recent Posts

  • You will be disappointed by your Android Market application sales…think twice before jumping on the little robot
  • Why Adobe should change its mobile strategy (again)
  • No Qt for S40, Maemo and Symbian apps won’t be compatible: is Nokia really willing to unify development for OVI Appstore?
  • Why Samsung Bada makes sense vs an Android-me-too journey
  • Flex on Mobile: What’s coming in ELIPS Studio…iPhone insights (and android teasing :) )

Meta

  • Log in
  • Entries RSS
  • Comments RSS
  • WordPress.org
rss Comments rss valid xhtml 1.1 design by jide powered by Wordpress get firefox