Vision
Solid is an initiative for seamless integration of hardware and networked devices into KDE and other systems. The initiative currently consists of a KDE framework and a device knowledge base.
A dynamic world
Personal computing has made a long way. Most of us tend to forget or to ignore that the first PCs or Macs simply provided a floppy drive and a hard disk. It was static, it was in the 80s. Of course the world is much more dynamic, and even computers have to deal with it more and more.
Humans need to socialize and share, so networks appeared. The most tremendous revolution in this area being the Internet. At the same time, consumer electronic devices became able to communicate with computers. A wide range of such devices flooded the market: PDAs, portable players, cameras, etc. Last but not least, power consumption became a concern, in particular to improve laptops battery life.
And now, we're facing the wireless revolution. Most new networks and devices can be reached through the ether so they'll appear and disappear as your computer moves, or the world around it. Computing lost its last limitation to a fully dynamic environment, and users must be able to make use of it.
Development of KDE 4 has begun, and it's the perfect opportunity to finally strengthen the way our computers interact with the myriad of devices and networks available.
This is the ultimate goal of the Solid project: to make the cooperation between the desktop environment and hardware shine. Robustness, simplicity and flexibility are our primary goals since they are the values of greater importance for the user.
Robustness
People want their systems to just work. It looks like claiming something obvious, but expectations on robustness are high since nobody wants to face unusable device or data loss.
Taking their roots in the best quality practices for agile software development, the techniques used by the Solid developers will allow to avoid regression and make the code more and more robust with time. We will particularly focus on test-driven development which is proven to improve both the overall stability and the design of the resulting software.
The Solid team also plan to deliver a knowledge base keeping track of devices behavior for a given platform. The necessary tools allowing end-users to update this knowledge base themselves will also be provided.
Flexibility
In order to fulfill KDE goals, Solid must provide the average desktop user efficient means to deal with modern devices and networks. It can only be achieved by putting back flexibility at the core of the framework. This concern is adressed through several areas of interest: hotplugging, networking, freeing the user and being future proof.
Most devices you can buy today can be plugged or unplugged at any time while the computer is running. A desktop environment not built with this class of devices in mind will tend to break or simply be blind to the changes happening in the system. Hence why Solid must support them and be thought with this kind of dynamics in mind.
Today, every computer is network enabled, they at least support wired networking, but wireless is slowly becoming pervasive. It's leading us to more and more complex uses, yet this crucial feature must be simple to grasp. Hence why the Solid team will give priority to the most common setups and choose sensible defaults accordingly, while allowing fine tuning for more exotic needs.
And last but not least, we're committing to support users' workflow from the graphic interface. Since power users might have their own idea on how they should interact with their devices, we need powerful interfaces to enable them to tune the desktop. Hence why we'll work with the Plasma team and deliver a specific Plasma engine exposing hardware related information.
Portability
It could look logical to loose portability to satisfy our previous goals. We're allowing for a better interaction between the desktop and the underlying system, that could lead to more coupling of both part. This situation would ruin KDE's portability. That's why Solid is specifying the features the underlying system must provide for desktop applications.
This way we're not tied to a particular platform. Each platform providing the necessary Solid backends will be supported. We're commited to keep portability and our framework design based on backends will ensure that. Moreover, it will allow KDE to be future proof and to work as expected on new platforms as they are available.
Overall, the integration between the desktop and the host platform is improved, but KDE is still portable on several systems.
The End Result
The Solid team is spending time polishing and working on the necessary KDE framework. The result will be a system allowing to seemlessly use devices and networks available for your computer. In fact our job will be done when interacting with hardware becomes intuitive for the end user, and when applications writers will be able to use the hardware efficiently.
