As I walked along the park on a crisp winter day I spotted a most curious sight.
A small bird perched upon a stone bench, pecking away at its laptop, with an equally small cup of coffee next to it. You must think this is not that unusual, birds must earn a living after all.
The peculiarity of this situation laid on the fact that the little bird, who turned out to be a black-capped chickadee upon further inspection, beeped incessantly. He beeped with a language so coarse, it would put hair on a baby's chin.
Intrigued by the exasperated little bird and seeing as how my code was currently compiling back at the office, I decided to approach it.
“Morning, little bird. You seem to be awfully frustrated, why is that?” I asked.
The little bird stopped typing on its keyboard and looked back up at me.
“Oh, I’m sorry, was I swearing too loudly?”
“Just a tad,” I said bringing my index and thumb together for emphasis.
The raised black feathers on its head smoothed out, “I’m dreadfully sorry.”
“Is there any way I could help?”
“I don’t believe so. I’m an engineer you see.”
“But that’s perfect,” I exclaimed, “I’m an engineer as well.”
I pulled out the giffin that all true engineers are given upon graduation and performed a simple coding cantrip on it to show my bona fides.
The little bird’s feathers puffed, “You’re an engineer indeed,” it said, “and by the notches on your giffin, an experienced one at that.”
“I’ve been around for a while,” I said, trying not to blush, “what would this problem be then?”
“Well, I recently graduated from TU,” it said.
“Tweeting University?"
“Torquay University,” it said, somewhat reproachfully.
“Pardon me, please continue.”
“I recently graduated and I’ve been applying to jobs but I feel that my current programming languages are not enough.”
“I see, which ones do you know?”
“The ones they taught me at uni. C++, Java and Python”
“That’s not a bad combo, you’ve got something for systems, a general purpose language and a nice scripting one for web dev, tools and such.”
“Yes, but is it enough? I was reading the TIOBE index…”
I raised my hand in objection, “Ahhhh see, there’s your problem.”
The little bird tilted its head in confusion. “But how else can I know which language should I learn next?”
“Perhaps this might be better illustrated by a story. But I grow thirsty, so let’s go over to that coffee shop and I’ll tell you on the way.”
The little bird sighed, “Fine,” it said, “I guess I’m also a bit thirsty”. It picked up his laptop, mug and bag, then perched on my shoulder.
“About oh say, 14 years ago or so, before Acid 3 or the Chromium project. There was a piece of rather popular technology called Macromedia Flash. Actually, around that time it was acquired by Adobe if I recall correctly.
“Now, Flash was rather useful in a time before standards. You could develop a web application and have it run consistently across browsers and operating systems. It was prettier than the brutalist aesthetic of JSF, and easier to use than Javascript.
The tapping on my shoulder indicated that the little bird was jumping around on my shoulder, “Easier to use than Javascript? Really?” it tweeted incredulously.
I laughed, “Yes, Javascript used to be a wretched, poor thing. Often misused, rarely appreciated and blamed for all sorts of problems, kind of like Horrorcore hip-hop. But now, it’s quite popular, well established, harshly criticised by some, and perhaps the source of some significant problems, kind of like Mumble rap.
“But this is not the story of Javascript, that can come at another time. This is the story of the language that gave life to Flash. Actionscript. For many years, you couldn’t go through a job board without seeing postings for ‘Flash Developer’, ‘Multimedia Programmer’, or in the latter days ‘Flex Developer’. It was an interesting time. HTML was a matchstick castle, held by spit and fate. VLC rose further up to liberate us from under the boot of Windows Media Player, QuickTime and RealPlayer. In the middle of all of this, there was ActionScript powering ‘rich’ websites, games and even the early version of YouTube.
“Then, things changed. Too many security scandals, the birth of new standards, old tyrants fell, just to be replaced by new ones. During all of this, Flash and therefore ActionScript suffered.
“There were no more job postings. Flash became an Instrumentum Non Grato and Actionscript plummeted into obscurity to where it’s standing right now, around the 47th position in the index.”
The little bird and I were now sitting at the coffee shop.
“What happened to all those developers?” the little bird asked.
I took a sip of tea, “We moved on, some of us earlier than others, some others held on, unto the direst of consequences.”
The little bird’s head sank into its body as it gave a swift shake. “That is sad. But I don’t understand. In that case, the TIOBE index would have helped, they could have looked at it, seen the decrease in ActionScript’s popularity and switched.”
“Ahhh,” I said, “that is exactly the point. Those old ActionScript developers are still around, their knowledge has been recycled and reapplied, their principles brought to other platforms, languages, and frameworks. Many programmers were introduced to the concept of frames and tweening through Flash and ActionScript, then they took those concepts to other animation libraries. If they had just jumped incessantly from technology to technology, they would have accomplished nothing.
“By Ritchie’s beard! OpenFL and Haxe, descendants of Flash and AS were used to make the magnificent ‘Papers, Please’.”
The little bird’s beak swung in confusion from one side to the other, “So, you’re saying the technology is still good, that we should have stuck with it?”
“No. Languages languish, frameworks fade, this is inevitable. What I’m saying is that the tools do not matter as much as what is produced by them.”
“I’m sorry,” the little bird said, “that doesn’t help my situation, not really. I’m still not sure which programming language to pick from TIOBE.”
“Fine,” I sighed, “try something for me will you?”
“Ok, what?”
“I want you to say ‘Fuck TIOBE’”
“Eh, what?”
“As loud as possible please, I’ll start.”
“No, please don’t,” the little bird said.
But it was too late, I stood up. The little bird put its wings over its ears.
“FUCK TIOBE!”, I roared inside the coffee shop. Several patrons looked up at us, concern written on their faces, but I just pulled out my giffin and flashed it.
“Engineering business. No need for concern,” I said and they promptly returned to their coffees and conversations.
I turned back towards the little bird, “Now you try it.”
“Do I have to?”
“It will help, I assure you.”
The little bird looked around shifting from foot to foot.
“Fucktiobe,” it said softly in a single breath.
“Louder”
“FUCK TIOBE!” it tweeted. The little bird looked up, its little black eyes shimmered. It took flight and flew above in circles, lemniscates, and other assorted geometric shapes, all the while tweeting loudly.
From dark corners inside the coffee shop, tired eyes were raised from laptops plastered with stickers, with a half dozen different operating systems installed in them and joined the chorus.
Cries of “Fuck TIOBE!”, “PYPL is better!”, “Fuck PYPL too!”, “Stroopwafels aren’t even that great!” erupted from inside the shop.
The chorus died down and the little bird landed back on our table. It breathed quickly, its feathers ruffled.
“That was fun,” it tweeted happily.
“Right?”, I asked, “Do you understand now?”
“I think I do,” it said, “I shouldn’t fret so much about what programming language I’m using, as long as I’m building something worthwhile. So I should just build things in whatever I deem appropriate.”
“Precisely,” I said, “there are obviously concerns about maintainability, good documentation, community support, and project requirements of course.
“Those decisions should be made based on the needs of what you’re building, not upon some beauty contest.”
“Today’s Javascript is tomorrow’s ActionScript?” it said.
“Exactly, and imagine how much knowledge we’ve gained from Javascript that we can apply to future projects.”
The little bird looked off into the distance, flashes of custom APIs, parsers, and package managers swarmed in his head.
“Right,” I said as I got up from my chair, “my code must have finished compiling by now, so I should head back.”
“Ok,” said the little bird, “what if I need to contact you again?”
“You won’t need to,” I replied, “you’ve got the knowledge now. Now go out there and build something.”
Addenda