New Advice Column: The Reluctant JavaScripter

June 5, 2012 in Business, Community, Tech

[Editor’s note: In a continuing community service effort, has licensed the following advice column “The Reluctant JavaScripter” .  Long time self-appointed Flash expert Phillip Kerman is honored to serve the rejected Flash developers with straight answers to their stupid questions.]

Dear Reluctant.js: I have a friend—not me—who’s struggling with a self-identity problem. For the last few years my friend’s handle in various online environments was a phrase that contained the “f-word” (Flash). That USED to be a good thing.  Now it appears there’s a full-fledged exodus–even denial of history—regarding Flash and its contribution to the downfall of desktop computers.  Most of my friends and I have already changed their usernames to remove all references to Flash.  I just wonder if it’s no longer politically correct or acceptable to associate with those describing themselves with the f-word. 

Also, can you help me identify terms that I can suggest my friend use to attract maximum popularity? Some of the usernames I have in mind are “mobile-phil” or “touch-era-phil” but maybe something more specific is good—say,  “html5-phil” or “javaScript-phil”.  What do you think?

A Once Proud Flasher

Dear Proud,
There’s nothing to be ashamed of except perhaps how all the “good Flash developers” have failed to rein in and stop the “bad Flash” folks (who built the true garbage) from defining Flash’s contributions.  A balanced and sensible look at history will judge Flash as what it was—the most widely deployed and arguably the most successful piece of software in history.  To think otherwise is tantamount to a revisionist’s wishful thinking.

The question remains as to what you name yourself (or your “friend”).  You could simply replace “flash” with “html5” or “code” or “javascript” although, some have tried and there just isn’t an easy way to transition a username like “flashfreaker” or “the flash bum”.  Even conferences face this challenge.  For example FITC, originally “Flash in the Can”, simply chose 4 words they thought were cool—so FITC is now “Future, Innovation, Technology, Creativity”.  You saw a similar thing when Adobe tried to separate Flash from the “Shockwave” brand—“SWF” no longer stands for “Shockwave Flash” but instead means “Small Web Format”.   Ultimately, it’s impossible to hide from your own history.

Despite the challenges in renaming yourself, I’d agree it’s always best to describe yourself in present tense terms and to use words associated with what you want to do tomorrow—not what you did yesterday.  To that end, yes, I recommend avoiding the word Flash when selecting a username.  But picking something that you’ll stick with is as important as picking the right term.

A deeper, more concerning problem, has to do with how you explain what you’ve been doing in the recent past (which can actually exceed a decade for some old-timers).  When you say you did Flash, say it loud and say it proudly.  There is a chance people will impulsively say “HTML5” and then give you a look of pity.  Something more interesting may happen. Instead of discovering an underground society of Flash sympathizers you’ll find that anyone who was in the tech business for the last several years surely knows the score.  In fact, if they’ve been doing cool cutting-edge client-side projects they were almost certainly using Flash.  Sure, it’s possible you reveal yourself to someone who has hated and avoided Flash since its beginning.  With those folks don’t fall into the trap debating (ultimately moot) differences between HTML5 and Flash but rather it’s best to smile and let them feel victorious allowing you to move on to getting some work done.  But please don’t grovel and apologize. Let the next letter serve as a model of how to react.


Dear Reluctant.js: All u wineing flash “progmmers”…LOL.  if u had listened to me about webstandrds you wouldn’t be so sucking bad when adobe sux. ppl called me a masocist 4 doing ajax by hand… whos laughing now beotch? –code grocker

Dear “grocker”,
Yes, you win!  I’m sure that’s what you’d like me to say.  Okay: “Flash is dead and now you’re the only one who can help clients.  No one will ever want to hire a Flash developer again.”

Actually, Mr. Grocker, what you fail to realize is that now all those flash “fan boies” are showing up in their jeans and t-shirts and—except for an occasional improved odor—are indistinguishable from you.  In fact, if you see rates increasing because now there’s even more talent in the pool, feel free to thank your local Flasher.

“ur” welcome.

Dear Reluctant.js: I’m a Flex RIA programmer (and sometimes I even dabble a little in ActionScript).  The corporation where I work let me take an 18 month sabbatical. I’m back now but no one even works in my department anymore!  I think they forgot to take me off the payroll, but I don’t even know who to contact. What happened? I started asking around and most people’s reaction to the word “Flex” is—“do they still make that?”

Was taking time off a bad idea?  And, more importantly, what should I do now?

Dude Where’s my Department?

Dear Dude,
I understand the world’s economists are now studying whether your vacation had anything to do with the shit we’re in now.  For many Flex programmers another date which will live in infamy occurred last November (11/11/11) when Adobe abandoned Flex. In the future, however, I’m sure you’ll look back and agree this was the beginning of something better.

The brick wall you’re facing with people’s willingness to discuss Flex is not exhibitive of the expected decline in the demand for Flex.  To the contrary, while I do expect a decline, the demand for Flex will be slow and gradual now that the initial shock has worn off and most folks have moved on.  But make no mistake: there’s a large base of existing code that is providing varying degrees of value—this code may need to be maintained or ported to other platforms.  If played right, you can provide clients with huge value and you with huge dollars.

