I was grateful to a link from the programming sub-reddit to the QB Express on-line magazine. Wow! A revelation. Flame wars, incoherent racist rants, Cellular Automata, maths, code listings and games, games, games. But what’s this – an article on the Singleton Pattern and another on project management. Quick Basic and the DOS window are alive and well and their proponents seem to be having lots of fun.
I suppose that the lure of Quick Basic and the DOS environment is both the straightforward nature of a procedural language matched to a relatively simple “machine”. Programming to the DOS machine cuts out a lot of options and probably a good few uncertainties – it’s just the code and the monitor – with perhaps a dash or two of DirectX magic.
Related link – http://freebasic.net announce v0.18.1b release. Hosted at SourceForge this is a project to construct a 32bit Basic compiler compatible with MS Quick basic but with a few extensions (like pointers) to make C libraries fully available to the developer. Sounds an interesting project.
In another direction I was reviewing Scott Hanselman’s diagram of the .NET ecosystem as I had hoped it would help me decide if I needed to get into WPF. I had read Eric Sink’s posts on 3D WPF and wondered if I should be reading Charles Petzold’s books on the subject. Is WPF the next big thing or is it destined to be a desktop niche in a Web 2+ world? I suppose part of the answer to that is tied up with Silverlight and it’s take up by developers but that just introduces another variable into the equation. There is also the issue of a Vista development machine for which office space must be found – and the jury is still out in Vista – certainly within corporate environments.
The .NET desktop UI and it’s attendant GUI development environment is essentially the same as the VB classic model – a wrapper for standard Win32 two dimensional bitmap windows and widgets. If I get this right, WPF starts afresh by describing the UI in vectors with a new graphical engine to translate those vectors to a bitmap for the current output device. WPF also allows us to describe “absolute” dimensions rather than measuring everything in pixels. <Asside> One of the genuine losses in moving from VB Classic to .NET was the loss of inbuilt absolute measurements as we had a smart backwards step to the Win32 “Any measurement you like as long as it is Pixels” approach. While twips were a bit weird it was nice to be able to “draw” a rectangle 10cm by 12 cm and know it would be rendered at that size on screen or to a printer (allowing for any slight rendering inaccuracies of up to a pixel)&tl;/Asside> Converting to a vector based graphical environment has many benefits – including smooth proportional zooming and (of course) 3D objects that can be rotated and “distorted” without complications or necessarily knowing a lot of math.
I suppose the big question hanging in the air is – is 3D going to enable new things in traditional application areas or deliver new sorts of applications? I might regret this but I rather suspect that 2D is going to continue to rule outside of CAD and modelling applications while the world of games is looking for rather more than can be delivered by WPF as it currently stands.