Flash is un-webby?

by Neil Middleton 12:33 am Tuesday, 1 July 2008.

On my way home today I was listening, as always, to one of the many podcasts that I subscribe to.  In this particular instance, I was listening to podcast #11 of the stackoverflow.com podcast hosted by Jeff Attwood and Joel Spolsky.  The podcast follows the development of stackoverflow.com, but turns largely into a general chat about web technologies and their use.

What I was listening to specifically was a chat between the two answering a question from a listener asking about what they thought of Silverlight.  Generally what they were saying was correct (as I see it) except for one point.  Joel pointed out that he thought flash and silverlight weren’t great for apps online due to factors such as the inability to bookmark pages, copy and paste text etc etc.  He was advocating that web applications were best based in an AJAX interface, it any interaction was required.

Joel then went on to say that he did not believe that Flash or Silverlight would be adopted for online applications as they were distinctly “un-webby”, giving you more of a rectangle in a browser window that tried to be a desktop instead.  Both Joel and Jeff agreed that this would prevent mainstream adoption of Flash and Silverlight for online apps.

However, as you may have predicted,  I disagree with this.  The reason for this is down to one fundamental part of their argument.  For me, the web is a connected set of applications: browsers, email clients, ftp clients etc etc; all providing different services in different ways.  One new element to the party is that of internet-connected applications, which is exactly where I see flash and silverlight winning over anything else.  The problem isn’t the un-webbiness of the rectangle in the browser, the problem is that the browser is built to suit paradigms that are now several years old, and a bit behind the times.  For instance, when was the last time you wanted to create a bookmark in an application other than your browser?

I see tools such as Adobe’s AIR changing the web by quite a margin, dropping the browser back to a pure surfing device.  OK, you might have a very website orientated app (such as Google) which will always be best suited to AJAX and the browser, but others such as eBay make make more sense as a proper standalone internet-connected application (as the San Dimas development is trying to show).

For now though, we are definitely caught in a tricky place where technologies like AIR and WPF are very new and everyone is figuring out exactly what you can do with these new tools.  As experience from the development community increases, as well as interest from prospective clients, I believe the internet will start to change into something very different to the one you are familiar with today.

Comments (5)



Flex vs Silverlight (in my eyes)

by Neil Middleton 11:03 pm Sunday, 29 June 2008.

I’ve been spending a bit of time recently taking a look at the RIA market as a whole and the tools that are available within.  During this time, I’ve been spending most of that looking at Adobe’s Flex and Microsoft’s Silverlight.

For a little context, for those of you that don’t know, I am mainly a server-side developer, with a background in tools such as ColdFusion, Rails and Flash.  I have some knowledge of Flex, but not enough to make me truely dangerous (yet).

So, what’s the deal?  Well, in short, Flex is simply a library of components that are used to develop applications using Adobe’s flash runtime.  This gives you a massive amount of scope for what’s possible, as well as a fairly safe bet that any users you might have have the flash runtime ready to roll.  Development is done by writing MXML and Actionscript 3, preferably inside the Flex Builder tool (based on Eclipse) that you can buy from Adobe.  Flex runs on Windows, Mac’s and Linux in some form, and can be developed for free due to the fact that the runtime itself is open-source.  One feature definitely worth a mention is the support for AMF - a highly compressed binary format for data transport.  This protocol makes it highly performant when chucking data around the place.

So, let’s quickly mention silverlight.  Silverlight is Microsoft’s attempt at Flash, but with a .NET backdrop.  In it’s simplest form, Silverlight is a subset of WPF, the Windows Presentation Foundation, that a whole stack of Windows UI is now built with.  This means that any .NET developer worth his salt should be able to adapt and develop silverlight applications fairly easily.  Now there’s a problem here - I’m a Mac user at heart, and although I have a windows laptop available at the office, OS X is where I prefer.  However, as a Silverlight developer, you are bound into Windows as you’ll be needing tools such as Visual Studio 2008 and/or Expression Blend.  This doesn’t sit too well with me - if you’re developing for the web (any platform), you should be able to use any platform to do so.

So, what are the key differences other than those mentioned above?  Well, for me, Flex appears to be a bit more developer friendly - I can do all the things that Silverlight can do as well as use AMF, and the Flex Builder tools (when combined with Adobe’s creative suite) seem a little nicer than the Microsoft offering.  I can develop Flex apps on any platform, and run them pretty much anywhere.  I also like the way that Flex can seemingly sit with whatever tools you might use elsewhere, Silverlight definitely lends towards .NET due to the fact that the IDE and languages are used elsewhere in the platform.

