Symbian’s Secret History: Davies on what went right (and wrong)
Former CTO Charles Davies shares his memories
On creating Epoc
"It was quite engineering achievement. We had to deal with memory leakage, and had to be able to run for a very long time.
"Garbage collectors would have been unthinkably expensive to do at that time, and the processors were too slow to support garbage collection, they weren't up to it.
"We probably went too early with C++. My opinion now is C++ is a pig of a language, it gives you too many ways of doing some things that are dangerous. Java is a nicer object-oriented language. The standard was just solidifying, and we went with our own proprietary exception.
Charles Davies and Colly Myers in 1984. Myers designed the
Epoc32 (later Symbian OS) kernel and was Symbian CEO
from its foundation in 1998 to 2002.
"We actually measured the stacks. The idea is that a stack, which you need for every process thread, is just too expensive. So we were incredibly tight with memory. We'd see how far the stack came down and calibrate the stack on the basis of that. It's an unimaginable world for people used to modern things.
"Android suffers from non-deterministic responsiveness because it has to do garbage collection every now and then. It'll get better over time, but it's an issue.
"I think of Moore's Law as an order of magnitude every five years – and it's just huge. And it changes the nature of the software.
"Symbian was quite demanding at the time in requiring an MMU. The way that the screen was drawn was the only affordable one – which was reactive repaint. The way the window server works is it sends an event all the way to the application when something needs to be redrawn. You don't buffer, in any sense. That evolved over time. It turns into the wrong paradigm when you've got GPUs. For composition with transparent windows, that becomes important. When Windows was XP, a GPU was optional, but when it went to Vista, a GPU became mandatory. It was a similar transition in phone OSes."
On joining Symbian in March 2003
"The key thing was API compatibility – and we succeeded on that. We got far more disciplined in our processes, and as much as not, that was for [the benefit of] Series 60 and UIQ. That was a big thing. [I also looked at] the boundary of where we sat in the scheme of things.
"When I joined Symbian, the organisation wasn’t sure if Java was an application or a system language. I took the view C++ was our system language and Java was more like an application. Java was more high profile in 2003...
"The Japanese were really good for Symbian. They were very demanding on quality and the most diligent in testing, so quality was a huge push at Symbian. People were rewarded on that.
"Then we had Platform Security which was incredibly disruptive – more disruptive than people thought. And we did it in a way that broke compatibility, and said that would be the last time. It was a big kicker. We could have done that better. We could have done Platform Security in a less disruptive way. We underestimated the downstream disruption."
On Apple… and future mobile design
"The time Apple made its first iPhone was about the first time that anyone who wasn't already incumbent could. So timing is everything. Why? Because of the IP, and the signalling stacks – remember the iPhone couldn't manage 3G, but it could just about manage 2G.
"Apple works very hard at things people find appealing. There's a saying that 20 per cent of your functionality has 80 per cent of the appeal, but you never know which 20 per cent it is until after the fact. All companies essentially tinker with product specifications without any certainty of what the market will like, including Nokia and Apple. Apple are working harder at seeing if something is a better fit to the market. There's also something called looking at the user experience (UX) backwards, and Apple is very good at that. But nobody can do it with absolute certainty.
"Perhaps there's a backlash to more utilitarian functionality – like making a phone call. Then there's the value of apps; it's a question of degree, and how absolute that lock-in is. iPhone and Android have a hell of a following, it's tough for Microsoft to catch up; and Nokia almost had it, and threw it away, because of fragmentation." ®