TechTalk with Anders Hejlsberg and Steve Ballmer

I had the pleasure of spending my Sunday participating in a Techtalk with Anders Hejlsberg and Steve Ballmer at the Microsoft development center in Vedbæk, along with around 350 other developers.

The focus was clearly on Hejlsberg's talk about the future of programming languages, and Steve Ballmer dropped in directly from the airport giving a short so-called pep talk and a little Q&A.

Hejlsberg started out with comparing development in computer hardware with the development in programming languages, stating that there hasn't been a dramatic change from the old Pascal days to C# today - actually the "hello world" in C# is slightly more verbose than in Pascal. At the same time hardware has developed so fast, that his CPU today is a thousand times faster than when he wrote Pascal.

So programming languages evolve very slowly compared to hardware. But what will a mainstream programming language look like in the future, and how will language designers try to help software developers become more productive?

Hejlsberg described how he had literally wasted a couple of years exploring the possibility of doing programming with graphic UI and concluded that sometimes a line of code can be worth a thousand pictures.

He went on to discuss some of the trends that we are seeing in current languages. He discussed how declarative programming will be a great influence in mainstream languages, and talked about functional programming with F# and immutable types and programming with and without side effects.

Hejlsberg introduced what he calls "the elephant in the room", that everybody knows is there, but no one talks about. This is the problem with keeping a presumably ever increasing number of processors busy with our code. In that connection he talked about the Parallel Extensions to .Net 3.5 that is currently out as CTP, and did a little demo showing how it works.

He mentioned dynamic programming languages and features like type inference, that lets us work like we are dynamic, but lets us keep the type safety of static languages.

His prediction is also that we will se a lot more to Domain Specific Languages - languages that are created for a specific purpose instead of being a general purpose language. Especially the internal DSL's like LINQ will find their way into the future languages.

So in short Hejlsberg thinks future programming languages will be declarative, concurrent and dynamic, and the borders between language paradigms will be erased, and we will se the mainstream languages like C# and VB evolve with along the lines of these described trends to become multi paradigm languages.

It was a very interesting talk, and definitely worth the rather long drive from Odense on a Sunday. The whole thing was taped, so I presume it will be available online at some point.

ASP.NET MVC Preview 3 Released

The MVC Team has today released the latest preview of the MVC Framework.

Last we got the Interim Release, which was a source refresh and not an official preview.

The previews are probably more stable in feature set, and are relatively well-tested, whereas the interim release feels more like a focus-group test with the developer community, of new ideas to the feature set that are not decided or sufficiently tested yet.

This is a great Idea - it opens for dialog, and makes me feel that we can actually still make a difference to the final product.

This Preview 3 release should probably be considered as the result of this, and I am very excited to see, what changes we are going to see.

So far i have noticed the following:

In the Interim release it was required that you return an ActionResult from an ActionMethod, this is no longer the case - you can choose either way, void or ActionResult.

Furthermore as specialized versions of an ActionResult, the following types are added:

  • ViewResult: Renders the specified view to the response.
  • EmptyResult: Does nothing. Returned if the action method must return a null result.
  • RedirectResult: Performs an HTTP redirect to the specified URL.
  • RedirectToRouteResult: Given some routing values, uses the routing API to determine the URL and then redirects to that URL.
  • JsonResult: Serializes the specified ViewData object to JSON format.
  • ContentResult: Writes the specified text content to the response.

Especially the JsonResult looks very interesting for Ajax scenarios.

Then we see some improvements to the HTML helper methods, and some improvements to routing, like allowing all special characters in routes and the addition of IgnoreRoute() method that lets you ignore certain URL patterns in processing.

All in all, very interesting and I am certainly going to dig deeper into this the next couple of days, getting my MVC applications up to date.

Related links

Source Analysis for C# released

If you are the nitpicking kind  of developer, which I think I must confess that I am, you might be interested in the newly released tool Microsoft Source Analysis for C# 

The tool also know as Stylecop analyzes your code with regard to best practices and some style and consistency rules. It differs from FxCop as it analyzes the source code directly instead of the binaries.

I just had to try it out immediately so I installed it, and it integrates nicely with Visual Studio, and you find it in the Tools menu.

toolsmenu

I am currently working on a artificial neural network library, so I decided to give it a whirl with the analysis tool. Its a fairly small project.

sourceanalysis

I had 309 errors mainly consisting of lacking headers, using statements not in namespace declaration, single line comments with three slashes and calling members without "this" prefix.

I think its a great tool, but I am not sure that I like all the rules - I am absolutely certain that I would not enforce all these rules on all the projects on my team.

settings

