Having just finished up a 3 month stint building out our proof-of-concept kiosk for The North Face, I figure it’s time to kick down about my experience. So I’m a Flashgeek – I’ve been working with Flash since Flash 3 and pretty much learned everything I know about programming from my code mentors ( you know who you are ) and dabbling in ActionScript. AS2 is ( was! ) the closest I’ve ever come to a strongly-typed language. That said, AS2 is still pretty loose with what’s allowed, and there are still a lot of gotchas that only come from having pulled yourself up by the bootstraps with the rest of the Flash development community.
Don’t get me wrong, I love Flash. I think in ActionScript. Knowing the happy and dark spaces of a platform makes you that much more efficient — and it lets you concentrate on architecture instead of chasing problems all day. So what about WPF? It’s, well, “liberating”, to say the least. C# is very elegant. XAML is a bit verbose, but when it comes to layout and styling it’s top notch. Visual Studio is the IDE that eclipse dreams of becoming one day. Compile time is fast, debugging support is powerful, and the .NET framework is *immense*. Imagine not having to roll-your-own . Results come quickly. The WPF API is well-thought-out and the layout manager makes setting up flexible UIs super simple. And the designer/developer split really exists. No more unmergeable binary files or “over-the-wall” lobs from design. You can literally start prototyping when IA is complete and let skinning exist on a separate thread without compromising logic. Imagine when IA starts working in Expression ( or similar)!
So what /didn’t/ I like? Well, the most frustrating thing was coding against a moving target. We were getting code drops every 3-6 weeks, often with breaking API changes. Perf still really isn’t there, but for the TNF POC we were definitely pushing the boundaries of the platform. It’s not always obvious /how/ to do something – the SDK is not totally complete with code samples — we couldn’t have done what we did without good hands-on support from Microsoft.
Oh, and it only runs on Windows. For now. But heck, it’s still in Beta, and they have 14 months ( Nov 2006 methinkst? ) to sort out all of these issues.
Honestly, the pros seriously outweigh the cons. If you know Java or AS2 intimately, it’s really just like learning how to speak with a different accent. And some phrases in your vocabulary have been shortened to single words ( imagine never writing another XML de/serializer again – just feed it an XML schema and let .NET create typed objects for you. In like 3 lines of code! drool…. ). Seriously, though, I wonder if I’m more amazed because I’m an AS2 developer who has never used Java – it may be less exciting for you J2EE geeks. But hardware accelerated 2D and 3D? Put that in your Swing and smoke it!
maybe that’s more like $0.03.
I can’t wait to see how Flex 2.0 ups the ante, it’s looking really nice so far.