The problem with the tech world is, from an operating system provider’s point of view, that the goalposts keep moving. These perambulating pieces of wood killed Symbian, killed Blackberry, have almost killed Windows Phone and Windows 10 Mobile, and, one day, may even kill iOS as we know it today. With hindsight, it’s all too clear, but at the time OS coders were making sensible choices.
Operating systems come, and operating systems go.
It talks about releases, NFC, web browsers support and such.
What really killed Symbian, was having a C++ dialect (Symbian C++), with a toolchain that was a mix of batch files and Perl scripts.
Three IDE reboots, Metrowerks, an initial attempt with Eclipse, followed by yet another one then named Carbide.
Then the OS APIs, got PIPS, followed by a mix of Qt and Symbian APIs until the burning platform memo.
Oh, and they were the first mobile OS to support web apps.
Likewise Windows Phone 7 was a reboot from Window CE 6, being only about Silverlight and XNA.
Windows 8 complete reboot with WinRT, complete different APIs between mobile, tablet and desktop.
Windows 8.1, change of APIs (UAPs), now at least mobile, tablet and desktop can share business logic, but not yet the views.
Windows 10 renames UAP to UWP, and allows the code to be truly portable across all Windows 10 devices.
The broken promises repeated multiple times about which devices would get 8.1 and then 10, and then the ones that actually got it.
These were the actual goal posts being moved, that angered developers and consumers, not NFC payments, web browser support, IoT gadgets and such.
Yeah, it was sad to see so much potential go to waste.
I argued with Psion back in the day. They had a painful development process. Signing an agreement, having to use windows, not having source code to any of the libraries you needed to use. I lobbied for them to be nicer to developers. I lobbied for the “it’s the apps” point of view”. Every additional app would help them sell more hardware. I mentioned how easy devel was for the palm pilot. I mentioned that it was inevitable they be replaced by a similar product with more apps.
Nokia did better with the n770 table, app store, decent OS, nice GUI, 800×480 well before that was popular on smart phones. Sadly they waited years before adding a modem. The UI and app store looked like the iphone, but years earlier. It pained me with the irony of a nokia device (famous for phones) without a WAN. They could have owned the smartphone space before apple got started. Took about a decade for apple to make a nokia 770 for things like mapping, navigation, offline maps, etc.
My understanding of Symbian (which used a derivative of the EPOC of on the Psion) was also a mess. It wasn’t till android came out was there a really friendly devel environment. Supported multiple platforms, open libraries, emulator, IDE, etc. Even before android got popular the apps came pretty quick.
Microsoft seemed to just assume Microsoft desktop/laptop users wanted microsoft phones. Microsoft never supported cross platform development and treated their users like crap. Selling nokia’s with microsoft mobile, then months later announcing a new version with no upgrades sent a pretty clear message to users and developers.
Symbian was buggy clusterf–k. If you used public APIs you could easily crash whole device. Some APIs crashed randomly or on certain devices. Multimedia Framework never worked reliably – you could easily crash kernel or some server. Direct Screen Access which should have been fast, glitched on certain phones. Audio Proxy Server was working randomly and could easily take down kernel. Development environment was slow as hell, building project took ages, they used outdate compilers, there were no good frameworks (Qt was close, but also very unstable). General APIs like UI, networking, contacts, etc. were mess, too complex to use for the most common case. OpenGL support sucked ass – you need to writre lots of boilerplate to make it work and it could also crash the phone. Debugging was impossible – some retard at Nokia thought that TRK debugger was good to release – it wasn’t. What’s the point of having debugger which crashes together with application and you can’t use breakpoints reliably ? Even stepping into virtual functions didn’t work. When you got assertion failure you couldn’t get stack trace because these morons didn’t provide debug symbols. “Emulator” was a joke – took ages to boot and half of their crap didn’t work or crashed. Then iOS and Android came and smashed sy(m)bian into pieces in terms of basic things important for developers. If nokia/symbian loonies would allow people to debug applications easily and not limit stupid self signed certificates to nothing useful then …
Edited 2017-12-08 08:46 UTC
I second to that. Those responsible for Symbian design/SDK should burn in hell. Developing for this piece of dung was a traumatic experience: a stupid dialect of C++ making presumably simple things like object allocation a multi-step chore, API documentation – poor and incomplete, I had to hunt forums for magic numbers to access system services such as FAX. The simulator behaviour was far from you might expect on actual devices. Oh, as far as devices go, different vendors used different UI toolkits which lead to fragmentation.
Perhaps also Symbian was simply… too early; so it & its UI got optimised for low power, low memory, non-touchscreen devices. When those constraints faded away, it got difficult for Symbian to adapt / it took too long.
Edited 2017-12-09 00:27 UTC
Oh god, Windows Phone development had so much potential.
Then everything had to change with Windows phone 8, but that was okay: you got speech api’s and really nice changes. But in both cases, MS kept rolling on while removing or ignoring features/APIs needed, had shams of dev hackathons, rewarded devs for *most apps* instead of *best apps* leading to 9,0000 crappy youtube website wrappers, and even encouraged these website wrappers.
The whole thing was awful and worse than WebOS, which at least really seemed to try.
Yeah, there’s moving goal posts; however:
Android is doing just fine, probably b/c of its open source nature so hw vendors are easily able to modify what they need to.
iOS won’t be killed by it b/c Apple controls both OS and hardware platforms. They two are heavily sync’d.
Windows Phone *is* DEAD. It never really stood a chance, especially with how locked down Microsoft made the code that ran it. For WinCE hw vendors would get a copy of the code they could compile; but with WinPhone Microsoft wanted to move away from that AFAIK, so things were a lot more locked down. Add to it Microsoft’s lack of long term support (WP7 dropped for 7.5 dropped for 8 dropped for 8.1 dropped for 10) and it’s dead a door nail with no hope of life, providing neither what hw vendors need to make a platform successful nor what users need to make a platform useful. And Universal apps won’t solve that either.
Symbian S60 was open source near the end, too (there’s a code dump on Sourceforge, you can take a look …if you dare ) …didn’t seem to help it much & Nokia made the very final developments behind closed door.
Except that the build process and dev environment for Symbian were extremely complicated (see TFA, plus http://www.osnews.com/permalink?651762, and many other sources). So Symbian being “Open Source” was more like a legacy support dump than truly building a workable community around it.
Dev wasn’t that bad near the end / when it was open source, with Qt and related tools. There was even a community effort on old Google Code, ~”Wild Ducks” IIRC, to make an ~open phone.
And Google also doesn’t exactly build a community around Android, it develops it internally and dumps the code on the world in annual intervals. And Play Services are closed…