This week I’m working for a web production company with a little bit of everything. Today I was asked to help in a project where the Flash developer was on paternity leave. The project was overdue and there were things that didn’t work, no huge problems, but things that needed to be fixed. I sat down with the .fla in order to find the relevant part of the project and see how hard it would be to fix. One hour later I gave up.
It wasn’t that it was a particularly bad example of Flash programming, it was just too big, to unorganised and generally just bad style. This like
_parent._parent._parent were common, as were repeated code, global variables, meaningless symbol names, etc. There was really no discernible structure, there seemed to have been a though of organising the multitude of symbols in folders, but I found no logic to them. I would say that the little structure there was existed mostly in the head of the author.
And I must stress that this was by no means the worst example of Flash programming I have seen. It wasn’t even bad on that scale. The problem is that the scale of Flash programming quality tops at “nightmare”.
It’s no secret that I consider other Flash programmers to be unacceptably bad programmers. I cannot for the life of me understand why anyone can work with programming day in and day out and not see that placing snipplets of code in different places on the time line and in symbols makes for unmaintainable code. How do they find things? Do they keep everything in their heads? Do they keep track of all global variables and where things are defined?
On the other hand, this little gem I found just after I had given up made my day:
newLocationID = Math.floor(Math.random() * (8 - 0 + 0)) + 0;Added 2007-06-07:
I should have mentioned another thing: that their websites still work amazes me — and they usually work well, and look great (the looks would be due to a fascistoid designer though). It’s a paradox, how can something that is so bad on the inside still work perfectly?
You could argue that this is proof against my case; that they aren’t bad programmers because they make good sites. I beg to differ, because there is one thing missing from that argument: even though the sites work they probably took an extra week or two in pure debugging time and they are extremely fragile, request one change and it all threatens to fall apart, and that’s even when the original programmer is still around. You get what you pay for and nothing more.