What Languages do you Speak?

When I'm asked which modern (or in-use, or non-obsolete) programming languages I can code in, I sometimes feel like I'm playing an ego card when I say, "all of them."

Sure, I have operational experience (meaning I've written real, customer-facing projects) in C, C++, C#, Java, Go, Python, Scala, JS... and I've played around doing PoC in Rust, Dart and a few others.

More than that, though, I could pick up pretty-much any in-use language in a long weekend. So can any developer who has the years of experience in place. And then figuring out a platform for any given language is just a case of skimming the documentation so you know where to look. Nobody memorizes a whole platform any more (I think the last one I did was MFC? Maybe?).

A more accurate gauge of a developer, to me, would be to hear about their approach to design. What patterns did you use? Which did you consider and then eliminate, and why? What pivots did you make during development, and how did the final product compare to your initial vision. What got you up in the morning in terms of problems to be solved?

Once a certain threshold has been crossed, the keywords become irrelevant.

This thought process brought to you by the number of pitches I get for jobs that are based 100% on the keywords of which languages I've used in the past. These pitches pay zero attention to what I actually did. They just want to see the "[language]" or "[platform]" box checked (ticked, for you Europeans :-)).

It almost makes me want to take a week off, learn *every single modern language* in an "I've been exposed" way, and literally list them all.

Would anyone believe me?

Am I off base here? Or is this a legit position?

#programming #languages #platforms #development #experience #KaleIsNotAFood

Twitter Verification?

Why do I have to pay monthly to be verified? Does my identity change every month?

Time is an illusion; Lunchtime doubly so

I looked up, thinking it was noon, at most. It's 2:30pm and this explains why I'm hungry. I sent my assistant out to get lunch, but since my assistant is a cat, I'm not hopeful.

What me? Paranoid?

Nothing puts fear into the hearts of nerds like installing a CPU, heat sink, and RAM.
So many avenues for "oops."
It takes ten times longer than it should, and for good reason. Slowly. Carefully. Visualize before acting. Triple-check alignments. Finger-tighten, step back and evaluate before locking down. Question every move.
A little paranoia.

Software Subscriptions

I get the idea of software subscriptions. Back in the day, you'd buy software, get a CD (or a stack of floppies if you're that tenured), install the package and away you'd go. After a while, a new version would be available and you'd either get it as part of your original purchase or have to decide if you wanted to pop a few bucks for the new version, almost always at a discounted price.

These days, most software now costs a monthly fee to use. Stop paying that fee, and some packages lock you to the current version while some go as far as to just stop working at all. That is, you get to use the software as long as you keep paying. It's almost like renting the package.

Now, in the case of something like, say, Adobe Photoshop, I can see this model as viable. Adobe regularly pushes not only performance improvements, but refinements and new features as well. Consider what the suite used to cost, including the typical 12-18 month update cycle, and the subscription comes pretty close. Adobe provides value to the. model.

On the other hand, I'm looking at a package that automates an Internet task. For the most part, the package is very static. Now and again the producers have to make a small change to adapt to changes in third party integrations, but those are few and far between. Further, they support eight platforms and charge $29.99/month for one, and $59.99/month for all of them. Those are the options. Yet knowing how this software works, the differences are almost non-existent. The configuration considers all platforms and it's just an upload task that differentiates them. 

There is absolutely no value added in paying monthly for this software that not only doesn't change, but has very little differentiation and uses zero resources provided by the author. That is, it's not even a web service. It's a reasonably robust automation engine. That's it.

Further, this is the kind of package you'd use initially, and then would likely sit unused for months until you had another need for some automation. You'd be paying a monthly fee for no updates and just the option to have it available should you need it.

But people are conditioned now to pay a subscription, even for software that doesn't justify it. Thus, almost all software now carries a subscription model.

I believe this is where I say, "get off my lawn!" :-)


Twitter Stream