Symbian was the last time a mass-market operating system was designed from scratch [1]. No Unix compatibility, no C API, everything optimized for a particular use case.
Unfortunately the timing was unlucky and the use case assumptions were short-lived. Symbian wanted a native C++ API, but the language in mid-1990s wasn’t great for embedded. So they reinvented everything from strings to exceptions to coroutines, creating a unique and clunky C++ dialect that nobody enjoyed learning and writing and which drifted further away from standard C++ as the language evolved.
And the other side of the coin was that Symbian was designed to squeeze every byte out of devices with 1 MB RAM and intermittent low-bandwidth networking. That’s what a viable smartphone looked like in 1997, but ten years later Apple and Google could just ship desktop operating systems shrunk down to mobile and assume always-on networks. Customers loved the products and Symbian’s efficiency advantages became more of a hindrance because nobody wanted the cheaper Symbian devices that did so much less (by the new smartphone standard).
Around 2008 Nokia acquired Symbian completely and tried to course-correct by ticking every box against Android. Symbian added POSIX and touch screen support and became open source. But there was no clear reason why anyone would pick it over Android at that point.
- -
[1] There’s Google Fuchsia, but it’s not mass-market in the same sense as Symbian which shipped on hundreds of millions of devices and had a real ecosystem of third-party native software.
Y_Y 6 hours ago [-]
> Symbian was the last time a mass-market operating system was designed from scratch
I would have thought HarmonyOS/OpenHarmony met the criteria, though maybe you exclude it because it has an Android compatibility layer.
Symbian wasn't really designed from scratch though. It has its roots in the nineteen eighties. The 32 bit version of Psion's Epoch is what eventually became Symbian and it wasn't until other consortium members gave up that Symbian was taken over by Nokia.
I worked at Nokia Research and Nokia Maps between 2005 and 2012. I witnessed the arrival of the Iphone and Android from the inside. There was a lot of disagreement internally on what the right thing to do was. And part of the company was actually very clued in and trying to do smart things. But Nokia did a lot of things wrong and most of that was just not getting that it was a software company. It had all the wrong reflexes.
The problem with Symbian from day 1 was that at the time it launched, it was already getting clear that embedded Linux was going to be a thing and it was a bit lacking in features relative to that. Between the late nineties and 2005, there were quite many attempts to use Linux on mobile and embedded devices. By the early 2000s it was widely used on things like routers and other devices. And there had been some attempts at building pdas and phones with it. Google bought Android (the company) in 2005; and they launched phones around 2008. 2005 was the year I joined Nokia. Rumors about Apple working on a device were already getting quite concrete around that time (i.e. Nokia execs would have had good intel about what was coming) and over the course of the next few years it became clear that it was going to happen.
Nokia was focusing on flip phones instead. They were really worried about the Motorola Razr. And the Blackberry. They completely missed the point of desktop operating systems being repurposed for mobile. They thought mobile was special and that they owned it. They stubbornly ignored all the internal signals (there were many) that that was wrong. Nokia even launched a Linux based device in 2006 the N770. It was not a phone and that was not an accident. Operators would object. This could not be. So, they crippled it.
Apple and Google both proved them wrong. The Symbian strategy was dead as a doornail before they even launched the first devices (around 2003/2004). Apple proved that operators were weak and could not ignore popular consumer demand. And of course IOS was a specialized version of OSX for mobile. And Google ended up benefiting a lot from Nokia's Linux work. The kernel was essentially the same for Maemo and Android. Google even bought N800s to dual boot them into Android before they had the first Nexus phone ready. The point here is that Nokia had a shipping touch screen based Linux device in 2006. Years before Google or Apple had phones on the market. The only reasons it didn't have a sim card were political. It could have been a phone, easily. The N800 continued the tradition. It even had a webcam and skype. But no sim card. Only the N900 fixed that. But that was way too late and they positioned it as a developer toy. Innovation around this topic was stifled. It was the obvious move. But the Symbian crowd successfully blocked and frustrated that.
By 2008 it was scrambling to undo a lot of really bad decision making around Symbian in the years before that. Which included actually cancelling S90, which is a touch screen version of Symbian that never saw the light of day. That happened around 2005. S60 3.x was the current version when Apple announced the iphone and had no touchscreen support at all. Nokia had to rapidly create a new version with touch screen support. It was a rush job and the first versions completely destroyed Nokia's reputation because it was unstable and unusable (both). The launch device for this was a complete flop. And it took until the early 2000s to stabilize it. And by then the phone reviews were brutal for any Nokia device. Apple was running circles around them. And Android was starting to actually eat into non Symbian (S30, S40) Nokia revenue. Which actually were most of the market. Nokia's entire OS strategy was failing at that point.
It's feature phone market started imploding and this was until then the money maker. They sold hundreds of millions of those. And then we got the whole drama with pissing in your pants to stay warm (Ansi Vanjoki, one of the VPs) and then Stephen Elop getting hired and chucking him (and Symbian, Linux, and all the rest) out. And then Windows Phone of course didn't make it and the MS acquisition happened and MS unceremoniously pulled the plug in 2014. Too little too late.
roryirvine 27 minutes ago [-]
The hobbled N770 with broken BT tethering and a CPU that appears to have been selected primarily to be just a little too underpowered to run a full SIP client. The never-ending uncertainty over the pivot to Meego. The "two bald men fighting over a comb" war between UIQ and Hildon. The cycles of cancellation / un-cancellation / re-cancellation affecting both S80 and S90.
As an outsider, it seemed utterly clear at the time that the Maemo devices should have been the focus... but I realise how difficult a wrench that would have been for those who had sunk so much time and effort into Symbian.
Elop was right about the burning platform, but it was far too late by that stage.
soramimo 2 hours ago [-]
Thanks for sharing this, comments like yours are the reason I come to this site.
rjsw 4 hours ago [-]
The DEC Itsy [1] was from the late 90s and showed what could be done.
I did Symbian programming back in the day. IIRC the Sony-Erricson P800. It was not developer friendly. The memory management model was hard to program and could crash easily. Also did some work with Nokia on the N60. I was working at Orange at that time and we had hired a contractor to integrate push to talk (because for some reasons Orange though push to talk would take off in Europe, lolol). I got a couple of free trips to Tampere to theoretically help Nokia debug this third party push to talk app. I seem to recall Nokia not being too enthused to work with some pushy American hacker who wanted to open a debugger and fix things. I remember that we had some nice reindeer dinners.
Early mobile is littered with dead operating systems. not really that surprising. PalmOS, Symbian, SaveJE, windows mobile, etc. not worth crying over.
aapoalas 6 hours ago [-]
As a Tampere native working with a lot of old Symbian folks, it's good that you remember the dinners :) Hope you liked the city in general, we certainly do!
selfhoster11 6 hours ago [-]
Palm OS is better described as "undead, and slowly reviving itself". There are ongoing efforts to port it to diverse new hardware (a couple of new-parts ARM boards, and the Nintendo DS among other targets), an alive community that preserves old software and writes brand new software, and at least one reimplementation project (Pumpkin OS).
sunshine-o 6 hours ago [-]
Symbian was as far as I know the last mass market open phone platform for developers.
You had Qt, JavaME and a lot of others framework to develop your apps.
The old Skype was working perfectly on those devices, with full integration.
Then Google tricked us into Android because it was Linux and open source, Apple said no more Java the future is the web.
And now my bloated bank app developed in React Native or whatever won't start on Lineage and Graphene because of Play Integrity API. Also I can't access my homebanking in my web browser.
Strangely I also can't find anything as good as the old Skype with the same features.
I am not saying I saw the trap at the time and Nokia and Sun might have turned evil too.
reisse 6 hours ago [-]
> Symbian was as far as I know the last mass market open phone platform for developers.
Have you actually used it or developed anything for Symbian?
It was neither "open" nor "for developers". Some of the sources were available, but unlike Android, you couldn't rebuild the OS from scratch and load onto your device.
You couldn't just build and run your own apps. You had to obtain certificates from phone manufacturer (Nokia) and sign them. Thankfully the security system had so many holes it wasn't a big obstacle.
J2ME was a second-class citizen, only to support a lot of existing J2ME apps from feature phones.
Qt was way too heavy for the devices of that time. Qt apps easily consumed 40-50 MB of 128 MB RAM, while C++ ones that used native APIs could fit in 5-10 MB. But the native API sucked. It was in a bespoke dialect of C++, riddled with a lot of generational legacy. "A lot of other frameworks" you mention were mostly stuff used by some single developer for their own apps, to workaround all the Symbian quirks.
Idk, I don't understand people trying to whitewash Symbian. It didn't die because of someone turning evil, Microsoft acquisitions, whatever. Ultimately it died because it was unacceptably bad for a modern phone OS. Been there, used it, don't want to, good riddance.
MeeGo, though, is an entirely different beast...
sunshine-o 5 hours ago [-]
> Ultimately it died because it was unacceptably bad for a modern phone OS.
We have to remember nothing was "modern" at that time (around 2008)
My phone had a single 369 MHz CPU with 128 MB of RAM. That's about my ESP32 based smart plug.
People were running Windows XP. Linux and open source were still kind of fringe.
The fact I could run Skype perfectly on it and develop app easily using Java was amazing at the time.
Talking about unacceptable, remember the first generations of HTC Android phones? that was really bad.
reisse 3 hours ago [-]
> We have to remember nothing was "modern" at that time (around 2008)
Sorry, your memory is wrong. I've owned Nokia 5800 back then (2009 or 2010, don't remember exactly), and had a chance to compare it side to side with HTC G1 and iPhone 3G. It felt dated. Many apps were not designed with touchscreen in mind, the standard UI was "list with two buttons on the bottom", grandfathered from phones with keyboards. Resistive touchscreen didn't help either.
Then, the mobile hardware was making quantum leaps each year. I don't remember the exact numbers, but it felt every next iPhone or Android phone was twice as fast as the previous generation. And Symbian was stuck on a basically single hardware platform, with a single supported chip and a single weird display resolution (640x360).
Symbian^3 was a step in the right direction (at least they managed to rebuild the kernel for the different chip!), but the legacy was too heavy, and the competitors were moving much faster than Nokia. Like, the last Symbian flagship (Nokia 808) still had that 640x360 resolution on 4 inches. At that time, iPhone had HiDPI displays for two years!
sunshine-o 2 hours ago [-]
Sure, simple misunderstanding we are not talking about the same thing.
I never had those early touchscreen ones. I kept the blackberry format E series ones with a real qwerty keyboard as long as I could.
The last productive phones, after that it was all infinite scrolling touchscreen zombie apocalypse.
raverbashing 8 hours ago [-]
Well yes?
Symbian didn't die for no reason.
Developers mostly described it as a pain to develop to it
ezst 6 hours ago [-]
Let's not fool ourselves into saying that Android development isn't miserable in its own many ways
fsflover 5 hours ago [-]
Indeed, which is why Mobian and PureOS exist.
RobotToaster 7 hours ago [-]
Wasn't a large part of that due to networks wanting a large cut of sales revenue?
actionfromafar 8 hours ago [-]
It's not the good stuff. Symbian is fast and small, but it's difficult to get perfectly stable. As hardware got faster, it got more important that the foundation is rock solid.
inglor_cz 4 hours ago [-]
I programmed apps for Nokia Symbian devices a lot, and it was amazing just how fast the OS was. Not the UI, mind you, Avkon was pretty slow, but the kernel. Lightning fast.
The Active Object model was a bit tricky to learn, but once you knew what you were doing, you had "light threads" (that were not really threads) caring about your network, audio etc. very, very efficiently. I was in awe of efficiency of the kernel.
That said:
* the learning curve was basically El Capitan of all learning curves,
* the IDE called Carbide.c++ (a variant of Eclipse) sucked even more than regular Eclipse,
* on-device debugging was horrible, barely there,
* emulators were limited, a regular developer had no chance to debug many things such as audio or Bluetooth,
* build toolchains were obsolete (imagine using GCC 2.x in 2011, with all its inefficiencies and bugs),
* someone at Nokia decided that compatibility between devices did not matter and the Nokia world was so enormously fragmented (OS + UI) that releasing an application for all Nokias, even for all Nokias of one generation, was horrible, plus test devices were expensive.
Symbian OS kernel would work just fine today. The rest of the ecosystem was rightly abandoned.
fsflover 8 hours ago [-]
Yet Mobian and postmarketOS are thriving for some reason. Why?
akazantsev 8 hours ago [-]
I wouldn't have called "thriving" given the supported devices. Some are very niche, while others are old and outdated.
Symbian wasn’t just early, it dominated. But complexity, fragmentation and slow moves killed it fast once iOS and Android shifted focus to clean developer tools and unified ecosystems. It’s a reminder that early lead means nothing if you can’t keep devs on board.
Unfortunately the timing was unlucky and the use case assumptions were short-lived. Symbian wanted a native C++ API, but the language in mid-1990s wasn’t great for embedded. So they reinvented everything from strings to exceptions to coroutines, creating a unique and clunky C++ dialect that nobody enjoyed learning and writing and which drifted further away from standard C++ as the language evolved.
And the other side of the coin was that Symbian was designed to squeeze every byte out of devices with 1 MB RAM and intermittent low-bandwidth networking. That’s what a viable smartphone looked like in 1997, but ten years later Apple and Google could just ship desktop operating systems shrunk down to mobile and assume always-on networks. Customers loved the products and Symbian’s efficiency advantages became more of a hindrance because nobody wanted the cheaper Symbian devices that did so much less (by the new smartphone standard).
Around 2008 Nokia acquired Symbian completely and tried to course-correct by ticking every box against Android. Symbian added POSIX and touch screen support and became open source. But there was no clear reason why anyone would pick it over Android at that point.
- -
[1] There’s Google Fuchsia, but it’s not mass-market in the same sense as Symbian which shipped on hundreds of millions of devices and had a real ecosystem of third-party native software.
I would have thought HarmonyOS/OpenHarmony met the criteria, though maybe you exclude it because it has an Android compatibility layer.
https://en.wikipedia.org/wiki/OpenHarmony
I worked at Nokia Research and Nokia Maps between 2005 and 2012. I witnessed the arrival of the Iphone and Android from the inside. There was a lot of disagreement internally on what the right thing to do was. And part of the company was actually very clued in and trying to do smart things. But Nokia did a lot of things wrong and most of that was just not getting that it was a software company. It had all the wrong reflexes.
The problem with Symbian from day 1 was that at the time it launched, it was already getting clear that embedded Linux was going to be a thing and it was a bit lacking in features relative to that. Between the late nineties and 2005, there were quite many attempts to use Linux on mobile and embedded devices. By the early 2000s it was widely used on things like routers and other devices. And there had been some attempts at building pdas and phones with it. Google bought Android (the company) in 2005; and they launched phones around 2008. 2005 was the year I joined Nokia. Rumors about Apple working on a device were already getting quite concrete around that time (i.e. Nokia execs would have had good intel about what was coming) and over the course of the next few years it became clear that it was going to happen.
Nokia was focusing on flip phones instead. They were really worried about the Motorola Razr. And the Blackberry. They completely missed the point of desktop operating systems being repurposed for mobile. They thought mobile was special and that they owned it. They stubbornly ignored all the internal signals (there were many) that that was wrong. Nokia even launched a Linux based device in 2006 the N770. It was not a phone and that was not an accident. Operators would object. This could not be. So, they crippled it.
Apple and Google both proved them wrong. The Symbian strategy was dead as a doornail before they even launched the first devices (around 2003/2004). Apple proved that operators were weak and could not ignore popular consumer demand. And of course IOS was a specialized version of OSX for mobile. And Google ended up benefiting a lot from Nokia's Linux work. The kernel was essentially the same for Maemo and Android. Google even bought N800s to dual boot them into Android before they had the first Nexus phone ready. The point here is that Nokia had a shipping touch screen based Linux device in 2006. Years before Google or Apple had phones on the market. The only reasons it didn't have a sim card were political. It could have been a phone, easily. The N800 continued the tradition. It even had a webcam and skype. But no sim card. Only the N900 fixed that. But that was way too late and they positioned it as a developer toy. Innovation around this topic was stifled. It was the obvious move. But the Symbian crowd successfully blocked and frustrated that.
By 2008 it was scrambling to undo a lot of really bad decision making around Symbian in the years before that. Which included actually cancelling S90, which is a touch screen version of Symbian that never saw the light of day. That happened around 2005. S60 3.x was the current version when Apple announced the iphone and had no touchscreen support at all. Nokia had to rapidly create a new version with touch screen support. It was a rush job and the first versions completely destroyed Nokia's reputation because it was unstable and unusable (both). The launch device for this was a complete flop. And it took until the early 2000s to stabilize it. And by then the phone reviews were brutal for any Nokia device. Apple was running circles around them. And Android was starting to actually eat into non Symbian (S30, S40) Nokia revenue. Which actually were most of the market. Nokia's entire OS strategy was failing at that point.
It's feature phone market started imploding and this was until then the money maker. They sold hundreds of millions of those. And then we got the whole drama with pissing in your pants to stay warm (Ansi Vanjoki, one of the VPs) and then Stephen Elop getting hired and chucking him (and Symbian, Linux, and all the rest) out. And then Windows Phone of course didn't make it and the MS acquisition happened and MS unceremoniously pulled the plug in 2014. Too little too late.
As an outsider, it seemed utterly clear at the time that the Maemo devices should have been the focus... but I realise how difficult a wrench that would have been for those who had sunk so much time and effort into Symbian.
Elop was right about the burning platform, but it was far too late by that stage.
[1] https://en.wikipedia.org/wiki/Itsy_Pocket_Computer
Early mobile is littered with dead operating systems. not really that surprising. PalmOS, Symbian, SaveJE, windows mobile, etc. not worth crying over.
You had Qt, JavaME and a lot of others framework to develop your apps. The old Skype was working perfectly on those devices, with full integration.
Then Google tricked us into Android because it was Linux and open source, Apple said no more Java the future is the web.
And now my bloated bank app developed in React Native or whatever won't start on Lineage and Graphene because of Play Integrity API. Also I can't access my homebanking in my web browser. Strangely I also can't find anything as good as the old Skype with the same features.
I am not saying I saw the trap at the time and Nokia and Sun might have turned evil too.
Have you actually used it or developed anything for Symbian?
It was neither "open" nor "for developers". Some of the sources were available, but unlike Android, you couldn't rebuild the OS from scratch and load onto your device.
You couldn't just build and run your own apps. You had to obtain certificates from phone manufacturer (Nokia) and sign them. Thankfully the security system had so many holes it wasn't a big obstacle.
J2ME was a second-class citizen, only to support a lot of existing J2ME apps from feature phones.
Qt was way too heavy for the devices of that time. Qt apps easily consumed 40-50 MB of 128 MB RAM, while C++ ones that used native APIs could fit in 5-10 MB. But the native API sucked. It was in a bespoke dialect of C++, riddled with a lot of generational legacy. "A lot of other frameworks" you mention were mostly stuff used by some single developer for their own apps, to workaround all the Symbian quirks.
Idk, I don't understand people trying to whitewash Symbian. It didn't die because of someone turning evil, Microsoft acquisitions, whatever. Ultimately it died because it was unacceptably bad for a modern phone OS. Been there, used it, don't want to, good riddance.
MeeGo, though, is an entirely different beast...
We have to remember nothing was "modern" at that time (around 2008)
My phone had a single 369 MHz CPU with 128 MB of RAM. That's about my ESP32 based smart plug.
People were running Windows XP. Linux and open source were still kind of fringe.
The fact I could run Skype perfectly on it and develop app easily using Java was amazing at the time.
Talking about unacceptable, remember the first generations of HTC Android phones? that was really bad.
Sorry, your memory is wrong. I've owned Nokia 5800 back then (2009 or 2010, don't remember exactly), and had a chance to compare it side to side with HTC G1 and iPhone 3G. It felt dated. Many apps were not designed with touchscreen in mind, the standard UI was "list with two buttons on the bottom", grandfathered from phones with keyboards. Resistive touchscreen didn't help either.
Then, the mobile hardware was making quantum leaps each year. I don't remember the exact numbers, but it felt every next iPhone or Android phone was twice as fast as the previous generation. And Symbian was stuck on a basically single hardware platform, with a single supported chip and a single weird display resolution (640x360).
Symbian^3 was a step in the right direction (at least they managed to rebuild the kernel for the different chip!), but the legacy was too heavy, and the competitors were moving much faster than Nokia. Like, the last Symbian flagship (Nokia 808) still had that 640x360 resolution on 4 inches. At that time, iPhone had HiDPI displays for two years!
I never had those early touchscreen ones. I kept the blackberry format E series ones with a real qwerty keyboard as long as I could.
The last productive phones, after that it was all infinite scrolling touchscreen zombie apocalypse.
Symbian didn't die for no reason.
Developers mostly described it as a pain to develop to it
The Active Object model was a bit tricky to learn, but once you knew what you were doing, you had "light threads" (that were not really threads) caring about your network, audio etc. very, very efficiently. I was in awe of efficiency of the kernel.
That said:
* the learning curve was basically El Capitan of all learning curves,
* the IDE called Carbide.c++ (a variant of Eclipse) sucked even more than regular Eclipse,
* on-device debugging was horrible, barely there,
* emulators were limited, a regular developer had no chance to debug many things such as audio or Bluetooth,
* build toolchains were obsolete (imagine using GCC 2.x in 2011, with all its inefficiencies and bugs),
* someone at Nokia decided that compatibility between devices did not matter and the Nokia world was so enormously fragmented (OS + UI) that releasing an application for all Nokias, even for all Nokias of one generation, was horrible, plus test devices were expensive.
Symbian OS kernel would work just fine today. The rest of the ecosystem was rightly abandoned.
https://wiki.debian.org/Mobian/Devices
More universal language rather than having to scramble to special documents I expect.
It had its own Perl-based build system, and I'm not sure that those SDKs are even available any longer.
Edit: It looks like someone out there is still developing on it: https://gist.github.com/artem78/cb2b9650af186844f7b565496467...