Showing posts with label Linux. Show all posts
Showing posts with label Linux. Show all posts

Tuesday, July 1, 2008

Collection of great materials on Symbian going open-source

My regular readers may wonder why I've been silent on the great news of the mobile industry: Symbian is going open-source. The reason is simple: I was so shocked to hear it in the news that I just sat back watching the flood of new blogs and comments trying to digest this new information. But I've been digesting it, too. Other people whom I respect and think knowledgeable in this area have written their opinion and I'm now about to collect some of them in a blog and share it with you.

Andreas Constantinou from Vision Mobile was one of the fastests in commenting the news. He concluded that it was a logical move from Nokia (and Symbian, etc.) both from technical and business point of view:

    • " ... [Symbian] was crippled without control of the UI, application stack and the core OS under the same entity"
    • Eclipse (EPL) license is a weak one, which will make it desirable for OEMs to choose it.
He was also the first to point out that this move would cause lay-offs and some hard times for the following industry players:
    • SonyEricsson and Motorola: they will eventually have to give up with UIQ, since S60 will be the dominant UI and ecosystem and S60 will basically swallow both UIQ and MOAP(S).
    • Android's royalty-free, open source business model is not the only compelling alternative for OEMs, operators, etc. On the contrary, Symbian has already proved whereas Android has not yet.
Simon Judge over at Mobile Phone Development comments that " ... full access to the platform code allows for much more innovative applications using facilities that are currently hidden" and all this "only" for $1.500 is definitely a step forward.
He also cleverly notes that "Nokia and Symbian now see licensing the OS as a dead end" - I wonder what Microsoft will comment on it?
Finally, he raises his concerns on a technical question, backward compatibility: "... [the announcement] doesn’t explain whether this is source code, binary or application compatibility" - we wouldn't like to face with such a big break as what we did with the introduction of Platform Security, would we?

Mobile Opportunity's Michael Mace hails Nokia for their courage. He suspects, though, that "... the announcement is actually half cleanup and half power move: ... The power move is that it challenges Android ... The cleanup is that the ownership situation of Symbian was unstable and had to be changed eventually, and SonyEricsson clearly wanted to get out of the UIQ business".
He also asks what will drive Symbian developers after this change? While he believes that developers "respond to user excitement and the chance to make lots of money", he fails to see how the new Symbian strategy drives either one.
Finally, Michael points out that the longer it will take for Symbian Foundation to kick off, the bigger the advantage for Apple and Android. What about Microsoft? "This is Microsoft's ultimate open source nightmare, becoming real.

Rafe Blanford from AllAboutSymbian has written about Symbian Foundation unwrapped. He says that the tranformation of Symbian OS to a royalty-free, open-source system is according to today's industry philosophy and whilst it's a logical move forward it would not have been possible 10 years ago, since "...companies would have been unwilling to let Nokia or anyone else have such a dominant position". The new Symbian OS will challenge LiMo, Android and the likes on their own strength and "negates their key advantage". Apple's iPhone might be not affected, according to Rafe, since "it is difficult to see how Apple will expand to become a significant overall player in mobile space (rather than an individual niche player with lots of press attention)".

The hypothetical ("10 years old") problem Rafe was referring to is supported by The Register, too. They say, "the most damaging problem is that Symbian's licensees may have no desire to make Nokia stronger now that it owns the operation 100 per cent".
They also worry about that "the 'Foundation' may also prove to be an expensive liability for Nokia".
Finally they write that "it's largely Nokia that must be blamed for failing to make Symbian phones remotely 'enchanting' ..." and "... today it's the iPhone which has the enchantment factor. ... Symbian has done everything its original designers asked of it - a twenty year lifespan is not bad at all. But it's now Apple's business to lose."

Apple and world dominance. What about Microsoft? They're still bigger than Apple at least in terms of mobile OS market share, aren't they? Well, we've already got used to the style Microsoft comments similar announcements, thus it must not have come as a surprise that they have welcomed this move. To be more accurate, they have "welcomed the transformation of the Symbian mobile-phone platform into an open source project, because the software giant contends the change will create a host of new problems for the Symbian community." Sweet, isn't it? They use FUD referring mainly to the big 'F', fragmentation, saying that "there are more Linux consortiums that come and go than there are Linux phones".

Which might be true, actually. But don't lump Symbian and mobile Linux together. David Wood, EVP of Research at Symbian, has written a lengthy article about how he (and Symbian) sees this problem. He argues that 1: fragmentation really is a problem, 2: Symbian has the experience and ability to handle it. As opposed to Google, for example, says the side-note. :)

Finally, it's worth paying attention to Ajit Jaokar's article, who warns that "it is not possible to compare Symbian vs. Android; or Symbian vs. iPhone .. because it is not possible to mix operating systems with ecosystems". These are like "apples and oranges" in terms of "iPhone, Ovi and Android are ecosystems. In contrast, Symbian and Limo are operating systems or Operating system consortia". It's another lengthy article that is worth reading.

