Comment by asveikau
Comment by asveikau 2 days ago
2009 and earlier: Windows Mobile was based on WinCE. The UI was garbage but the innards were pretty functional, and there was desktop-like multitasking. Unpopular opinion: they should have just done a UI refresh of that thing and moved it to an NT kernel. There were a lot of cool third party hacks on this platform.
2010: Windows Phone 7 was still WinCE, but they removed full access to WinCE APIs, and got rid of PC style multitasking. They had a new UI framework for first party apps. Then for third party apps they had a port of Silverlight that imitated the new UI style. The latter had really terrible performance.
They had to base this release on WinCE because the NT kernel port to ARM wasn't ready yet. Blocking access to "good" APIs could be seen as a way to ensure app compatibility for the next release.
2012: Windows Phone 8 had the NT kernel. Also, windows 8 and windows RT shipped. But the silverlight-inspired UI framework of Windows 8 was different from the Silverlight fork from Phone 7. So you had yet another UI framework rewrite to cope with.
At the time Steve Jobs was putting his foot down against allowing Flash on the iPhone because the performance was so pants, Microsoft was going all in on Silverlight which had exactly the same problem.