Bill Gates on The Daily Show
This is slightly outdated, but I figured I post about it anyways. If you didn't already see Bill appear on the many shows showing off Windows Vista, or see him in the tons of interviews by such sites as MSDN's Channel 9 or Channel 10. Then you might like watching this one of him on The Daily Show with Jon Stewart.
I'd like to say that in all of his interviews, you can definitely catch his aim on software of tomorrow. Where the software we produce and use becomes contextual and personalized. A great step in .NET, for instance, is such SDKs as WPF. Where the interaction of our applications is a lot less dull and a lot more productive and exciting for our users. Creating interactive and intuitive applications that only display what is needed and used in a given context. I see a lot of applications being developed that are based on this model of context + interaction + personalization.
Thinking of the many Web 2.0 Applications out there, I have seen less pushes towards desktop application development. Although, it is nice to have web applications that can store all my information and I can access it wherever I go, it can potentially open up a lot of security flaws where my data could be compromised.
Google Docs, and several other office applications now let you create documents and store them online. Even still we can do all of our finances, communications, and storage all online. Again, this can open the doors for hackers to steal almost anything we may possess given a little data mining. But this goes back to the old principle that I believe Matthew once told me: if you have extremely sensitive data, don't put it online. I'll agree in the sense that there is just information that we really don't want getting out such as our finances, but other data we may need it to be connected and viewed by others even if it is sensitive. This is where one of Bill Gates emails comes in handy. (Read it here)
I feel that the Web is a way of connecting people much more rapidly than a desktop application may. Utilizing community features, and other web application usage is a great idea for most applications. Integration is a very important role of development. There is of course, Smart Clients, where the application is already connected with the web. However, this will all, of course, depend on the application being built. The principles behind the application should determine how it is connected if at all.
Going back to the personalized context interaction, it may take nothing less than data mining to determine the users intent and basic needs to accomplish a given task. Whether or not a given task is difficult to accomplish will rely on how interactive it is. We are, of course, talking about complex applications and generally speaking web applications. Creating web applications that dynamically populate data, inserting ajax based controls with immutable data can be far more interactive than nearly all desktop applications. The basic problem with desktop applications is that most desktop apps are developed through static WYSIWYG editors, and thereby severally undermining the architecture of both the system and especially its interaction.
Along side the .NET 3.0 framework we have WYSIWYG editors that accomplish what I'm talking about in the Microsoft Expression Suite. One such is called Blend. In Blend, you design your application with all the interaction you would like, moving around controls, destroying them, creating them, manipulating them all through the editor. With most desktop application development cycles, this would take a lot of custom code. The Expression Suite definitely eases this process in development, making interaction/design stages of development a lot smoother into programming. The ability to create applications with truly intuitive interaction is becomming less and less difficult. I believe the next step in intuitive interaction is indeed context, providing relative information to the users. Some of the other concepts could also be vertical search and definitely personalization. We have already seen personalization spread through sites such as NetVibes and Pageflakes. It will interesting to see how this progresses into other fields of software development.
Comments
Of course if you are into JScript then Blend will be heaven but most of us hate JScript so more of it in Blend means no-no for us.
Like I said, I'd rather develop desktop applications with Blend rather than web apps. I'd much rather have my web apps the way they are than create a flash clone using WPF/E.