This is my 2014 wish list forÂ where operating systems (OS) should be headed withÂ laptops, tablets, smartphones and smart devices. Now before you lambast me or fill my ears with technical mumbo-jumbo about why some of these ideas arenât possible, just take a slow, deep breath. I offer these concepts up as a challenge to take things to the next level, and not as fodder for a debate contest of whatâs possible and whatâs not. IÂ hopeÂ these ideas areÂ viewed as worthy goals rather than existing only in our imaginations thru science fiction.
I suggest itâs time we rethink operating system kernel theory and discard some of our historical notions of how operating systems are supposed to work. I’m continually amazed that even the newest operating systems, such as Android, have fundamental problems similar to what weâve had since the earliest versions of Windows! So hereâs my listâŚ
No more OS lockups â Itâs 2014 and computersÂ still experience software related operating system crashes. In the last year, Iâve personally had brand new Windows machines, Macâs and smartphones lock up in one way or another. No, itâs not just bad luck. I put the onus and ultimately responsibility back on the OSÂ vendors. A 21st century OS should be hyper-intelligent about memory allocation and reclamation. The OS should be able to gracefully self-recover from everything short of a fatal hardware failure.
No more app crashes â Iâm sure the OS developers will blame this on the application developers and vice-versa. Â My take on this: app crashes should never happen. There are many well-known badÂ patternsÂ that operating systems can monitor for and avoid. The OSÂ should be ableÂ to detect bad application code and handle it without coming to a screeching halt. Examples that I’m thinking about include:
- being aggressive about detecting and providing programmatic feedback on memory leak conditions,
- automatically isolating run-away code blocksÂ so they don’t lockup an entire application,
- giving applications feedback on whether or not they are on a trajectoryÂ to run out of memory rather than simply killingÂ them off,
- provide not just guidelinesÂ but also build-timeÂ test tools for analyzingÂ applications andÂ provide pointed feedback onÂ best practices.
- Â some may consider it draconian, but you could be more assertive on failing builds that don’t meet a minimum best-practice standard set by you, the OS manufacturer.
Dynamic updates â We should be able to update the OS and apps while they are running. I really donât like having to reboot any device that gets updated, and in the case of Windows this can lead to multiple reboots and that is a major pain. This includes phones, computers, as well as TiVoâs, Hoppers and more. I’d like to see OSsÂ model themselvesÂ afterÂ web pages that can replace specificÂ content on-the-fly without having the refresh the entire page.
Instant boot â OS should allow smart, lazy loading of modules and applications as needed. Do we really need to wait for everything under the sun to load up front while we wait…and wait? My iPad takes some time to boot, my Android Nexus takes even longer, but my MacBook boots within seconds.
So that’s my short list. I hope some OS engineers have a chance to read this and give my suggestions thoughtful consideration.