Deep down I think your question is less “what happened?” and more “where do I go from here?”  Flex developers seeking insight where their future lies should consider taking the good part of a day to read Jesse Warden’s epic post discussing the viability of ExtJS being the next logical step for Flexers.  Sencha’s ExtJS does include very sophisticated components that will allow Flex hacks to hobble together Flexy looking monstrosities but it also lets “good Flexers” crank out powerful web applications.

In some ways the best framework is what everyone else is using.  One of the greatest assets Flexers have is their community. (The same goes for Flash/ActionScripters.)  I think the opportunities to leverage the community are huge.  It’s not as though the JavaScript community will notice if one or all Flexers show up to crash their party.  At best, Flex and ActionScript folks can help solidify more best practices.


Dear Reluctant.js: I guess I’m a bit of a purist.  My mom tells me I kept inventory on my legos and even had a schedule for the potty.  I think that’s relevant to my career in ActionScript because it let me keep everything nice-and-neat.  However JavaScript makes me feel dirty.

Before you assume I’m a Luddite, I should state some of my best friends are JQuery “programmers”.  I don’t have anything against JavaScript… but, no typed variables??!!  I won’t even mention global variables—but who was responsible for that? And now every project uses libraries—many of which depend on OTHER libraries!  It’s come to this: we need additional libraries to manage the libraries we have.  Isn’t there some point where someone will say “this isn’t right—we need a real language?” Can’t people see that? I’m not saying I have a problem with JavaScript—I just think it’s an outrage that it has such extreme flaws.  Some people are fighting back (like Colin Moock’s diatribe “the trouble with JavaScript” ). What else can we do?

Resigned to JavaScript (but not happy about it)

Dear Resigned,
On the contrary, I’d say you DO have a problem with it!  In the words of Tom Green’s boss “deal with it”. Are we not programmers?  Isn’t the whole idea of programming to figure out a solution?  And really, have you dug so deeply into JavaScript that you can truly say there’s no viable way to produce anything worthwhile?  Before you answer, realize people have built some pretty kick-ass stuff.  Plus the activity going on in JavaScript is moving so fast it’s unlikely you’re on top of it all.

Before you say that producing masterpiece software requires heroic efforts by teams of expert developers, realize that most projects have only moderate demands–they need not exemplify the state-of-the-art.  Your clients might need something simple or something complex—it depends what you’re trying to build.  Programming is just solving problems.  I’m sure you can put on your big girl pants and make something within the confines of JavaScript.

Having said this, I think it’s natural that when you study a language as you have, it’s important to highlight and understand its limitations.  However letting it turn into personal aggression is a mistake.  Here’s a story—I used to be an Authorware expert and I once contracted with a team that had been working full time on a large Authorware project.  They had produced and posted on the wall a list of all the “problems” with Authorware.  I think you’re exhibiting a similar kind of acting out.  Not only do such lists have the risk of embarrassing you later when you see you were wrong… they don’t necessarily help you avoid problems.  For example, saying JavaScript’s globals are a serious problem is silly unless you also point out that programmers can simply avoid the issue entirely by employing one of the many namespace patterns.  Notice if you pick a fight, you’ll get a fight. The master programmer, however, should look to avoid such battles.  It’s best not to fight it.  I’ll admit I had a real problem with the fact that JavaScript is loosely typed.  But I was smart and didn’t try to fight something that was just a fact-of-life.  If you are that hung up on typing I’m sure you can think of a workaround or use a tool/library that addresses this. Plus, check out this list of more than 100 tools that output JavaScript–often via another language entirely.

Finally, as to your point about relying on so many different libraries:  go ahead and write everything from scratch!  In fact, it makes more sense for smaller projects (especially when you’re learning). However, I think you’ll find using a few libraries can certainly help enough to justify the investment learning.  I will say that you’d face an impossible task if you tried to employ everybody’s personal favorite “best practice”.  In that regard, JavaScript is a mess right now… though you are seeing a few libraries surface as accepted standards.


Dear Reluctant.js: I don’t know why it has taken people so long to move on.  The writing on the wall was not exactly difficult to read.  I completely abandoned Flash 18 months ago and haven’t looked back.  I’m not sure if this advice column is helping or hurting the “Flash Holdouts”.

Anyway, I do have some JavaScript questions for you—why do I have to put a semi-colon after a function expression but not after a function declaration?

Formerly Flash

Dear Formerly,
I’ll be the last one to suggest folks hold out for a Flash comeback. Whether you evolve beyond Flash today or wait until the last gasps of life are squeezed out of Flash and THEN move on, you won’t be any farther ahead in the great cosmic race of software evolution. It’s not a competitive sport after all.  I suggest folks just do what they can to make money.  There happens to be some real opportunities in Flash (albeit not “websites”). But… Flash folks should be taking every opportunity to suggest alternatives to Flash.  This helps you identify the places where Flash really does have a value proposition.  It may sound backwards but you’ll win either way and you’ll end up with the best solution (the one that withstood challenges from alternative technologies).

As to your JavaScript question, I was going to answer by saying this isn’t a JavaScript hotline but for that try (and, yes, this is real) toll-free JavaScript help hotline at 877-300-2187

However, I don’t know if anyone can answer “why?”  “Why does it work the way it does?” –it just does.  Let me suggest that it’s often best not to ask why—but just to go along with code formatting rules from JSLint unless you know what you’re doing (that is, it works the way you want) and it offers something you can’t easily build another way.



Dear Readers,
I will gladly provide insightful answers to any questions–sincere or silly–that you post in the comments section below.