There were major components people refused to even touch (like messaging) because the code was basically unmaintainable. An aggressive refactor of the entire OS was needed but they never really got comfortable with that. Symbian was originally essentially an operating system targeted at a calculator that outgrew itself several times over.
The first modern slab phone I ever saw wasn’t an iPhone… it was a Nokia prototype in like 2005. If they had a real operating system in place maybe Nokia is the world’s most valuable company today.
The difference could be that the technical foundation was more sound, and also, Google is institutionally capable of large refactorings in a way that I think few other companies are.
People forget this, and it’s solved now, but it took Android several years and quite a few iterations of the rendering layer to get smooth scrolling working to the level of the iPhone 1. Look up “Project Butter” if you’re interested.
Smooth scrolling is hard, but important for touch to feel perfectly right. I’m convinced that this is one of the places where it mattered that touch screens were an afterthought in the original architecture.
For example: the Moto-Q ran Windows, shoe-horned in some AT&T UX junk, and a huge nubin that stuck out in the middle. It pioneered the ever present "pocket dial." Was thinking of developing for it, but after a few dozen pocket dials, I wanted to go full Frisbee mode.
Apple cut through the 3-body problem. They controlled the UX. Such as integrated voice-mail. The carrier didn't mess with the UX. After a few months, Apple provided a decent development environment -- maybe as a response to all the jailbreak apps that we were making.
Around that time I was in a focus group. What struck me was a horror story from a Symbian developer. Their toolchain broke after an incremental update. Lost a week dealing with it. That kind-of put me off of Symbian.
Maybe the real choice for Nokia was: either the burning platform or the sharks.