Monday 19 August 2013

Damn you and your opinions, Dave Ferguson

(Just kidding Dave... that's just a reference to Scott saying I'd be doing a blog article about you after hearing the latest CFHour: "Show #189 - Manage Your Indention").

This is clarification of something Dave did dwell on during that podcast, in reference to my article 'Really, Adobe: "NotWorthEffort"'. And to fulfill Scott's observation that I'd feed-back on what Dave said.

That article draws attention to what I perceive is slack-arse-ness on Adobe's part in how they dealt with a user-raised issue on the bugbase relating to the toScript() function (3041310).

The lads on CFHour made a few points / observations which are relevant, but at least partially tangential to the point I was trying to make.

Firstly: yeah, the code that toScript() generates works. It's slightly verbose, but it works. That's a very low bar to set though, isn't it? The approach taken here demonstrates a certain lack of finesse that one might expect from a function Adobe (OK: it was Macromedia) have provided to effect a better solution that just rolling one's own. And surely that's the intent here? It also kinda shows their hand in regards to their JavaScript capabilities, which seem to be "less than ideal" (I'd actually say: "not up to the job").

They also make a good point that it's a bit of a pointless function (I'm taking that further than their own wording), given serializeJson() does the job better (provided one is aware of all the issues ColdFusion has with dealing with JSON). So one doesn't even need to use toScript(). Indeed I've never used it, and didn't even know it existed before I came across that issue in the bugbase. And - even if it did its job well - I'd still be disinclined to use it as it all seems a bit of a weird function to even implement. But still... if they're going to do a job... they should do it properly and professionally. Which I don't think they have done here.

But that wouldn't even be an issue if no-one had actually noticed ("if a tree falls in a forest..."). Software always has "bugs" / "shortfalls" / "things that aren't as good as they could be". Fair enough. And this is definitely not the end of the world. And it's quite possibly not worth fixing in the bigger scheme of things.

However. Someone did notice it, and did take the time to draw their attention to it. So given that, a professional reaction is not to simply close the ticket with what amounts to "don't care". That is amateurish, not to mention rude. How toScript() was initially implemented was also amateurish, but what's done is done (in the distant past, by a different company), and that's not what I meant when I made my "amatuerish" comment earlier. When I am desrcibing Adobe's behaviour as amateurish I am specifically meaning how it comes to pass that they a) have a substatus "not worth effort"; b) someone chose to use it; c) without any further explanation whatsoever. That's amateurish.

How hard would it have been for the person dealing with the ticket to show some professional respect and actually respond to the person who raised the ticket, eg:

Thanks for bringing this to our attention. I agree the implementation here is not as good as it could be, but having evaluated the situation we've decided this is a pretty trivial issue, and in the bigger scheme of things the development and regression-testing overhead would be prohibitive, and our limited resources are better allocated elsewhere in the product.

If this is causing a problem, please bear in mind that serializeJson() quite possibly effects the required functionality, and is a more comtemporary solution, and the JS it generates is tidier and more in-keeping with modern practices. The docs for serializeJson() are here:

We've taken onboard that we should make sure to endeavour that any JavaScript we generate from our helper functions should output best-quality Javascript.

Thanks again for raising this with us, and I hope you understand our decision to not go forward with addressing this bug.

That would have been professional. OK, obviously I'm very verbose and that's an egregious example, but something along those lines would have prevented the issue-closure from seeming like laziness or dismissiveness. Take a look at the Railo bugbase. I doubt you'll find issues simply being closed out of hand like this. Because they go about their business with an air of professionalism.

I stand by my sentiment, Dave: this is an example of amateur behaviour from Adobe. I draw their attention to this because their public perception (granted, slightly exacerbated by blog articles like this) is not great when it comes to how they handle public interaction regarding ColdFusion, and I seriously think they need to pull their socks up in this area.  I am blunt about these things because - on the whole - I find being blunt has a better impact than being superficially nice about things. Their attitude in areas like this is substandard and I think there is merit in pointing this out, rather than dismissing it because I don't want to be a big meany.