Now that the Jet-lag has worn off (all-night flights suck, even when they are first class) I figure it would be the perfect time to blog about my recent visit to Microsoft's Web Dev Summit.
A few weeks ago I got an invite from Brian (who thanks to Wez he got through my spam filters) to come to Microsoft and see what kind of cool stuff they are doing and to give some feedback from the "enemy camp" so to speak on the stuff they are doing. I thought it'd be a great opportunity to see what's going on the other side of the fence and readily agreed.
So, last week, I caught a plane to Redmond where I joined a number of other PHP luminaries (Wez, Marcus, Frank, Laura, etc...) and a lone Ruby developer (Yes, they do exist!). Over the next two days we had a very tightly packed schedule of presentations from Microsoft folks on things ranging from IIS7 to LINQ. Despite the very tight schedule we've got a number of opportunities to have informal talks with Microsoft developers which in my experience were quite interesting. They have certainly seemed open to new ideas, which was a very welcome surprise and were more then willing to listen to constructive criticism (which in some cases we were more then willing to provide ).
In terms of the things we've seen there were a few very positive developments, such as IIS7 ability to finally have Apache like per-directory configuration files ala web.config (I hope I got the filename right). Also, this file can now be edited by hand, so you don't need go browse through a dialog maze to change a single option, although the dialog path is still available. They've also taken a step from the old monolithic design where everything was built-in, so you can disable components you don't need like FrontPage and ASP.NET, leaving you with just ISAPI or CGI that you need for PHP .
PHP's performance in IIS is still no where near Apache levels, hopefully Microsoft will be willing to lend us a hand in that respect and help to tune PHP's Windows performance, which I suspect is lacking primarily to TSRM handling. There are definitely a number of other features that IIS needs to catch-up to fairly compare to Apache, such as extensive mod_rewrite like capabilities. We've seen similar functionality from a 3rd party extension, but compared to the power of mod_rewrite it has A LOT of "growing up" to do, plus it is a 3rd party tool, so you won't be getting Microsoft support on this component. It would also be nice to see how IIS fairs against something like lighttpd especially in relation to static file serving and fastcgi extensibility. But, it certainly does seem progress in the right direction being made, although it still is a Windows only product.
The other interesting development was IE7, which certainly has some positive developments such as a developer module that seems to closely resemble a Firefox extension by the same name with certain features similar to those found in the FireBug extensions. From what I've seen the FireFox extensions are still more capable and offer more features, but it is certainly a BIG improvement over nothing at all. According to the presentations a large number of CSS bugs have been fixed (I need to install IE7 and check our various designs) and it finally (YEY!) supports PNG alpha transparency natively without having to resort to ugly ActiveX hacks. That is a very welcome fix, many years in the waiting for FUDforum where I use lots of alpha-transparent PNGs.
There were also many mentions of how IE is more secure, running in "protected mode" of sorts within Vista, but I think I'll err on the side of caution and wait to see how it fairs in the wild against all the old and new IE exploits. IE7 also support tabs, another feature that's a few years late, however they did add one nifty thing which is a "window preview" option that allows you to see contents of each tab. I've seen something similar done via Firefox extension, but it was quite clunky, it seems like a very neat feature that I hope Firefox and Safari (my current main-stay browser) will end up adopting in some way.
One other interesting feature was the ability for a site to provide a "search engine" provide interface in a manner similar to those you currently use for RSS. This means if your site and/or application provides a search you can automatically add it to the IE search list when the site is being accessed, meaning that a user can select your site's search directly from IE search box. The documentation on this feature is available here. Expect FUDforum 2.7.7 to have support for this feature. The only thing that's missing is an easy ability for a user to permanently add this search interface to their list of search options, that would be very neat feature IMHO.
IE 7, like Safari also offers a native XSL based formatting option for RSS, however in this case this option while nice for most instances does have one annoying drawback. If you site offers a customized XSL formatting for RSS feeds (BBC site uses this for example) it is always end up being ignored in favor of the IE variant (at least so it seemed when I asked Paul to try it on his new install of Vista). Hopefully, this is something that will be addressed before the final release.
One of the most interesting talks was given by Anders Hejlsberg, of C# and Delphi fame, on LINQ, a mechanism for querying C# in "sqlish" manner. One cool application is being able to perform a join been genuine SQL data and some C# components returning data in a single sub-set. There is more information available at the LINQ site linked above. While certainly not an answer to every problem for some situations it provides a very convenient short-cut, which is always good.
We also go to see some of MS's new editors and of course visual studio, which has a nifty feature where by when pasting XML it can actually do so in code form. Meaning that when you copy a XML block into it, it'll automatically convert it to the necessary code block needed to generate the same XML, which is a very neat prototyping feature. However, none of the tools shown supported any PHP helpers be they function completion or something more elaborate, so I can't imagine them being particularly appealing to any developer primarily working with PHP. This quite frankly is rather surprising given the wide spread adoption of PHP, even DreamWeaver has better PHP support then Visual Studio at this time. Given that majority of PHP code is developed on Win32 systems it seems silly that Microsoft is ignoring a large market of potential customers, who would be more then willing to shell out $$$ for a well built, GUI PHP IDE that does not take 30 mins to load (Zend Studio, Eclipse). For now I guess we can only hope that existing PHP ide's will consider adding the "xml paste" feature into their future releases via DOM or SimpleXML interfaces.
There were a number of other interesting talks such as the one about IronPython, a .net based implementation of Python. The demo showed a convenient mashup between Python and C# code within the same applications (a text-to-speach example in 4 lines of code), however it is hard to say how well it really works based on a short demo. I'd say that if you are developing apps on Win32 and happen to use using Python (C++ too good for ya? ) it would be worth trying out if only for the speed comparison, according to pretty graph it is supposedly faster...
Another interesting feature was CardSpace (a new and improved Passport), where you can now store your own private identities and choose which one to send to the site. It seemed sorta neat, but it seems to be a bit dangerous as many sites will try to ask for as much info as possible and since providing that data is only 1 click away, I suspect a lot more unnecessary private data will end up being exposed by all but the savviest of users. I mean, even someone not terribly tech savvy is likely to be alarmed when their favorite blog/news site/etc... starts inquiring about their address. There is also a concern of people creating "identity cards" on shared machines that end up being (ab)used by other users and so on, so security issues abound... Perhaps I am being overly paranoid here, but I think it is not necessarily a bad thing having to enter all the information you want into a site's registration form, to help you spot bad apples (sites that want too much personal data) and avoid telling your life's history to people who have no business knowing it.
We've also heard and talked a lot about improving PHP support on the Windows platform and a getting more solid (better stability and performance) PHP on IIS platform. Given what I know about interest in Win32 on the part of many core developers, I think the only practical and time effective solution on the part of Microsoft (if they are serious about this) would be to either put some of their developers on the task, something I think PHP community would be very supportive of. Or to simply hire someone(s) do to what they cannot do directly themselves for a variety of "image" issues. Anything short of this is likely to take far longer to be useful or practical. That said it is good to see that Microsoft is interested in seeing improved PHP/Win32 support and I definitely hope that something will come of it.
In summary, I think Microsoft is definitely trying to move in the right direction, many of their development in IE7 and IIS7 show clear attempts to catch-up to existing open source solutions. This is welcome development in my opinion, I hope they continue this trend in the future. This also means that Open Source alternatives are going to need to work even harder and improving their technical merits because now the competition is not just going to be on the marketing level, where MS has us beat, at least for now, but on the technical level as well. Ultimately, stiff competition on technical merits forces everyone to innovate and come up with new creative solutions, which in the end make things better for the users of technology.