encapsulation
Before object-oriented programming, we had data and methods, separate and distinct, yet indivisible. Data always needs to be interpreted and manipulated, and methods make that happen. At some point along the evolution of software engineering, it became evident that we should give up the freedom of a world with no walls, and create encapsulation to hold data together with the associated methods that give it meaning and value.
The walls let us put things in order, wrap our work neatly in a box, structure and build. Relinquishing minor freedoms to manipulate data at a low level, we created a newer freedom to design software at a higher level.
From data and methods, you can step one rung higher in the abstraction of software. You will find yourself at files and applications, separate and distinct, yet indivisible.
Apple made a firm stance on Monday. That for the majority of people, they believe the freedom associated with a traditional file system is not worth the trade-off in complexity. Coupling files with the associated apps is more than logical, it’s downright simplistic.
Now there are hurdles. Sharing files with other apps is among them, but they are cases that deserve special treatment, rather than broad, heavy solutions like file managers. The Camera Roll has been a fantastic example of one such solution in iOS, and similar hubs could easily exist for other files as well. The reality is, sharing data with people and services has been easier on the iPhone than ever before. That little “Share” button works wonders. The simplicity outweighs the hurdles by more than just a small margin.
The Finder is my second least favorite Mac app (behind iTunes). There is a lot of promise in an environment free of a user managed file system. I find the concept most welcome.