.NET and Platforms

I continue to be encouraged about how .NET is developing. Which is nice, because I’m also investing quite a bit of my personal time in learning it. For a while it looked a bit wobbly, but now that the Hailstorm nonsense is receding into the past and MS seems to have slightly reduced its determination to brand every new and existing product with a .NET name, some of the focus is shifting back to the development tools and the platform.

Its looking likely that I’ll spend a quarter of my career with .NET. After years of struggling with MFC, wndprocs, COM threading models, etc. I’m glad we’ve got a platform thats so rich and powerful.

Now just give me generic types and deterministic garbage collection, and I’ll be happy. I can live without multiple inheritance, but support for contracts in the CLR would be nice.

Perhaps because the number of “What exactly is a web service” articles in the press seems to be going down, I’ve noticed more discussion of running .NET on non-Windows platforms. The Register (US) has a fairly speculative article about Borland getting interested in Mono as a way to target Linux. As far as I know, a few current Borland products ship with experimental, command-line compilers that emit assemblies. They do seem serious about the platform, though, and this makes sense. Its got to be easier to target a single API and MSIL, than maintain separate UI designers and backends for each development tool and operating system.

On a similar theme, the Register (UK) is reporting that “PalmSource intended the (sic) make the new OS Microsoft .NET compatible, and will likely partner with others to provide a run time for the platform.” I can’t see how Microsoft would licence the compact framework to Palm, given that they’re such an obvious competitor to the Pocket PC, but it should be possible for a strongarm-based Palm to run a port of the Mono runtime. Presumably it would be similar to the CF, but I don’t know if the Mono people have plans for this. Their focus (understandably) seems to be IA-based desktop systems running Linux. Another option would be thePortable .NET project. As a Palm user, I have mixed feelings about this. I like my Palm because its simple and lightweight – not bogged-down lots of extra features that I don’t need. As a developer, though, having a CLR in the PalmOS would be nice. I hope Palm can hold-out against the PocketPC long enough for this to happen. I’m not hopeful.

Longhorn

Some very naughty person indeed has leaked an alpha build of Longhorn to the net. There’s an interesting summary here of what seems to be in it. After (obviously) the “softer” watercolour UI and animated My Documents icon, the most interesting features for me are the Avalon API and the WinFS file system.

Avalon is described as “an XML-based successor to the Win32 API”. I dunno. Sounds like SOAP or XML-RPC. Maybe there’s just one function with a couple of XMLDOCDocument* parameters, or something.

WinFS apparently allows SQL-Server to take over NTFS’s role as the OS’s base-level storage subsystem. That is, all your files are stored inside a SQL-Server database, and NTFS is just a legacy API into that database. This strange inversion was apparently first reported here, but I remember Jon Honeyball mentioning this idea at least a year before that in DNJ magazine. I can’t find the article, though…

Frankly, my mind boggles at this. Files as objects in a Yukon-type DBMS that’s acting as a sub-system of the OS and hosting the .NET CLR? I guess that’s one way to integrate .NET into the OS, but I’d really appreciate a block-structure diagram of this stuff to understand the dependencies. And what about the ability to write stored procedures in C#, VB.NET, etc? Would that subsume what we currently think of as operating system scripting? Yikes.

Interview with Alan Cooper

Visual Studio Magazine has a very interesting interview with Alan Cooper – the original architect of Viual Basic from way back before Microsoft bought it from his company. Lots of insightful comments on the realtionship between how we build software and the way that users experience it, and a fairly positive verdict on .NET. Good stuff: now I want to go and buy his books.

Palladium

Some notes an a Presentation on Microsoft’s Palladium DRM system. This is the first description I’ve read with some technical detail and no marketing bollox. The trust-based architecture sound vaguely similar to that of the XBox, which was cracked a while back. It’ll be intersting to see how this plays out over the next few years, especially if general-purpose hardware devices like hard drives start to incorporate DRM technology too.

They Write the Right Stuff

The Write the Right Stuff. Grown-up software production vsMicroserfs. Written for a general readership, this is one of the better non-technical articles on software engineering I’ve read. A very refreshing antidote to our industries’ all to frequent rhapsodizing about the latest system architecture fashion or complex middleware layer. If I could have one sentence from this article pummled into the head of every software development manager, it would be “Don’t just fix the mistakes — fix whatever permitted the mistake in the first place.”

A few links

Deeply cool wallpaper. Check out the free gallery. I have Morning Light on my system at 1152×864 – it reminds me so much of the forest on Myst Island and Selenic. #

The Onion: New National Parks Website Makes National Parks Obsolete. #

Extreme Ironing. Love it. #

Explorapedia Nature: Earth Rotates in Wrong Direction. This behaviour is by design, no doubt. Theres a whole load of these atHoppoDoc. Q253912 is splendid…

Maths, misc.

Been nosing around a few maths and physics sites today…

I first read Godel, Escher, Bach at the age of about twelve when I borrowed it from the library back in Hull. I didn’t understand much of it at that age, but G?del’s Incompleteness Theorem blew my mind. It still does. There’s a whole load of explanations, in English, of this deciptively simple theorem. I prefer the one by Rudy Rucker – somewere, I’ve got a copy of Infinity and the Mind that I haven’t read it for at least ten years.

I like the idea of Penrose Tiles – you can tile an infinite surface without the tile pattern ever repeating. You can play with Penrise tiles using this rather smart Java applet. There’s an interesting site about the mathematics and history of tiling: the galleries showing the full set of plane symetry groups are very beautiful.

Now goggle your eyes at the Penrose Tribar.

M-theory is a kind of generalisation of Superstring Theory, which is itself what we gor when someone added extra dimensions to the old idea of String theory (sooo Eighties, darling). Greg  Egan‘s bookDiaspora uses this type of physics to make possible a very complex plot. Recommended if you like hard SF.