Over the past month, there have been a slew of announcements that have the potential to rearrange the Internet development landscape. Building on the momentum of Flash and Flex, Adobe announces Apollo, a platform for building desktop applications using a combination of Acrobat, Flash, HTML, and JavaScript. This could be seen as direct competition to Windows, especially Windows Presentation Foundation (WPF) apps.

Then Microsoft turns the tables and announces Silverlight, a spinoff of WPF which is a platform for building rich applications for the Internet and the desktop, on Windows and Mac. Version 1.1 will include a subset of .NET, allowing developers to create apps in .NET languages such as C# and IronPython.

And then today, Sun announced JavaFX, another attempt to make Java appealing to desktops and devices. So far it consists of two parts. JavaFX Script is a new scripting language that makes it much easier to build Swing apps; it’s been open sourced. (By the way, JavaFX Script has nothing to do with JavaScript, which itself has nothing to do with Java. Blech.)

JavaFX Mobile promises to finally make Java consistent and useful on mobile devices. From everything I’ve heard, the current Java solution for phones and PDAs, Java ME + CLDC, is next to useless without proprietary extensions.

While JavaFX sounds good, I don’t know yet if Sun is tackling the main problem with deploying Java apps: a 13 MB download for the JVM, as opposed to a 1.4 MB download for Silverlight or 1.2 MB download for Flash.

Who will win? Who knows! This promises to be an interesting ride.