On a side note there is something that bugs me about Silverlight apps, and that is the look of them, when using the default styles and skins, for instance, let’s take a look at a flex and silverlight app side by side (using the default skin):

First up, Flex:

and Silverlight:

Flex just seems to look smarter and less “Tonka”.  Silverlight has the look of a Fisher-Price “My First RIA”.

One other big thing worth mentioning, although slightly off topic, is Adobe AIR - I don’t see anything from Microsoft, yet, that appears to offer what AIR does.  AIR allows me as a web developer, to create desktop apps using Flex, Flash, HTML, JavaScript etc, and deploy them whereever I like.  Microsoft does have WPF, but that’s pretty much limited to recent windows installations and doesn’t really suit itself to web developers.  AIR is a huge selling oppourtunity for small agencies, and Microsoft just don’t have anything to offer as an alternative.

Lastly, it’s worth mentioning the vendors themselves.  Both are great companies, with good product lineups, but there’s one thing worth noting.  MIcrosoft seem to understand developers and the creative agencies out there better than Adobe by a long shot.  For instance, the partner programs that the two companies offer are leagues apart, the Adobe one being hard to justify the ROI on.  Micosoft are genuine about working with partners, and helping them to help themselves, providing support, software and training where needed.  Adobe on the other hand seem to show no interest at all unless you are shifting LiveCycle licenses, which is a damn shame as they win in almost other respects for the budding RIA developer.

So, in summary, my views are this - Flex beats Silverlight.  I prefer the development story and the fact that I can develop it how I like and where I like.  If I were starting up an agency with guaranteed work I would go for the Adobe products every time…

BUT, and there’s a few buts, I don’t have guaranteed work, I need some help getting it - so Microsoft comes in to play.  With their awesome partner program, I have the resources available to me that help me be more successful as a business.  The question is, does grinning and bearing the slightly poorer tools make it worth it?

Comments (7)



The big platform debate

by Neil Middleton 6:25 pm Friday, 24 August 2007.

As you are probably aware there is a choice now for CFML developers (CFMX for Java, Bluedragon for .NET).  But, for now I’m not interested in CFML, I want to hear from people about the underlying platforms.

Therefore, if you are a Java or .NET fan - why should I choose your platform over the other for day-to-day web development?

The things I want to hear most about are:

  • Cost
  • Performance
  • Reliability
  • Flexibility
  • Development Times
  • Front-end technologies and ease of use
  • Data tier integration
  • Support
  • The bad bits (i.e the stuff you don’t find out about until trying to fix a bug the night before a deadline)
  • Tooling (Eclipse vs Visual Studio)

…and finally…

  • How does it help you with CFML development?

Tell me what you think…

Comments (0)



Looking to pick up some .NET skills?

by Neil Middleton 10:18 pm Tuesday, 21 August 2007.

If like me, you are a CFML developer and looking to pick up additional skills (namely .NET) you might be interested to know that there are three webcasts on Microsoft.com that you can watch explicitly targetted at yourselves.

Personally, I have only had time to watch a couple, but if you would like a quick primer in ASP.NET and how it directly relates to CFML, check them out. Even if you have no interest in .NET, it’s always good to be aware. If you are Bluedragon.NET user, then these are definitely worth a look.

MSDN Webcast: Introduction to ASP.NET for ColdFusion Developers (Part 1 of 3): Adding ASP.NET to Your Repertoire (Level 100)

MSDN Webcast: Introduction to ASP.NET for ColdFusion Developers (Part 2 of 3): Building an Application (Level 200)

MSDN Webcast: Introduction to ASP.NET for ColdFusion Developers (Part 3 of 3): Designing for Code Reuse (Level 200)

I love things like this - they help me with my target of learning a new language every year.

Comments (0)



Bubbles! The Bubbles!

by Neil Middleton 8:57 pm Thursday, 16 August 2007.

In case you’ve been hidden under a rock for the last few months you’ll have noticed that there is a bit of a change coming about in how information is presented on the web. This is the move to the Rich Internet Applications (RIA’s) and their respective display technologies.

It is these technologies that I have spent a little bit of time looking at recently, and I thought I would share those thoughts with you just to see what other people thought.

