Friday, January 19, 2007

research topics followup

Following up on my previous rambling, I can now report having accumulated real experience with C# and the .NET Framework. I feel the need to come up for some air and reflect a bit. First of all, I can see C# now as a nice upgrade over Java. That's a subject for a different forum, so I'll leave it at that.

The main goal of this diversion was to evaluate .NET, in particular the GUI frameworks, and ponder the benefit of continuing to build a Common Lisp library on top of User32/GDI, which of course is the classic Windows GUI foundation.

While I don't think anyone truly knows how much longer the classic APIs will truly survive (or be usable), there is certainly evidence that Vista is more unmanaged code than managed code; furthermore, this same fellow has found heavy use of those classic APIs in .NET up through version 2.0 (and hence Windows Forms). One can find empirical evidence just by looking at the WinForms documentation -- there are facilities for directly accessing underlying HWNDs. And despite rapidly entering deprecated status, WinForms itself will live on for a while since .NET 3.0 directly supports it.

As an aside, I noticed while doing some deployment testing on WinXP how installing .NET 3.0 on anything less than a brand new machine is s..l..o..w. It was hilarious to watch the installer progress bar reach its 100% mark and then start over, with the label updating to state "This process is taking longer than anticipated." At least one MS representative has acknowledged this problem (scroll down to the bottom of the thread).

So my conclusion is that it will absolutely make sense at some future point to rehost Graphic-Forms, but I can see the current implementation still being relevant 5 or 6 years from now, if not longer.

Monday, January 1, 2007

research topics

A couple of my current research topics:

1) Whether I should (and if the answer is yes, then how to) rehost Graphic-Forms on the .NET Framework, thus abandoning User32/GDI?

RDNZL is proof that Common Lisp and .NET integration is possible. Dr. Weitz certainly got people's attention with that project (which as he points out was heavily inspired by earlier work on an earlier Scheme-based project). I also discovered that the SWT folks have proposed doing a port of that Java-based GUI library. So feasability does not seem to be in doubt. The question is whether it makes sense for my project.

2) What is it really like to develop non-trivial applications with XAML and WPF?

I've experimented with toy examples using Visual Studio 2005 Express plus the extra components needed for .NET 3.0, and viewed tutorials such as this one. Is this an accidental reincarnation of CLIM? It certainly has a familiar feel in some ways, especially the ability to do incremental and interactive development. I'd much prefer a sexpr-based syntax, if not a full-blown Lisp dialect. Does Guile support .NET?

Anyway, I will be devoting a big slice of my free time over the near-term to answer these questions.