Do you know what a guy like me does when Sun Microsystems refuses to release JMediaPane, a Swing API that was announced almost three years ago ? Do I create a lot of JavaFX code and then go into a corner and cry ? No... I create the same media player in Microsoft WPF and C#. That's what people like me do. Yeah, Chuck Norris approves this message !


Sun needs to buy a freaking clue. Like, JavaFX is still not production ready and Sun is talking about individual cell phones and individual TVs as a sign of vendor success. Sure.. there is no freaking person on the planet that can run JavaFX on vanilla hardware, but why worry about such things. It's only been two and a half years. People got fired for being idle for three months during the dot com boom and Sun spends millions on a product that can't replace Swing. JavaFX is mobile WPF with Lisp/Actionscript instead of XML. Great for making small toy applications and bad for everything else. XML is just a data format. Because guys like me got a ton of it. Every freaking browser can validate XML and every editor and IDE has support for it, but Sun wants to be different.
(Although the presence of meta programming inside XAML sort of makes me understand why plain text JavaFX is used instead. Doing two levels of meta programming inside XML is a scary possibility. (XAML ControlTemplate and XSLT). I can, sort of, maybe, while drunk, understand why people hate XML. And Javascript + XML/JSON is even more convoluted.)
Anyway. Assemblies work great in C#.. until you get the wrong version and you have no clue what's going on. Not a big fan of WPF error messages either. And the crazy fragmentation in the Avalon/WPF 2, WPF 3, WPF 3.5, Silverlight 1, Silverlight 2 and Silverlight 3 department is kind of terrifying. In Java land we have crazy shit happening every four years, but in C# land this happens all the time. WPF and C# feels a little brittle, but that might just be my incompetence talking. My Java code can run on a seven year old Java VM, but that sure as hell is not happening with my WPF 3.5 application running pre-release Silverlight 3 extensions compiled as WPF. People claim that C# is better than Java and sort of neglect to inform the public that you need the latest version running on a single platform. Java is not really threatened by this. People are not going to throw away their million dollar investment just so that they can support Windows 7 Ultimate Server Ballscratching Edition With Perks And Blinkenlights. You could support seven platforms (Windows, OS X, BSD, Linux, HPUX, ZOS, IRIX) or two and a half versions of Windows. A lot of people are still on Windows XP deluding themselves into believing that they are Vista and Windows 7 compatible. And Vista is different from Windows 7 because of multi-touch APIs. In short, Microsoft is not always Microsoft compatible. In the past you had huge API fragmentation (DLLs), but now you get version dependent CLR lock-in instead. But again, I'm pretty new at this, so maybe reflection and correct exception handling is all you need.
You can now use Expression Dark as a WPF theme, but it's not supported. And I'm not even sure it's the same theme, since I find it a little hard to get the exact Expression Blend feel. Whistler Blue is also a great theme and so is Expression Light. The current way to assign themes is stupidly simple and stupid. Wrapping an XML namespace around your XAML code is easy, but referencing the stupid assembly in three different places gives me female angst (App.csproj, ResourceDictionary@App.xaml and xmlns:theme).


There are some rendering glitches in the WPF MediaElement. Some form of ghosting effect that makes people look like zombies. And the media seek code is totally wonky. Huge disk reads all over. I guess I will have to write some babysitting code or something. WPF is not that different from Swing in the resource department. The WPF renderer feels much faster and memory use is sort of similar. But this is just my feelings talking since I've only implemented a small fraction of the Java versions feature set. My Java software is still much more advanced.
I'm still coding Java and thinks it's great, but JavaFX will never happen for me before JMediaPane is available. I have no illusions about Silverlight on Linux and Mac, so I will stay with multi-platform code for now. But WPF is fun to experiment with. WMV lock-in is stupid though. The On2 FLV decoder in JMC feels better from a resource perspective. Scaling algorithms are messing with the HD formats and you end up with something that looks non-HD. I guess this is why Microsoft is working on that new bandwidth aware Silverlight format. The WPF MediaElement also doesn't feel as sharp as JMC JMediaPane. Microsoft seems to favor pretty over sharp when they scale things.
Sun talks about mobile phones while pimping JavaFX demos that can't run on mobile phones because of the underlying dependencies. What problems are we solving exactly ? A technology problem or a public relations problem ? When the JavaFX hype runs dry, it's on to the next bullshit project that will run on all your friendship bracelets ? Microsoft has been working on WPF for over five years. It's that hard. Now ask yourself. Do you really think Sun is willing to allocate the same resources and hire the right talent ? Based on my experience with Swing, I would say no. Why ? Because I got no freaking JMediaPane, the window shaping API feels like a hack, resolution independence is nowhere on the agenda, menus have terrible performance and my task bar menu is done in AWT. JavaFX will be as good as Java 2D and Swing. And Swing needs to get better. Because JavaFX without Swing is a myth. And so is WPF without any WinForm dependencies I guess. Because UI is a hard problem and money is tight. So compromises become part of reality.

I'm also checking out Nokia Qt and Phonon (how many people misspell that ?). C++ compilation time is a bit scary though. Doing effective manual compilation takes more talent than I currently have.
Finally... Google buys On2 for $106m ! And Schwartz spent a billion dollars on a database used by people who don't want to pay for anything. Wow, that's what you get when you "only hire the best and brightest", huh !