“Every civilization carries the seeds of its own destruction, and the same cycle shows in them all. The Republic is born, flourishes, decays into plutocracy, and is captured by the shoemaker whom the mercenaries and millionaires make into a king. The people invent their oppressors, and the oppressors serve the function for which they are invented.” — Mark Twain
I recently conducted a Twitter poll that illustrates why most platform specializations contain the seeds of their own destruction.
I know 14 responses is not an impressive amount of data, but do the results seems accurate to you? They do to me.
What makes mature programming languages good is also what makes them a problematic form of specialization.
There are 5 ways you can specialize, and one of them is to focus on a particular language, framework, or technology platform. This is platform specialization.
For some languages and platforms, platform specialization can be a great ride. Below is an attempt to illustrate why that ride can, over the medium term of 5 to 7 years, work like a roller coaster:
If your business model/value proposition is “I’ll rent my skill in [insert language here] by the hour or by the project” then with some platforms, part of what you’re being paid for is your technical skill, and part of what you’re being paid for–especially early on–is the rarity of your skillset. In other words, you’re getting a premium rate for knowing how to do something few others do. This is simple supply-demand stuff.
The licensed professions maintain this situation with barriers to entry (training, licensing) to the profession. Software development currently has no such barriers to entry.
In fact, the things that make a language better actually directly erode your ability to charge a premium rate if your value proposition is limited to your technical skill only.
Better libraries/frameworks : it’s easier for newbies to be productive, which increases the supply of competent developers.
Better community around the platform : it’s easier to get answers to tough questions and become a more effective developer in that language, which increases the supply of competent developers.
Better documentation : it’s easier to get results with less trial and error, which increases the supply of competent developers.
Deeper market penetration of the platform : more demand for relevant skills, which increases the supply of competent developers.
Noticing a bit of a theme here? 🙂
The things that make the more mature programming languages good is also what makes them a problematic form of specialization because those things increase the supply of competent developers, which erodes the premium you used to get paid for possessing a rare skillset.
If your value proposition is currently limited to your technical skill only, I propose you change that. There are more durable value propositions out there.