Note: This post is NOT a prediction of what will happen to the form or factor of computer and how small it will get!
Disclosure: As per the fashion of the current time to putt disclaimers and disclosures, I also put out one. I work as a Computer programmer for my living!
(And finally I start the post… )
I feel today’s computer is elitist’s device designed to tell the users that they need to “learn” to use it. Which I think is a very poor marketing strategy to build and market a product. (yet today their exists millions of computers out there, that shows the desperate need of those machines to aid humans). I feel that a computer should be designed with keeping in mind its use by a common man and by “use” I mean its use could very well be extended by the user by programming it to do some so desired function by him or her. Simply put it could be programmed by any and every user of it, to do what THEY WANT. An OS should be a basic layer that just allows the machine to carry out its functions (read: device drivers, memory management, intelligent displays for interactivity, interfacing with humans [think wild, neural connectors for brain projectors]) and understand some basic set of commands. What I don’t want to see is, a special language to communicate with the computer, the medium / media of communication could be very intuitive and simple to use (Apple like? May be!). It should be a generic machine that can carry out the task by combining a bunch of earlier built modules (Something very much on the lines of a Libraries in the prevalent programming languages) but something that can be done by every user of the computer. It is only then we can utilize the complete potential of these beast like machines of the day. Why do I say that? Take the case of your parents who when approaching a computer feel intimidated by its interface. Our parents and common users did not grow up hitting a horizontal board of plastic with quite oddly designed buttons which are surprisingly called keys(?) although they don’t open any locks! and move an odd shaped device that some how seems to move a pointer on a TV like device that somehow shows the result of all or some of the previous activity.
Instead of this wouldn’t it be easier if we had an interface where computer was like a home electric usage meter tucked away in some part of the house where it is in no one’s way and yet we have multiple portal like interfaces scattered around the house that can let you access it without having to key in the input. At the same time you should be able to intuitively program it to do a certain function like in case of a house process automation. For example, wouldn’t it be cool if you could add a reverse motion to your house robot which is hooked on to the home network and connected to the base computer using a generic programming interface that lets you graphically select the reverse motion sequence widget (you programmed for your washing machine motor, by graphically selecting the basic function of reversing the motor’s motion from the pre-built OS library) and insert at a certain point in the robot’s sequence of execution or working. All this on a wearable display that moves with you and lets move around and yet enables you to do this while you are doing something that does not need your complete attention, like talking to a boring friend on a video chat (construct your own boring example).
To support my argument I give an example of the current day evolution of computers, the smart phones. They are popular because you can carry your computer with you, you profile of work with you, you can carry your life out on the go with the machine that is with you when you need and want it, you don’t have to wait until you go home to see that latest news or read that email. Although, the displays are painfully small, and the keyboards are a nightmare to use (yet kids manage to send a few thousand SMS/Text a day, [read: NEED!!!]), what they have is a beast like computing power and mini-dinosaurs era operating systems (OS) on them that makes extending them a elitist’s (read: programmer’s) task.
They provide NO extendability for the common users, they (common users) have to select from pre-built apps which in most cases are non compatible and do not talk to each other. It is painstaking to know that even after paying the seller they cannot reuse the app that they bought for their own use along with other apps to create an experience that they as a users want. Won’t it be cool if all these apps actually had an open interface to exchange information among each other and we could create a dashboard where we had the best of every app to get the best or personalized experience we want. In some cases despite of paying hundreds of dollars to the manufacturer you need to abide by their standards of use else they do not give you guarantee on their sold merchandise (this is like living in a barbaric times of cell phones!). Why this is happening is a matter for another post but for now, I think I have made a point. In future computers will have to come in a more user friendly form that allows the user to extend it and use it the way they please and not the way manufacturer expects them to. Now with this freedom will come the responsibility on the users to own up to their mess, if they mess it up, then they should try to do their best to own up to it and if needed pay for it (Or in America you could just take insurance for that too! … ).
Of course I know their will be those who will still not want to deal with the whole “programming the device” thing, but believe me their will be enough who will make it a mainstream thing to program your own computing machine. Rest will just end up paying more for the same task creating some low skilled jobs… …
anyway, that is how I see computers evolve… thoughts welcome.