UK Tech Days - Steve Ballmer, the Cloud and Phones
I was one of those attending the Microsoft UK Tech Days on Tuesday, 5th October 2010. I thought that it would be a good idea to see Steve Ballmer talk about the recent developments within the Microsoft world and hear a bit about Cloud computing and Windows Phone 7.
As always it is fantastic to get to meet so many developers in the UK who are passionate about software development. I have written quite a bit so I thought I'd just provide a quick link to the different talks here:
Keynote - Steve Ballmer
Steve was an interesting person to listen to, he is working hard to convey passion about the future of Microsoft. He talked about the imminent release of Windows Phone 7
, he admitted that other smart phone providers had stolen an march on Microsoft and that now Microsoft were trying to play catch-up in the field.
He enthused about IE9, the most standards compliant browser that Microsoft has ever produced and about how they are working with the standards bodies by contributing to the test frameworks.
Perhaps one of the more interesting areas that he was talking about was the Windows Azure platform, a cloud computing service that is Microsoft's attempt to get into the cloud computing market. It is interesting the cycles that we are seeing in the computer market, at one time there were just mainframe computers and everyone worked on a dumb terminal but eventually the personal computer came along and the day of the mainframe seemed to be coming close to an end. However, as technology grew and systems became more connected it once again drove us back to a fairly powerful server-side layer and rather dumber terminals. This time, however, there is a slight difference Steve believes that people want smarter clients to go along with their cloud services which is a concept that I had not really thought of before. Phones are becoming smarter, web-sites are not demanding that the browser provide the capacity to deliver a rich interface for their customers that goes beyond post backs and links.
Microsoft vs Open Source
Steve took quite a few questions and there was one by Sebastian Lambla
concerning Microsoft's support for the open source community. There are a number of instances where the Microsoft giant has "re-invented the wheel" when there was a perfectly valid open source project already on the market and relatively few cases where they have thrown their might behind an open source project (JQuery
being the most well known example).
There is a natural tension there, even though Microsoft have created codeplex
for hosting open source projects and a number of their own projects are now hosted on there (they have made their code for ASP.NET
available through the site) there is still a long way to go.
Steve did not immediately have an answer about Microsoft's strategy concerning the Open Source community though did say he'd take a note on it and would consult with senior management about their open source policy.
To be fair for a long time there was very little Open Source activity in the .NET world and Microsoft were simply building features, products and libraries that they felt were needed in the community. Now, things are changing, the .NET world is opening itself up to new ideas and concepts and people are writing some excellent open source projects. In reality there are a lot of extremely intelligent developers out there writing new libraries, tools and frameworks on the .NET platform and Microsoft would do well to support that community, not only to leverage the innovative ideas, but to provide support to a growing community that if nurtured will remain on the .NET platform and not drift away disillusioned with Microsoft.
I sincerely hope that Steve goes away and thinks seriously about working with the .NET community.
Windows Phone 7
So we now come on to the details of the tech days - once Steve had parted the stage and we'd had a little break it was time to take a look at Windows Phone 7.
My initial thoughts on hearing about Windows Phone 7 was that Microsoft were coming to the party a little late and that there are a number of other more mature phone OS platforms (iPhone and Android really do spring to mind here). However, it was going to be interesting to see what Microsoft would bring to the party.
Microsoft at the moment are trying to tread a fine line between the Apple model "our hardware, our software and everything is tightly controlled"
and the Google model "any hardware, our software and it's up to you what you do"
by having very tight constraints on the minimum hardware capabilities for the phone manufacturers and they would provide the software to make full use of that hardware. I'm still unusure about what the implications of the different models are but I see that Apple is maintaining the business model that failed in the 80s and 90s when they bound their hardware and software together in an expensive bundle while Microsoft supported any hardware and therefore more people could afford them.
So, about the operating system itself. Microsoft have been borrowing some ideas from other operating systems with features like displaying social media content for your contacts and I've heard some interesting reviews (at least one person has said that they hated the fact that all of their facebook contacts appear in the contacts list when they are trying to find a phone - this wouldn't generally bother me as almost everyone I know on facebook I have a phone number for). The apparent lack of support for Twitter seems to me to be a bit of an oversight on Microsoft's part. In terms of other features they have Push notifications that mimics the Apple push notifications but allows people to change the "tile image" for the application that is receiving the message which is a neat little touch.
Sadly Windows Phone 7 is lacking in multi-tasking abilities beyond their own applications. I understand that Microsoft are probably worried about the impact on the battery life of their phones, as Apple were, but even Apple have realised that having some multi-tasking capability is necessary and relented with iOS 4. Also there was a sad lack of any copy and paste which Microsoft said that this was not something that people want but trust me, the phone comes with a version of office and I want copy and paste when I'm working in office documents.
Beyond that development for Windows Phone 7 is actually a very nice experience as the applications are either Silverlight based or XNA based so build on the standard set of tools that .NET developers are all going to be familiar with. Seeing how "easy" the development was then I am encouraged to play around with Windows Phone 7 development and see just what is out there.
Will Windows Phone 7 be a hit? I'm not sure, the timescales for development of the phone are very tight and I think that the other operating systems are more mature but Microsoft has an amazing chance to bring something new to the party with later versions of the operating system. They broke in to the lucrative gaming market with great success with the X-box, they have millions of desktop users and therefore they need to bring together a fusion environment where all the devices work together as a phenomenal user experience.
The next talk, after a break and a chat to some students who had won a competition to go to this event, was about Windows Azure, the cloud computing service provided by Microsoft.
Why should we use cloud computing? Well, if you are simply producing a small website then I think that using a cheap hosting package (there are plenty out there for a few pounds a month) would actually be better for you but if you are creating an application that may need to scale up and down as demand waxes and wanes then this is certainly something that you should potentially consider.
Couldn't I just get a server? Yes, initially you could just buy a server and then manage and maintain it yourself but that can cost your organisation. Similarly, for a larger organisation a data centre is an expensive thing to have. However, if you have significantly fluctuating demand (perhaps a live sports video feed site that only really is under demand when a sporting event is on) then the servers are sitting there doing nothing but consuming power and costing you money to maintain.
With Azure you can scale back during quiet period and then scale up significantly just before the event ensuring that you have capacity and then scale back when the event is over and you are only paying for those instances for the time that they are running without having to manage the infrastructure yourself.
Azure works on the idea of a role
which can be a web site, web service or a background worker process. Each of these are intuitively easy for existing developers to learn as they are building on the same kinds of concepts that are behind traditional web and service projects. Microsoft will then charge you per compute hour for each instance of each role.
There are also a number of different storage mechanisms on Azure and it is worth people getting to understand what is available before just deciding to go down the SQL Azure route.
- Blob Storage
This can store almost anything and is effectively a cloud file system. Fast and reliable
Queues are mechanisms for securely communicating between services.
Tables are not SQL Server Tables! In effect they are an large single table that is indexed by "Table Name", "Partition Key" and "Row" then there are 252 other columns that cannot be indexed (so beware folks, always query your tables with these keys otherwise you'll be doing table scans). Different rows in the table can be different schemas. If you design your structures correctly this can be a very fast (and very cheap) way to store data.
- SQL Azure
This is almost, but not quite, SQL Server in the cloud. There are a number of limitations to this and the most basic package costs $6 per month for up to 1GB of data.
I am quite interested in development for Windows Azure and I have registered with an account though at the moment I am slightly worried about the costs $0.12 per hour (that is not per CPU hour but per hour that your application is deployed) which means that to run a single compute instance for an entire year is over $1,000 especially when you take into account storage etc. Just as a comparison the Heroku
platform for Ruby gives you one web instance free and charges you about half as much for subsequent instances.
Well, IE9 doesn't really excite me that much. It is the most standards compliant Microsoft browser, they have made it look cleaner and they have leveraged the power of the GPU to make it currently out-perform other browsers (though at some point the other browsers will catch up on that score.
Microsoft at the moment seem to be putting resource into HTML5 and trying to make the platform work and there are a number of little features that integrate your favourite web pages into windows 7 with features like Jumplists that will allow you to pin your site and specific links within your site to the taskbar (for example pin facebook to your taskbar and you'll have jumplists to go directly to your messages, events etc by just right-clicking on the taskbar icon).
There are some innovative ideas here but nothing that is truly inspiring me at the moment.
Windows 7 - by Mike Taulty
Windows 7 is already here but I think the focus of this talk was primarily around re-thinking how we develop applications and how people expect applications to behave in the modern world. Old-style windows with grey background, text fields etc that are fairly static and boring are no longer really applicable in a world where the web is providing extremely rich and interesting interfaces.
Using WPF can allow you to develop some interesting and dynamic interfaces (one example of this is the MetroTwit
twitter client that uses a Metro interface) and another example was the Zune interface that Microsoft have developed. People want their desktop apps to feel intuitive, to look sleek and stylish just as they would expect a web-site to look.
Microsoft now expose ribbon interfaces to replace the old menu and toolbar interfaces and they have provided us with newer dialog boxes that look cleaner and well, generally just more shiny than the traditional boxes.
Mike also showed us how to handle auto-recovery should your application crash to improve the user experience.
It is our responsibility, as developers and designers, to provide the users with easy clean and intuitive interfaces and there is a lot of work going on at the moment to change the way in which Windows 7 applications will appear in the future and don't forget that as touch devices become more popular the nature of a lot of our applications may also have to change, even if Windows 7 is multi-touch compatible our applications have to be as well.
Sorry for typing so much, all in all the Microsoft Tech Days was a really interesting event and I have been thinking a lot about it over the last few days. I enjoy conferences in general as they are a way to recharge my batteries and learn something that is not part of my daily life, spending time with other passionate developers during (and in the pub after) the conferences. Thanks to the UK Tech Days team for organising this and I look forward to the other events in the future.