At the moment, there are four significant competitors for the RIA market. Adobe’s Flex, Microsoft’s Silverlight, good old’ DHTML and Sun’s JavaFX. Generally speaking, all these technologies are able to bring to the browser more than that of traditional HTML either via sprinkling’s of Javascript (DHTML) or a browser plugin (Flex, Silverlight and Java FX). So what are they all like? Well, I’ve had a little play with all these things and think the following of them:

  1. Adobe Flex.

    Adobe’s Flex has been out for a while now and is headed towards version 3 as we speak. I’m not going to state the obvious here as to the capabilities of the system, as any old monkey can get that information from any Google search. I’m merely here to tell you what I think. Flex is an interesting if slightly restricted model. It runs in the Flash platform, which makes it nice and umbiqutous out of the box, and the SDK is also free, which means you can develop Flex apps freely. It’s also open-source to a certain extent which may float your boat.

    The reason I see Flex as restricted is down to the Flash Player. Being a browser plugin it is constrained by browser security, and can therefore only accomplish certain things. Yes, it is very big capabilities with animation, but I feel it might be somewhat limited on the more complicated stuff. The worst thing Adobe could do here is rest on their laurels and think that because they have the most common piece of the software on the planet under their control they don’t have a problem - but they do in the shape of the other tools mentioned here.

    There is also the open source aspect to Flex. At the moment, I beleive this only relates to the components that are used within the compiled swf’s, and not the core compiler itself - which very much limits what contributions and changes people can make to the tool.

    At this point I should probably mention AIR, the Adobe Integrated Runtime, which let’s you run Flex (and HTML) apps in a desktop context, thus being able to access local disk and even use a small client db server. However, for me, I can’t really see this taking off in the way that Adobe intend. For instance, most of the users that I meet are working on corporate networks, and cannot install new software themselves, when they can quite happily install browser plugins. For me this is a massive problem. Firstly, why would my user want to have to download an app to use another app, and secondly, why should I force my users to have to install something (which just makes their lives harder)? Everyone I know just wants to get stuff done.

  2. Microsoft Silverlight

    Silverlight is an interesting one for me. At first it appears to be direct competitor to Flash/Flex, but upon looking into it there are substantial and very interesting differences. The main one that I am aware of, is that Silverlight contains the .NET framework and the CLR, which, if you aren’t aware, is a lot of code that can do a lot of things. While developing Silverlight, MS took the .NET framework and took out everything that wasn’t needed in the development of RIAs, then they shrunk it a bit more. This meant they were able to get everything you might need into a small download.

    Now, if you think about this also from a resourcing point of view, this is very interesting. Now I can teach a guy C#, and he can go away and work on my data tier with SQL 2005. The same guy can they go and work (with the same skills and tools) on my business tier. Once done, he can also work on the presentation tier (Silverlight and ASP.NET). This is a very compelling scenario and it makes a development team incredibly flexible. One set of skills for all scenarios.

    Incidentally there is no reason why you couldn’t write your silverlight apps in Ruby by using the DLR.

    Another small thing to note is performance. .NET is fast, and this carries through to the Silverlight player. Also note, that cross-platform coverage is also kind of limited to Windows and OSX, although the mono project has built a *NIX based version of Silverlight - Moonlight.

  3. DHTML

    DHTML is the old kid on the block. By using traditional DOM manipulation, developers can acheive a lot. However, they also expose themselves to untold problems with browser compatability, performance issues to take into account, plus an overall limitation on what is possible. However, nothing requires installation, it works for everyone (that the developers have built their app for).

  4. JavaFX

    JavaFX is another stab at Applets from what I can see. Sun trying to create a small downloadable JVM that can run in browser in a similar vein to Silverlight. However, the current version is so slow, and painstaking to load, that I am going to barely consider it here until a much improved version is released..

So, as you can see, there’s quite a choice. But, why the title? What’s this got to do with bubbles? Well, the thing that kicked this off for me was visiting bubblemark.com. Bubblemark.com is a performance benchmarking piece of software that measures the performance of these various technologies in your browser. I ran through the tests and got some interesting results:

  • DHTML - 40 fps
  • Flex (cached) - 58 fps
  • JavaFX - 16 fps
  • Silverlight (Javascript) - 60 fps
  • Silverlight (CLR) - 220 fps

Now, I don’t know about you, but these results are stunning for Silverlight, and fairly dismal for JavaFX. It’s also interesting that Silverlight (Javascript) and Flex are the same speed considering that one is interpreted and the other compiled. Now bear in mind, that I only ran these test on my machine a couple of times, your mileage may vary (and please let me know if they do).

So, after all this, it’s easy to see that there is a gamut of options. For me, Silverlight looks to be the most promising overall, but as it hasn’t yet hit a final release it’s hard to fully judge. In the interim, Flex has to the RIA platform of choice due to lack of a capable competitor in the market.

If you have any differing thoughts, please let me know.

    Comments (5)