Developer responsibility

Jun 14, 2010

Short rant of the day:

It is the absolute responsibility of any developer to be aware of the shortcomings and performance issues inherent with their platform. As we all know, Steve jobs has declared that Flash will never be on any iDevice because it's performance is so bad. I won't deny that some of the onus to make this work is on Adobe. Particularly in areas where they've created tools that let none developers create things that bring Flash to a crawl. For example, designers love alpha transparency, but performance takes a major hit when you start dropping these sorts of vector graphics on the timeline. We see this in banner ads all the time. Adobe needs to fix this. 

It is also true that I could create a swf in under 10 minutes that would crash your browser – if you aren't in a nicely sandboxed browser like Chrome. But the same is true of html and javascript. I could write some code in js that would bring the browser to a crawl. This isn't the fault of the browser or of javascript. It's my fault. I wrote the code. It's part of my job to not create this sort of code. Browsers and OS's can do things to keep the destruction minimal but it's not their role to keep me from writing bad code.

The same thing has been true for decades with desktop applications. When shareware usage was at it's peak, it wasn't uncommon to get an app that would bring things grinding to a halt across your OS. In fact, today one of the worst offenders on the desktop is Apple's own iTunes for Windows. This is a slow, resource hogging beast. At the best of times it's painful to use. It doesn't play nice with anything else around it. When you download music or apps, it grabs every last bit of bandwidth it can and won't let go for anything. When they finally download, the CPU is maxed out as iTunes processes the file and adds it into your library. It's a ridiculous piece of junk that goes against all the things Jobs has been preaching for the past few months.

The moral of the story is, the platform is rarely the problem. While it can do things to try and keep the situation under control it's ultimately up to the developers to make sure their creations perform well and don't crash their users machines.

Comments

derek knox

derek knox wrote on 06/14/10 7:10 PM

I agree but part of what makes flash accessible to content creators is its ability to make things happen fairly easily (timeline or through code). And since not everyone creating content is aware of how to properly clean-up after themselves and/or optimize (code and/or graphics) these issues prevail. When I first started AS3 a few years back, I was not "cleaning up" after myself, but now I've realized its importance and I most certainly do. I had a similar post at http://derekknox.com/lab/?p=347. Do you think it is a wise to suggest that virtually 100% of custom classes should have a dispose() method in its API?
John-Paul

John-Paul wrote on 06/14/10 7:47 PM

Nice article. I agree. All it takes is a never ending while loop in any languages to cause a crash!
while(2 > 1) trace('infinity...');
Taylor

Taylor wrote on 06/15/10 10:33 AM

I totally agree with you. Annoying things such as this deserve a good rant. It's good for the blood pressure.

1) iTunes is a huge, bloated, unusable mess and flies in the face of Jobs' justifications for dumping on Flash (not to mention Apple's vaunted reputation for usability).

2) Flash in and of itself isn't a problem. It is self-evident to anyone who works in this industry that only someone who is ignorant, confused or obfuscating would blame the platform and not the developer for an application's inefficiencies.

In that vein, it's not surprising that Jobs remains silent regarding the many iApps (games mostly) that are shameless resource-hogs, draining your battery in no time at all.
Matthew Fabb

Matthew Fabb wrote on 06/24/10 2:23 PM

Good rant. As far as banner ads are concerned, ad networks really need to run tests on their banners to make sure they are safe. They could write an AIR application or something else similar that loads and tests any banner they receive. Some places do a limited amount of testing, others do little or none at all. Especially, as for a certain amount of banner ads are written by people very new to Flash.

I remember Jim Corbett one of his FITC presentations saying that they came across one particularly bad banner ad and they decompiled it to try to see what was being done and it was set at 140 frames per second! That's just crazy!

Unfortunately, since rejecting banners means less revenue to them, there's not a lot of incentive. I just wish complaints would carry up from the user, to the website to the ad network so that they either shape up or lose business, but unfortunately again I don't see this realistically happening.
android apps

android apps wrote on 12/16/11 3:10 AM

Thats why i am the biggest fan of this Products…. thanks for share Nice Info…   



nice post

Write your comment



(it will not be displayed)



Leave this field empty: