Pär 0 Comments

Oslo is a new modeling platform and consists of

  • a language for authoring models and DSL's, called "M";
  • a graphical tool for interacting with models and DSL's, called "Quadrant";
  • a repository for storing and sharing models, called..."Oslo" Repository?!

As I understand it, the goal for Oslo is to make it easier for developers to communicate with users/customers/stakeholders as well as make it easier for developer to communicate more naturally to the machine - or at least in a way that's sort of "technology neutral". It's programming a higher abstraction level...

"Yeah, but modeling tools have been around forever", you might think. That is true, and they've been used and sometimes generated code and sometimes not, and sometime even could do reverse engineering. The thing with "Oslo, as I got it, is that there's a runtime that understands the model as well. We don't have to generate/reverse engineer to an from code - the runtime can execute the model as it is.

Microsoft already has a couple of product that are kind of model driven, for example Sharepoint and Dynamics, with their own DSL's (CAML/X++), their own visual designers (Sharepoint Designer/MorphX) and their own repositories (in DB). Wouldn't be nice if they shared the same repository? Extended to suit their own demands of course, but yet shared. The same goes for the visual designers and perhaps for the DSL's as well. But the thing is that neither the creation and parsing of the DSL nor the creation of the visual designer itself should be a concern for the product team them self. They should only have to be concerned about their domain and to make a DSL and visual designer that support their domain, and not have to be concerned about the domain of making a DSL and making a visual designer itself. Will that happen? I don't know - but it's an interesting thought.

I will not go in to all the details here, instead I urge you to watch the sessions, I promise you that it will be worth the five hours.

Here are the sessions from PDC

I saw all of the above sessions in that order, the same order they where given, and it was probably a good idea. The first one was a pretty good introductory, and the three in the middle dived down in each tool. However, when leaving all of the four first session I was thinking "This is nice, but what's it good for - how am I going to use this". In the last one Chris Anderson did a wonderful job of putting all the pieces together and most of if fell in place... I think... I hope...

And you probably want to check out what MSDN has on "Oslo".

As a final word on this topic, this is just a technology that has started and is far from ready - I think the word Box and  Anderson used was nascent. It going to take some time to get things right, but eventually this is going to have a big impact on the way we'll write programs in the future.

Pär 0 Comments

I keep coming back to a sentence in Andy Hunt and Dave Thomas The Pragmatic Programmer and that's "Learn a new language every year". Earlier this year I started to look at F# but it's hard to keep up a good momentum when the current project just spins at full speed (or above...).

The question is here whether Oslo "M" counts as a new language or is something completely different - because the story on Oslo is that I have to learn that in a near future.

Anyway, I decided to to indulge my self and pick one or two sessions just to pick up the trend outside the ordinary imperative C#/VB way of programming (and not related to Oslo).

So going to Luca Bologneses Introduction to F# was obvious for me, first of all to catch up with stuff that have been changed since I looked at it and partly to get an indication if I understood the language at that time (and if I still do). I could not spot any differences, but there have been  new releases of CTP's so there must be something - not obvious to me. He did a great job of explaining the language and the paradigm of functional programming, at least in F# - I have nothing to compare to. It actually feels like I got it the first time, but there's always the small details that I missed and hade the opportunity to pick up this time. And he explained how the area of parallel programming is done in F#, a topic that I completely ignored earlier but as it have bee quite a buzz around it this PDC I was curious how it was done in F#. So the bottom line on this session is that if you're in anyway about to start doing F# or just curious about it - see this session!

The second session on my personal indulgence theme was John Lam's IronRuby - The Right Language for the Right Job. Ruby has been on my to-lear-list for quite a time now and I figured that John Lam was the guy to see, at least in the MS arean of Ruby. I must admit that I didn't got it all the way when sitting in this session, but to my defense I would claim that it was the last session on the first day and I was heavily jet-lagged. It was interesting, thou, and the feeling is that I'm going to look at this - eventually. I guess that I'll look at this session a couple of times and buy a book on the topic and finally put my hand on the keyboard, but with all the other new stuff here at PDC I don't think I'll have the time with Ruby in the coming 6 month.