So I've been silent and haven't commented this news yet. Why? Because there are so many people to listen to ...

What about you?

Tote

Wednesday, June 18, 2008

Browser as an application platform

I've read the following analysis from ARCchart with great interest. I'm already familiar with the idea of writing applications for mobile browsers and that it can be considered as a real alternative for mobile software development. WidSets and Widgets are all around us, not to mention Flash Lite, Silverlight, two cross-platform solutions used for delivering (multimedia) content to more and more people.

The main point of ARCchart's article was to point out that the whole problem of fragmented mobile development could be solved by developing to a single run-time environment: the browser. The browser, which is today's most widely used applications on desktop and mobile computing devices alike.

What is this fragmentation thing, one could ask? Well, let's have a quick look at various mobile platforms, development environments:

  • It's a known fact that Symbian/C++ opens the door to the wide variety of native features of S60 and UIQ devices, however, it still has a steep learning curve and its programming environment is not too developer-friendly, either, compared to e.g. Java. The vast majority of smartphones are running on Symbian operating system (whether iPhone-fans admit it or not), however, development is often more (cost-)efficient for other platforms. Portability is a serious issue in Symbian.
  • Windows Mobile devices are very popular in North-America, especially among business users. However, its popularity is way behind Symbian phones' anywhere else in the world and don't forget the fact that there are much more consumers than prosumers. On this platform, you can write native applications in Win32/MFC/.Net, however, these applications are rarely portable across other platforms.
  • Java? Hell, it's the king of fragmentation in terms of supported (or rather unsupported) features, so-called JSRs. Even though it was supposed to bring the Paradise to mobile software developers, it's still suffering from severe problems.
  • What else? Linux? Show me some popular Linux-powered phones first and how people are making cross-platform, backward compatible programs for them.
  • iPhone? Mac OS X with its Objective C just increases variation. Even though C++ can also be used for programming and there are, for example, attempts to port JME programs to Obj-C, as I said: it just increases variation, which is the nightmare of programers.
  • Android? Although the whole system is based on mobile Linux, the primary development language will be Java. But which Java? Google's own. And although it's said to be a solid foundation for Google OHA members, it's still only a recommendation for them to choose whether various features will be supported in their devices or not. You can imagine how it affects fragmentation in the Java world - it will just make it even more complex.
Now how does a browser come into play? I'm sure that most readers of this blog have already heard of WebKit, an open source browser engine enabling mobile browsers to show and handle full-web content. It is used in Mac OS X's Safari (iPhone browser), Nokia's S60 browser, the built-in browser of Google's Android will also be WebKit-based, not to mention Digia's @Web, a recently announced port of WebKit for UIQ phones. Although there are other good browsers, too, such as Opera Mobile and IE in Windows Mobile, WebKit seems to be becoming the de facto standard in mobile devices (which is not necessarily a bad thing). It's also worth mentioning Opera Mini and TeaShark at this point, two Java-based browsers, both using remote back-end servers for pre-processing full-web content and showing only the digested content formatted for resource-constrained devices. Side-note: it's also WebKit that is running on TeaShark's back-end servers. :)

So is ARCchart right or not? Is the browser the ultimate solution for mobile software development? In my opinion yes and no. They're right that mobile browsers and complementing technologies (such as Flash Lite) are becoming more and more powerful, capable of rendering extremely complex web pages, performing surprisingly smart functions, letting the user interact with active content, exchanging data with remote servers, etc. However, whilst "older" web technologies (e.g. JavaScript) are not powerful enough to compete with the power of real programming languages, newer ones (e.g. Flash Lite) have not been widely adopted yet. For example, for a quick and very brief reference as to what the different versions of Flash Lite can and cannot do, visit this link. And even though there's not too much variation here yet, there will be: newer versions of Flash Lite will require developers to keep track of which mobile phone supports which version, how to distinguish between Silverlight and Flash Lite applications, etc. I'm afraid it won't be any different in the end.