Fortunately it is possible to turn of the rules, that you might not like. Although the settings can't be found on the Tools menu - you find them by right clicking your project.

menu

It would appear that the settings are set for the project, and they are saved in an xml settings file called "Settings.SourceAnalysis" in your project folder.

If you put a settings file in the parent folder, it is enforced on any project in your solution if you select the option to "merge with settings file found in parent folders" in the settings dialog.

menu2

You can also integrate the analysis in MsBuild.

Related links:

IE6 VPC Refresh Now Available at IEBlog

Last week I wrote a post about the IE6 VPC that is going to expire on the April 1st, with a somewhat harsh tone. Today I am glad to realize that a refreshed version has been made available for download with an expiration date of July 23rd.

The good news is, that the VPC releases will be refreshed as long as it is necessary. The bad news is, that you need to get the new release every few months, unless you have an MSDN subscription.

The download has been reduced to just under 400 MB, and the content hasn't changed. WGA still doesn't work on the virtual machine, but if you have a specific application you need installed, let them know, an leave a comment in the Post on IEBlog and it might be adressed in future releases.

Get the new IE6 VPC

April Fools Day: Internet Explorer 6 Application Compatibility VPC Image

I don't want to start any religious feud about which browser is best, but there is one point, that is bothering me a bit.

We have been forced to utilize virtualization in order to test web applications reliably in both IE6 and IE7 on the same machine, which is a pain in my behind. Microsoft chose to release the "Internet Explorer 6 Application Compatibility VPC Image" that allows you to run a IE6 testing environment as a VPC, without getting a license for that second install of Windows XP.

This release is of course something by way of compensation, but to my great astonishment i realize that this image expires on April 1 2007. If you look at some statistics IE6 is still the most used browser - im not sure this is a completely accurate statistic, but that doesn't matter - the point is, that IE6 is still widely used, and we as developers need to test our applications on IE6 even after the VPC expires.

I don't know about you, but I will sure feel like an Aprils Fool when this happens. I sure hope for Microsoft that they release a new version with an extended licence.

Commerce Server 2007 Training material and Books

Anybody starting out with Commerce Server 2007 have been in the same situation, lacking ressources for training, as these have been virtually non-existant. This obviously leaves the learning curve rather steep, as you are pretty much on your own.

I started out with a clean install on a Virtual PC, a copy of the Starter Site and a lot of time experimenting and trying things out. Thats a pretty good way of learning, but you could really save a lot of time if you had a few training ressources to get you started, and to explain the basics.

Well this is your lucky day, because Max Akbar has just announced on his blog, that there is upcoming training material, that is in the final testing phase, and that - within two weeks - will be published to MSLearing .

Furthermore there seems to be plans for a book, so this is very exciting. If you'r working with, or have an interest in, Commerce Server - be sure to subscribe to Max's blog feed .

Getting your MicroISV bought by Microsoft

I was listening to The MicroISV Show #14 featuring Don Dodge, the Director of Business  Development  on Microsofts Emerging Business Team, which is a very interesting show for any MicroISV, who might have dreamt about getting the call from Gates himself with a big cheque in his hand.

Don talks about Microsofts shopping sprees in the MicroISV mall, and lifts the vail a bit on how to get in Microsofts searchlights. Actually last year Microsoft bought 19 small companies, who primarily weren't VC funded - they basically were MicroISVs. So if your looking to get bought by Microsoft, heres a few pointers:

  1. Any aquisition starts as a partnership with Microsoft
  2. Get a network within Microsoft. Use the Microsoft Startup Zone to get contacts.
  3. Microsoft is looking for strong developer personalities and teams, so feature yourself  as such.
  4. Having a leading edge products is also a step on the way, especially if your product is covering an area where Microsoft has a weak offering. So Microsoft is looking to fill in the gaps.
  5. You need to want to scale to millions of users - and not be a maverick going your own way.

So Microsoft is not looking for a quick buyout of a good idea. Rather they looking for the best innovative developer teams, who might happen to have a leading edge product and wants to create a long term working relationship with Microsoft, and maybe wants to influence Microsofts development in the future.

The dream of Bill Gates himself suddenly on the doorstep with an oversize cheque, followed by the immidiate departure to the Bahamas, is most likely not going to happen.

But if you have ambitions in that area, it is actually possible to get the attention of Microsoft, even as a MicroISV if you focus. And even if Microsoft isn't looking to purchase you, you might get great mileage out of a close partnership with Microsoft - they do know a lot of VC's and business angels, who are looking for someone like you.

Posted March 9, 2007 by Joachim Lykke Andersen
In MicroISV | Microsoft

Comments [2]