The last reflection on this outside the box thing is a recommendation I've got from a other attendees here and that is the session on Declarative Programming Using XAML. I don't know if this qualifies as "outside the box", but it's not C# nor VB... At that time I was out of indulgence point and have to be on a real job related session. But this is one of the sessions that I'm going to see on the flight home.

Finally I'll say that I strongly agree on the theses of learning a new language every year, you don't have to master it or even just be good at it. It's just enough to look at it, pick up the idioms, the way of thinking, the way to see the world and the way to solve problems. That'll make you a better programmer in you "first language" because it'll make you a better programmer period.

Pär 0 Comments

So, it was time for Ray Ozzie with the friends "du jour" to talk about the front end tools - the keynote yesterday was all about the back end.

First of all he talked about the evolution of the PC and continued with looking at the differences as well as the similarities between development for the PC, the Web and the Mobile platform.

After that it was time for a quick walk thru of Windows 7. My first impression was that I didn't see anything new but small pieces of eye candy and then they talked about how easy it was to connect your work laptop to your home network and sharing music etc. so the second impression was that it was targeted towards the home and entertainment market.

I guess they planned it that way, that we should be a little bit confused and disappointed, because now they turned the focus on what it's going to be for developers and more tech centric information. It turns out that Windows 7 will help us developers interact more closely with OS, like Ribbon UI, Jump Lists, Multi-touch, Ink, DirectX etc. The goal is thst it should have decreased memory, disk I/O and power consumption and att the same time have increased speed (especially faster boot), responsiveness and scaling possibilities.

There was no time plan for release, but possibly a beta early next year and they hoped for a "three year release cycle experience" and that will place the release somewhere around late 2009 - early 2010 if my memory serves me right at this moment.

And then came ScottGu...

He started out with some talk about improvements for developers, the new WPF Toolkit that will work on all versions of Windows. He continued to talk about as well as demoing Visual Studio 2010. It looks nice with lots of functionality that I both have missed as well as functionality that I didn't know I've missed but as soon as I saw it I immediately knew that I would use it. There was a lot of talk about ASP.NET 4 and the web development experience in VS 2010 in general - WebForms, MVC and AJAX... and of course Silverlight with the Silverlight Tooolkit and the Silverlight Designer in VS 2010.

The keynote continued with demonstration and facts about the Live Mesh platform and the Live Framework, quite interesting actually. No directly impact on what I'm doing today but the potential is huge so as usual this topic goes to the list of "keep an eye on" or perhaps "should play with". The problem is that both those lists already contains quite a few things already...

The first keynote finished with a quick demo of Office 14, at first no big difference. But then they interactively did simultaneous update to the same document from to PC's and as a further bonus one of the word instances was Office Web which completely ran inside the browser - clearly competing with other online office suites.


After a short break, the second keynote started...

Don Box and Chris Anderson entered the stage and completely blew my mind. The showed how to work with the fluffy stuff from yesterday - Windows Azure. The went through a complete example of how to build services and applications "in the cloud". Short, sharp but deeply enough they took away all the fuzziness about Windows Azure. Brilliant, thank you!

Pär 0 Comments

This must be the third or fourth time I was viewing Anders Hejlsberg and he was brilliant as usual, with lots of small examples he easily explained what coming in C# 4.0.

The main thing with C# 4.0 is that it is opening up easier cooperation with dynamic languages by the the keyword dynamic. Declaring a variable as dynamic mean that no checks will be done at compile time but rather just invoke the methods at runtime.

Other news in C# 4.0 is going to by named parameters and default values for parameters, pretty much the way it always has been in VB. This together with the dynamic keyword makes it much easier when working with COM objects, especially Excel and Word - in the way that you doesn't need to type cast the result and you doesn't have to provide a long list of "ref missing" as parameters to methods on COM objects.

In the end he talked a little bit about what might is coming after C# 4.0, and it was mostly about meta programming. Interesting, mind bending and a little bit strange. But he also mentioned that all or most of the current programming paradigms, object orientation, functional programming and dynamic languages will come together. Perhaps not only in C# but more of a "the new paradigm is multi paradigm" style.

He did also talked about that Moore's Law isn't valid any more regarding processor speed, and connected with my pre conference day, and talked a little bit on the way we could and should address the question on parallelism - from a C# language perspective. The conclusion on this is that's about time to really start looking at this parallel, concurrent programming stuff.