It's that time again. Someone notices a line going down on a graph, goes into MUSTFIXNOW mode, and declares that anyone who doesn't agree is a slumbering fool.
Does that solve a real problem?
I assume that my intelligent, clear headed, and hard working readers have already read and thought about VM Brasseur's comments on Perl marketing as well as Ovid's programmers ought to study practical economics if they're going to talk about markets.
Here's the question I try to ask whenever I talk to a stakeholder about a business requirement. (I know it's a question most of you ask too; it's the right question. What problem are you trying to solve?
Is your problem that some measurement on some web page ranks something you don't like higher than something you do like?
Is your problem that something you don't like has been on more magazine covers than something you do like?
Is your problem that the hearty self congratulation mutual admiration society on Hacker News (now there's a middlebrow dismissal!) thinks that something you like isn't as new and shiny as something you don't care about?
Is your problem that you're having trouble finding a job using something you like?
Is your problem that you're having trouble finding other people who use something you like?
Is your problem that you're having trouble finding accurate and useful resources for something you like?
Is your problem that you're worried about the future of something you like?
I don't know what you want. I know what I want and what I think, and if we don't agree, we're going to have trouble communicating.
For example, I don't care if Google prefers Go as a language to anything else. That doesn't affect me much. (Perl's better at Unicode than anything else I've tried, so the Unicode-heavy work I'm doing lately gets done in Perl.)
I don't care if 37 Signals or Heroku thinks the right way to deploy a website is with Ruby and NoSQL (did I mention Unicode? Also I find Mojolicious much easier to manage than Rails, much less magical, and frankly a lot more stable, especially with regard to security lately.)
I don't care if every new startup with a domain name ending in
.io
(if that's still a fun thing; I don't know) says that Node.js
is the best way to write applications, and all of this stuff the dynamic
language people have talked about for 20+ years is really done right,
and oh boy callbacks (again, Unicode, and a mature library culture that
supports things like actually deploying and managing modules and tests and,
let's be frank, not writing our own web servers because we like to be close to
the metal, although I will admit that asynchronous IO as an expected feature of
all libraries is a benefit).
I don't care if a company that wants to sell you recruiting materials publishes a web page with questionable metrics based on very specific web searches says that the global programming language market share lines on a graph go up, down, or sideways (see also Wikipedia drama about how the name of a page affects a language's TIOBE ranking, and weep for the future of humanity).
As Mrs. Richard Feynman asked, "Why do you care what other people think?"
I know—we're lazy techies, and we're eager to jump on silly little technical solutions and argue about them from behind the comfort of our keyboards rather than doing the scary wetwork of actually talking to people.
If we actually talked to people about what they wanted, we'd find out that they care about things like:
- How easy is it to hire and/or train people in a language?
- What are the deployment concerns for the language?
- What are the security and support channels like?
- How many programmers do you need to accomplish a task?
- Is the language and its ecosystem suitable for one task or another?
- Will a cancellation of the language by its primary vendor or abandonment by its single author or forking of its community have any detrimental effect on recruiting and retaining?
- Does the language and its ecosystem support the desired platforms?
- Will choosing this language solve more problems than it creates?
Note the conspicuous lack of "Do lines go up, down, or sideways on an Internet popularity contest?" (Note the very conspicuous lack of "How long has that version number remained unchanged? Is there a chance you could shove a gourd in there instead? Really? Great!") In fact, you can throw out the opinion of anyone who suggests that's an interesting concern because that person is a buffoon who should manage nothing more technically complicated than a stone wheel. Perhaps the thigh bone of an ape.
I know you all know this; my readers are intelligent, creative, and clever people. All of you. But not everyone knows this, and so when you run across people who have no endgame in mind more interesting than "I don't like the looks of that graph", you have permission to suggest that they find other goals in life.
Please note that I'm not suggesting that everything is alright and that the Perl community should abandon all attempts at advocacy. That would be a silly opinion. Rather instead I'm suggesting that advocacy deserves intent and measurement at least as serious as approaching a technical problem. You wouldn't flail around and hope that random changes here and there in a program would fix bugs without making others worse. Why would you do that in an advocacy context?