In my opinion, web-based technologies will open up new alternatives (they've already done so, actually) for mobile software: not necessarily too complex ones, but at least enjoyable. And this is exactly what most people are looking for: they'd like to enjoy using these programs. These new kind of programs that complete the whole picture, add to it, but will NOT replace yet older but still powerful technologies.

Can hardly wait for your comments,

Tote

Wednesday, May 21, 2008

Nokia stirs water with mobile Linux

It seems it's time for another round to discuss about whether Nokia will abandon Symbian OS in favour of (mobile) Linux. All About Symbian has reported that "Nokia's Chief Financial Officer said Nokia is considering manufacturing Linux-based mobile phones". This information is confirmed by Unwired View as well, although in a slightly different tone: they say "Nokia sees increasing role of Linux in handsets". Finally, El Reg is saying that "Nokia says no plan to switch phones to Linux".

Who to believe? Having read the comments carefully, people seems to have the following opinions/see the following options:

  • The biggest haters of Symbian say that it's natural that Linux will take over and this is exactly what they've always claimed.
  • According to a bit more careful opinion, these two mobile operating systems will co-exist. There are couple of arguments for this scenario:
    • Symbian/S60 is undoubtedly the leader in smartphone market
    • There's room for both OSes: Symbian excels in high-performance mobile phones, whereas Linux could be successful in mid-range feature phones.
    • Nokia has already heavily invested in the development of a mobile OS and is a nearly 50% shareholder of Symbian these days - why would they ruin all this?
    • The development of a smartphone running on Linux still takes a LOT of time.
  • Some more paranoid commenters say that "Linux is not really a threat for Symbian, but rather a motivation" to work & perform even better in today's extremely competing environment (i.e. mobile OSes and smartphone market). They believe that Nokia wants to make pressure on Symbian by announcing new Linux-powered devices from time to time.
  • Finally, there are those who don't give a sh.t to what OS is running on a phone, they "just" want their Flash/Python/Java/etc. applications (whether they wrote them or not) to run smoothly in the future, too. Some of these people also mention that it's the same if the OS gets replaced, the UI (i.e. S60) is what's important - and if it remains, nothing will change actually.

Personally, I think that Nokia is still making experiments with Linux. Don't forget that they already have mobile Linux devices (Internet tablets running on Maemo platform), though, those are not mobile phones, just sort of PDAs. In today's fragmented mobile Linux market, no one mobile manufacturers dare to commit themselves to take Linux as the leading operating system for their products - it would simply be way too risky. It's been also said numerous times that there are lots of factors that manufacturers must consider when selecting a mobile OS and Linux is definitely NOT the ultimate solution today. Nokia might abandon Symbian in the future, however, it's not time for that. Yet.

Any thoughts?

Tote

Thursday, May 8, 2008

Mobile software development - Functional testing

Simon Judge's blog made me think, again. He wrote about Mob4Hire, a company offering people for mobile application testing. Testers get paid via PayPal after bidding on projects (i.e. mobile applications/solutions) and developers get testers at a (hopefully) reasonable price. Finding testers might be especially useful if your geographic area is not the one you'd like your software to be tested in.

You know, lots of developers (dare to say: most?) do not recognize the importance of testing. This is the least pleasant part of development, I must admit, yet one of the most important. There are various kinds of testing including (but not limited to) unit-, regression, load, "smoke", etc. testing. The one, Mob4Hire provides solution to is called functional testing, where one can test the whole solution end-to-end. You know, mobile handsets are very-very fragmented in terms of platforms: applications can be developed in many programming languages like Java, Symbian C++, Windows Mobile Win32/C#, iPhone Obj-C, Linux C/C++, etc. And even when sticking to the same platform and programming environment, JME for example, the supported features vary very much from device to device. This, along with the complexity of what operators allow 3rd-party programs to do, makes it very difficult for a new application to be thoroughly tested.

Nokia already provides a free service for developers wishing to test their mobile applications written for Nokia S60 platform: it's called Nokia RDA (short for Remote Device Access). It is an Internet-based solution, where you can remote control a real mobile phone. You can request, for example, that SIM- and/or memory card be inserted in the test device as well as more than one phone be reserved for your test session to test peer-to-peer communications.

DeviceAnywhere provides a similar solution to Nokia RDA, however, it's not limited to a particular platform, nor to only 1-2 network operators. According to their web site, their service is "a revolutionary online service that provides access to hundreds of real handsets, on live worldwide networks, remotely over the Internet". Unfortunately, it is not free of charge.

Note that you cannot test everything with these solutions. For example, applications that use camera, GPS, accelerometer are basically out of question as well as ones using external accessories.

Another option for functional testing is making use of the services of Test Houses. Professional testers verify the quality of your software (compared to Mob4Hire, for example, see Simon's opinion) so that you can be sure you get the most what you paid for. Sometimes it's even required for your application to pass certain tests in order to get certified by some authorities. However, you may need to pay a lot for this service, see the list & pricing of Test Houses that Symbian Signed accepts, for example.

Finally, let's talk about community-driven testing. Once your application is in such a shape that it is ready for external people to play with it, you can ask them to go and use it extensively. You can offer free copies of the software to them, for example, or they may do it just for their own gratification - it's the same. This way of testing works extremely well in solutions based on client-server architecture with a mobile front-end and a server back-end. It's quite common in these scenarios that the mobile-end is just a light-weight client software that can be freely distributed, thus it doesn't cause any inconvenience if software distrubition is not strictly controlled. The point is that you may get lots of people playing with your software, because it's their passion. And passion drives people to do their job well, simply because they enjoy it, they love your program and they'd like it to be even better. I'm really a great supporter of this kind of testing. :)

Can you recommend any other way for performing functional mobile software testing? Please let me (us) know!

Tote