I appreciate all the advice people offered in response to my last post. I have decided to stick with my previous choice of WPF for the UI. I hope it doesnâ€™t turn into a quagmire.
SWT and Swing would require me to build a lot of low-level UI functionality myself. Been there, done that. It’s a real bummer having to build complex infrastructure while you are trying to explore design options.
Flash has just the right UI model, is appealingly simple, and is well established. But ActionScript is still a toy programming language, and Flex Builder is still a toy IDE. I canâ€™t find any convincing examples of complex apps built in Flash. Certainly none of the Flash developer tools are built in Flash itself. Dog food, guys. Buzzword is impressive, but I am not reassured when I hear that the Adobe developers themselves are amazed by it. Sorry, but building a word processor should not be an amazing feat for a modern UI. I might be able to get some quick prototyping done in Flash, but I am afraid it would run out of gas before long.
WPF reminds me of the early â€œcomponent frameworksâ€ in the 90â€™s like OLE, OpenDoc, and COM. These frameworks popularized the ideas of properties, events, reflection, and dynamic loading. Since the mainstream languages of the day (C and C++) could not handle these concepts directly, they had to be emulated in libraries with massively complex APIâ€™s. Eventually languages evolved to incorporate these features directly, making component programming much easier, as with JavaBeans and .NET. WPF is the same story all over again. It simulates a whole new layer of semantics involving declarative bindings between dynamically attached properties, a â€œstyle sheetâ€ semantics for property overriding, â€œrouted eventsâ€, a sub-language of time-varying functions, and a limited code-data isomorphism via XAML. The resulting complexity is really a plea for new programming language semantics.
JavaFX can be seen as a response to this need. Sean McDirmidâ€™s SuperGlue is another. These may be examples of the next wave of language evolution. UIâ€™s have been a driving force in language design ever since the invention of the GUI, which gave rise to Smalltalk and OO. But these new wave languages are still experimental, and I need to get going on building the wave coming after 🙂 . Right now WPF is tubular.