Even though I’ve been writing JavaScript for 15 years, and working with (relatively) advanced JavaScript code for about 7 years, it was mostly another, old tool in my utility belt. With the gamut of languages that I deal with on a daily basis, they all tend to intermingle and get smoothed out without particular attention paid to any of them.
In the past two years, though, the beauty, intelligence, and power that is JavaScript has grown on me, and now I like to take long walks on the beach with it, buy it flowers. wait, that’s my wife. Anyways, JavaScript is now my favorite tool. Not only for its intrinsic power, but for the fact that so many great frameworks exist now that allow me to write code that is browser, platform, and vendor agnostic.
I’ve always shunned folks who LOVE Flash/Air, and LOVE Microsoft Silverlight, because I don’t. I don’t get swayed by marketing bullshit from major companies. I get swayed by fair licensing, responsible development, results, accountability to standards, and the overall touchy-feeliness of open source.
Now that I have some solid WPF coding under my belt, I felt like speaking out a little about how it compares, in my mind, to developing in Flex and Actionscript.
First, and foremost, I have to say [BINDABLE] FTW!! That one thing alone sums up the rest of my ramblings below, and you can probably skip the rest of this article if you wish after you read the next opinion.
The cultures of Adobe and Microsoft are best reflected in how you accomplish any development feat – Adobe did its best to make sure the “little stuff” is handled behind the scenes so that development can be done as quickly as possible, while Microsoft assumes absolutely nothing and requires you to write dozens of lines of code to achieve even the simplest of development goals.
If you want absolute, iron-gripped control over every single feature of your application, and want to hand-craft almost every piece of customization or abstraction that is needed, then the Microsoft stack is definitely for you – the uber geek, the one who takes tremendous pride in his mastery of every aspect of his application.
Unfortunately, WPF still has a little ways to go to catch up with the power and features of Flex. Of course, WPF is for desktop apps and runs as a native assembly, and doesn’t need a third party installation that is, admittedly, more bloated and use a bit more memory.
If you want to focus on functionality, and get products/updates released as quickly as possible, and could care less what magic goes on when you bind a Collection to a DataGrid, then the Adobe stack is for you – the quasi geek, the one who needs to do the design, the architecting, the development and the support, and doesn’t have time to spend hours hand-crafting simple tasks that the software should obviously be doing for you.
However, I think the folks at Adobe heaved a huge sigh of relief when Microsoft announced that Silverlight’s focus will now be for mobile development only. Given time, Silverlight would have been a superior product to Flex (on Windows).
For me, I much prefer the Adobe ideology. Perhaps it’s the Star Trek geek in me. My philosophy when it comes to development stems from years of watching Star Trek: The Next Generation. Does that make me an uber geek anyways? Perhaps.
When critical software and systems needed to be modified on the Enterprise, did you see Jordi sit down at a computer terminal, bring up a development environment and figure out how to expose the correct property change event, make sure it implemented the correct interface, open another file to map the property to the system, and then open another file to make sure it looked right (all in a proprietary language that NO ONE ELSE uses)?
No. By the 25th century, they finally get it. Superior engineers – whether they work on software, or warp engines – want the basic tasks done for them if possible. It saves time, and makes work a lot more fun. If I can add a new column to a dataset and have it displayed in my interface in 1 minute, then I’m all for it.
Sure, there are still people in the world who would rather take the 30 minutes to do it “right” by writing every single line of code needed to perform the task.
Sorry, not me. I got shit to do.
** This post has been removed due to my company’s Internet policies **