Slashdot Mirror


Symbian Introduces Open Source Release Plan

volume4 brings news that David Wood of the Symbian Foundation has made a post detailing their plans for a release schedule, with new versions due out every six months. We discussed Nokia's acquisition of Symbian for the purpose of open sourcing the popular mobile OS last year. Quoting: "There's a lot of activity underway, throughout the software development teams for all the different packages that make up the Symbian Platform. These packages are finding their way into platform releases. The plan is that there will be two platform releases each year. ... Symbian^2, which is based on S60 5.1, reaches a functionally complete state at the middle of this year, and should be hardened by the end of the year. This means that the first devices based on Symbian^2 could be reaching the market any time around the end of this year — depending on the integration plans, the level of customisation, and the design choices made by manufacturers. Symbian^3 follows on six months later — reaching a functionally complete state at the end of this year, and should be hardened by the middle of 2010."

18 of 92 comments (clear)

  1. Big news for Symbian developers! by BadAnalogyGuy · · Score: 5, Insightful

    int CoolNews(HBufC aNews)
      {
    // TODO: Source code won't help you
    // learn how to use these freaking
    // Symbian buffer types...
      return static_cast<TBoolC>(1);
      }

    1. Re:Big news for Symbian developers! by dwater · · Score: 4, Informative

      > Not only that, but there are many different versions (V9, V9.1, S60 3rd Ed, S60 FP1, S60 FP2, 9.4, 9.5 and that's just the recent ones) and they are mostly binary and source incompatible.

      That's balony. I (helped) develop an S60 application, and the differences were significant between S60 2nd and 3rd editions (there was a big OS-break then - akin to OS9/OSX), but otherwise there were very few OS version specific changes needed to the source. The main things I remember were that the 2nd edition phones and the first few of the 3rd edition phones had a WAP browser; and the newer ones have the webkit ones (yes, before the iPhone). The other difference that came to mind was that S60 3rd edition came with an OpenGL driver, while for 2nd edition, we had to package one with our app.

      Actually, our code base was common for both S60 2nd edition and S60 3rd edition...the differences there were for SDK differences (like having to get things signed/etc/etc).

      In the end, we had just two versions for users to install - one for 2nd edition, and one for 3rd edition. From the user's point of view, it didn't matter which of the 2nd edition or 3rd edition phones they had...and a web/wap page could easily tell from the user-agent which one to provide for the user to install.

      Really, not rocket science at all.

      Calling them 'mostly binary and source incompatible' is just rubbish and plainly FUD.

      Also, what's wrong with having different versions? Even something like the iPhone OS has two (soon to be three) versions. It's mostly a symptom of having a successful platform and many different target phones. Perhaps when there are many different iPhones and Android phones, then they will have the same issues.

      Yes, the development platform is not so much fun to use, but that's a different thing to the target OSes being different. I even got the SDK working on Linux the other day and plan to do some applications in my spare time, in the hope that I can sell stuff on the soon-to-open Ovi Store. It seems like the SDKs will even work on OSX for all you Apple guys. Personally, I find it kind of refreshing to actually understand what's going on, instead of have a GUI 'protect' me from it all.

      I think the Ovi Store could well be very significant. The prospect of having access to such a large user base has to turn some heads, surely. It *is* huge, especially if they can enable it on existing phones too. I guess they could do that by using the Download! application somehow - the Download! application is what might be called the 'app store' that's been around for many years (yes, way before iPhone even was a twinkle in any Jobs' eye) on S60 phones - since it's already on probably well over a hundred million phones already.

      We'll see, I guess.

      --
      Max.
    2. Re:Big news for Symbian developers! by ElGuapoGolf · · Score: 5, Interesting

      The Download application has been around for years, and it's been redefining the word suck for years. If you enjoy waiting 10 minutes to see the same 10 applications displayed every day, the Download! application is for you. To even mention it in the same breath as Apple's App Store is delusional. And as a Symbian coder, I'll agree with the parents above... the platform sucks to code for. It's a totally non-standard (no exceptions, what?) platform that makes you account for design decisions/tradeoffs which were made over 10 years ago and should be a non-issue today. When they did the big binary break and added Symbian Signed they could have addressed a lot of this, but they chose not to. And don't get me started on Symbian Signed. Pay to have your app tested, pay to have it signed. Pay more to have your app tested if you start going deeper into the phone. Pay to have your app re-tested if you fail the test for somewhat arbitrary reasons (just check on Forum nokia to see some test rejection horror stories). Pay Nokia for the privilege of helping to grow their platform. Is it any wonder that while the total smartphone marketplace has been growing, Symbian marketshare has shrunk for 2 years running?

    3. Re:Big news for Symbian developers! by dwater · · Score: 2, Informative

      Note that most people here are talking about Symbian C++, which is the way it is because it came into being when C++ was very new and didn't regular C++ had various features is has now. If you spend the time to learn (eg training) how it solves the various problems inherent in early C++, then it is quite easy to appreciate it - in my opinion anyway. The problem is that it's similar to regular C++ in many ways, which makes the differences very annoying and sometimes surprising.

      Also note, you can develop on S60 using many different languages - Open C, Open C++, Python, Java, various web languages, and those are just the ones that come to mind. So, you don't even have to suffer Symbian C++, if you don't want to. I've no experience of those though.

      I guess Qt for S60 will be available in due course. That's a platform/toolkit people usually think well of...even on slashdot.

      --
      Max.
  2. Android by rufus+t+firefly · · Score: 3, Insightful

    Sounds like a response to Android, but a little late.

    Other than install base for phones, what advantage does an opensourced Symbian have over Android?

    There were rumors of Android and Symbian merging for a while, but it seems as though Symbian has taken to cheap heckling.

    --
    "He may look like an idiot, and talk like an idiot, but don't let that fool you. He really is an idiot." - Duck Soup
    1. Re:Android by Hurricane78 · · Score: 3, Interesting

      Simple. We talked about, how people like what they are used to, in earlier news.

      Well, I must say, judging the user-interface alone, I liked Symbian. Here in Germany, Nokia phones (with Symbian on them) pretty much dominated the market for a decade. Only recently have the SonyEricsson models taken over.

      I know, that the programming interface of Symbian is a horrible horrible joke, that lets the Microsoft Internet Explorer pale in comparison.
      So open-sourcing might make it possible to re-implement the horrible part, while leaving the user-interface intact, and hopefully also allowing backwards-compatibility.

      We all wanted to program cool stuff for the Symbian platform... until we read about the API quirks. ;)
      So maybe now we can.

      But do we still want? ...With Android and others out there? We will only know, when we see it happen.

      --
      Any sufficiently advanced intelligence is indistinguishable from stupidity.
    2. Re:Android by dwater · · Score: 2, Insightful

      ...and a massive installed base, massive distribution channels, and clearly a huge number of phones planned to run it from several different manufacturers.

      Actually, it might be more appropriate to ask what Android has over Symbian...the only thing I can think of is the development environment, but that's not so clear cut, in my mind at least.

      --
      Max.
    3. Re:Android by TheRaven64 · · Score: 4, Funny

      Totally! Any platform that barely has 70% of the market clearly has no future. Any changes makes are just reactionary measures to deal with a competitor that has almost scraped a massive 1% of the market.

      --
      I am TheRaven on Soylent News
    4. Re:Android by AceJohnny · · Score: 2, Informative

      disc: I work for a company that supports Symbian. In fact, Nokia is our main customer, which is a secret to no one.

      The main advantage of Symbian is that it is a known quantity on the market. Major manufacturers know it and its internals. Nokia (of course), but also Sony Ericsson, LG, Motorola have experience making Symbian phones.

      Symbian is huge. 228 Million cumulative phones by June 2008, on 250 different models. iPhone: 2 models (EDGE and UMTS). Android: 1 model: G1. (I couldn't find precise sales numbers, sadly. Although the iPhone did hit 4 Million by mid-January 2008.)

      Symbian is an established player, and Nokia is keeping it on the edge by open-sourcing it.

      It is certainly not a too-late response to Android, but rather rather trying to cut off its market before it gains too much of a foothold. Though I'd like to trumpet Linux, I doubt it'll really challenge Symbian before 5 years from now. (exercise: count the Android phones on the market since it was announced in Nov 2007. Count the announced Android phones. Do the same for Symbian over the same time frame)

      Another vital point to note is the main motivation with open-source Android and Symbian is not to please the geeks (hah!), but to provide a cheap OS through which Google and Nokia can sell their services. That is their business strategy, and don't forget it.

      --
      Misleading titles? Inflammatory blurbs? Keep in mind that Slashdot is a tabloid.
    5. Re:Android by AuMatar · · Score: 2, Informative

      And it doesn't give you choice of language. My company has an app that runs on Windows Mobile, Symbian, and several proprietary phone OSes. We can't run on Android because there's no C or C++ SDK for it. And we looked into it too, we wanted to do it.

      --
      I still have more fans than freaks. WTF is wrong with you people?
    6. Re:Android by ultrabot · · Score: 2, Interesting

      Symbian does very well in running on small device. It gives the program features to keep their application using small amounts of systems resources and tries to keep them robust.

      Too bad these "features" actually make Symbian heavier than other operating systems. CleanupStack leads to bigger binaries than auto_ptr, you need write of code to do anything related to UI, you need heavyweight client / server architecture for many simple things (lots of context switchs), active objects are much heavier weight (and more error prone) than normal callbacks, ...

      The fact is that Symbian's relative success has been mostly due to financial, rather than technical reasons.

      And it's not like there has been much choice in the mobile space previously. We've had the simple proprietary OS's of every manufacturer, half-assed locked down linux variants of Motorola, MSFT products and Symbian.

      Now we have the new entrants: Maemo, Android, the iPhone's OS. All based on Unix.

      --
      Save your wrists today - switch to Dvorak
    7. Re:Android by chrisd · · Score: 2, Informative
      I'd like to point out that the Kogan phone folks could have adapted the code to the screen size, but it would have taken longer than their product plan would have allowed. So in that case, you are right, but if they had started the screen porting stuff earlier, then they probably could have shipped something like what they put on their website.

      Let me remind you that the structure of the droid licensing is very clear: linux kernel, then apache/bsd all the way up from there (With a dollop of lgpl). You don't need googles permission to ship an android based device. There are some apps (maps comes to mind) that you do need googles permission to ship, but those are closed anyhow.

      Chris

      --
      Co-Editor, Open Sources
      Open Source Program Manager, Google, Inc.
  3. Can I install it on my phone? by Anonymous Coward · · Score: 3, Interesting

    I have a Symbian-based phone made by Nokia. What apparently happens with these is that eventually a new version of Symbian comes out, new phones ship with it, but the people with older phones are stuck with the old Symbian version. New applications will only be written for the latest Symbian version, and thus the older phones become pretty much useless over time - no matter how much potential they have hardware-wise. From what I've understood this is pretty much what happened for example with the move from S60 2nd edition to S60 3rd edition.

    My phone is S60 3rd FP1 (Symbian 9.2), and there already exists S60 3rd FP2 (Symbian 9.3) and S60 5th edition (Symbian 9.4). So I guess my phone will become useless soon.

    Will this Open Sourcing in any way help me with getting a longer lifetime for my phone? Or do I need to keep buying new phones just to get the latest Symbian version?

  4. Symbian development by david.given · · Score: 5, Interesting

    If anyone here's interested in coding for an embedded operating system, I'd strongly recommend running the hell away from Symbian. It's awful.

    Let us gloss over the lousy documentation (in which it's impossible to find anything, and where there are no links between chapters --- so, e.g., you can't follow a superclass chain up through the S60 chapter into the Symbian core chapter). Let us also gloss over the lousy build system (a horrible maze of crappy perl scripts, which, apart from being so hideously slow that our project takes the best part of ten minutes to build even if no source files have changed, doesn't allow you to have two source files in the same project with the same name. Even if they're in different directories). Let us also pass quickly over the debugger, trying not to make eye contact, that's unreliable, will only let you debug one task at a time, and which tends to crash if you do the wrong thing.

    No, let's talk about the language.

    You program for Symbian in C++. Good, you might think. No. This is C++ with all the good bits taken out and replaced by badly designed bits.

    Let's take exceptions. There are no C++ exceptions. What there are instead are Leave codes; a macro-and-longjmp framework that replaces exceptions which allows you to throw an integer value and then catch it further up the call stack. Unfortunately because this is implemented without compiler assistance it doesn't unwind the stack frame, so destructors of locals aren't called! All is not lost, though: there's a complicated and easy-to-get-wrong manual cleanup stack on which you can push stuff that you want the system to free for you in such situations. God help you if you forget to push something, or pop something at the wrong point...

    Let's take strings. There's no standard string class, of course. What there are are an even dozen different classes for storing strings in different ways: on the heap, on the stack, constant strings owned by someone else, etc. There are some superclasses that will allow you to pass references to these things around without having to worry about the implementation.

    Except... it doesn't actually work. The various different string superclasses are incompatible. You can cast a TDes (mutable abstract string) to a TDesC (immutable abstract string). You can't cast a TPtr (mutable pointer to mutable string data) to a TPtrC (mutable pointer to immutable string data). Some of their system functions require you to pass in a reference to a concrete string type, so god help you if want to use a different implementation. You can't use certain implementations in certain contexts. The result is that for some operations you have to allocate a fixed-size buffer on the stack, call a system function to populate it, then copy the buffer into another buffer on the heap, because the buffer-on-heap object is immutable! Despite being resizeable and assignable!

    Things get even worse when you want to store multiple strings. There's a labyrinthine maze of string array classes: arrays of fixed sized strings, arrays of descriptors, arrays of pointers to strings, arrays of pointer strings (which are different)... add this to Symbian's bizarre convention where a data storage class allocates memory in its constructor but does not free it in its destructor (which means the user must manually Close() method on all member variables) and simply figuring out who's responsible for freeing a particular object becomes non-trivial. I once spent three days trying to find out how to store an array of strings without leaking them. I kid you not.

    (To be fair, they have been trying to fix this with OpenC++, a new programming environment based on, like, standards. It doesn't actually work. The interface to Symbian C++ code is patchy and poorly specced which means it's only really useful for running chunks of third-party code in a sandbox --- you still need to write your actual application in Symbian C++.)

    Now lets move on to the OS proper. Like the languag

    1. Re:Symbian development by Anonymous Coward · · Score: 3, Informative

      The good old symbian myths:

      - No c++ exceptions, below the rebuttal:
      http://developer.symbian.com/main/downloads/papers/Exception_Handling_in_Symbian_OS-v1.02.pdf

      - Descriptors: yes, they are weird, but they do make sense:
      http://descriptors.blogspot.com/

      - Standards: Open C, pips (posix compliancy), S60Python. Is hard to build an OS on a language which was not standard when it was being designed.

      - there are more runtimes than symbian c++ (if that is too hard for you):
      http://blogs.forum.nokia.com/blog/hartti-suomelas-forum-nokia-blog/2007/05/17/slides-for-the-s60-runtimes-presentation-on-svsig

      plus: QT for s60 is around the corner and will remove some of the pain for developers.

      http://www.qtsoftware.com/developer/technical-preview-qt-for-s60

      about the debugger: I still don't see the problem with carbide.c++ 2.0 and trk to debug symbian phones. You can also go fancy an use lauterbach or any other ICE that you like. Also you can use the emulator for 90% of app developement, so unless you are making something tied to the HW your target debugging should be a breeze (if you know what you are doing).

      and about android: Please go on an read the code, run a grep for "fixme", then another for "??" and another for "hack". I specially like the TI AT command workarounds in the their telephony RIL reference implementation. This guys have put it together with gum and tape, product quality my ass.

      Yes, they have good ideas, they are not reinventing the wheel and is easier to use (sometimes), but feature wise, production quality wise, android is not just there...yet.

    2. Re:Symbian development by Tellarin · · Score: 2, Interesting

      Sorry for replying to my own post, but I forgot to mention something.

      Nokia also has Maemo, that is a linux based platform. It is only natural that the two somehow "integrate". So maybe this could also be an advantage.

  5. Symbian signed is *the* probelm by S3D · · Score: 2, Informative

    Symbain C++ peculiarities is not a critical issue, they can be adapted to. But Symbian Signed is a real bummer, especially for small/indie developer. Pay for each attempt to sign binary + pay yearly for publisher ID. And self-signed application, not only limited in functionality, but will not be allowed to Nokia Ovi application store.

  6. Hopeless by omb · · Score: 2, Insightful

    You dont even understand what you are telling the world, Symbian should be using GCC targeted for arm, thumb. That way other far more competant people would be worrying about the compiler, and you could cross compile a decent CVS like git or subversion, on the platform.

    Qt would compile

    gdb would work

    You dont begin to get it. All these 'decisions' were driven by the wish to develop a proprietary lock-in product that actually failed in the business sense. Symbian and most other vendors in the embedded space do not have the resources to compete with the FOSS world, neither do Apple. Nokia, and M$ have the money but not the High Level Architects to compete in a pro-active and agile way, they are forever in catch up.

    The common sense analogy is the free market -v- directed economies; the former always win, see the old Soviet Union, not because of idiology but because, in directed economies everyone lies and those at the top do not have the information to compete in an agile way.

    In the free market people try different things and those that work get funded.

    And before politicised people jump in and talk, for example, about GM in the USA, they would have failed long ago without repeated government assistance, all in violation of WTO rules.

    This is one of the reasons the rest of the world will not tolerate the rebuilding of the American economic hegmony and many Professors in MBA programs will have to find gainful employment.