1. We need a clear separation between system programs and application programs, so that a user can install the latest version of Python without it ever colliding with the outdated version of Python that the OS uses internally. The user shouldn't even need to be aware of the existence of the other Python.
2. The default way to install third-party application software shouldn't depend on repositories or servers. It should be based on installing files, just like on Windows. The OS should define a stable format for the OS to install, update and uninstall these files. Additionally, a permission system like Android's could be a good idea.
3. We need a desktop environment that's visually appealing and has a good UX.
4. We need centralized, thorough and official user documentation about the OS, so that the user doesn't need to browse random forums and wikis in order to learn how to use some piece of the OS. Note that this documentation is about the OS, not about third party software. And this documentation should be distinct from the developer's documentation.
5. Consistency. The user shouldn't need to learn 10 different config file formats or inconsistent command flags across the system in order to configure it.
2. The default way to install third-party application software shouldn't depend on repositories or servers. It should be based on installing files, just like on Windows. The OS should define a stable format for the OS to install, update and uninstall these files. Additionally, a permission system like Android's could be a good idea.
3. We need a desktop environment that's visually appealing and has a good UX.
4. We need centralized, thorough and official user documentation about the OS, so that the user doesn't need to browse random forums and wikis in order to learn how to use some piece of the OS. Note that this documentation is about the OS, not about third party software. And this documentation should be distinct from the developer's documentation.
5. Consistency. The user shouldn't need to learn 10 different config file formats or inconsistent command flags across the system in order to configure it.