to type or not to type…

that is the question.  Rather than a Shakespeare reference, I’m here referring to a term in software development which determines how a language deals with variables, for example.

Define: type

When you create a variable in a computer language, it’s usually something like this:

var someVarName = 1;

In a case like this, we might infer that someVarName stores a number (an integer).  We might say that the someVarName‘s type is integer.  Using a pet-ownership metaphor, it’s like purchasing a dog house first (“someVarName”) and then next buying a dog to put into it (“1”).  You wouldn’t buy a fish bowl to store a dog… although this seems to work out great if you own a cat.  JavaScript, e.g., is like this picture:  it doesn’t seemingly care if you want to store a cat in a fish bowl.

cat-in-a-bowl

Two Schools of Thought

There are two camps out there:  those who like languages which force the variable type and those who don’t.

A statically-typed language usually involves a step in which your code is converted into something else (compiling) and any type-related issues must be fixed before a program can be created.

A dynamically-typed language is run “as is” and the code is evaluated at the moment of truth—determinations about the type of a variable are made at this time.  If there is a type-related issue, your end-user could be the first person to see the error.

Statically-Typed Dynamically-Typed
Java JavaScript
C++ Python
C# PHP
C Objective-C

The Pendulum Swings

Over the past three decades, the popularity of either approach has waxed and waned.  It’s safe to suggest for the moment that the less-strict languages are gaining rapidly in popularity over their stricter counterparts.

most-popular

We have the world of open source to thank for the popularity and speed of development we’re currently seeing in these dynamically-typed languages like JavaScript and Python.

Seeing the Future

Honestly, though, there are too many people in that strict-is-better camp and their influence is felt within software development companies.  If I were to guess at the future of JavaScript, I’d probably have to say that TypeScript and Flow will gain in popularity as larger development teams look to lower the number of bugs in their code.

I don’t know, though.  Maybe it’s time that we just relax and let the cat hang out in the fish bowl.

 

puppy farms and programmers

You’d think the two topics wouldn’t be related but you’d be wrong.

pup•py farm

noun derogatory – also “puppy mill”

“an establishment that breeds puppies for sale, typically on an intensive basis and in conditions regarded as inhumane.”

How on Earth could a puppy farm be related to software developers? Everyone loves puppies and everyone loves new software developers. Each are enthusiastic, energetic and fun to be around.

The ASPCA indicates that there are an estimated 10,000 puppy farms in the U.S. today. A recent survey published on coursereport.com indicates that the “coding bootcamp” market is growing by a factor of about 3 x per year. Their estimate of the average tuition price for these coder factories—if you will—is about $10k for the nation. The high-end cost of these camps is $20k, however.

Like those puppy farms, these code bootcamp businesses are wooing people from a variety of career fields with the promise of a job in the software development industry. As someone who’s been a long-time programmer I could suggest that the software development industry as we knew it crashed in the year 2000 and has not recovered yet. The reason? It crashed because the nation suddenly outsourced work overseas; suddenly, there were too many coders for the number of available jobs.

“…the software development industry as we knew it crashed in the year 2000 and has not recovered yet.”

And yet, we have monied corporations like Google who seem to be wooing children with programs like Made w/Code. And then there’s Hour of Code which is targeted to everyone of all career fields. The latter indicates that they have over 160k events around the world they’ve sponsored and tens of millions of students.

I’ll be the first to admit it: puppies are awesome. But when too many puppies are bred they end up hating their lives, often ending up in cages or at the dog shelter.

“We can’t all be heroes, because somebody has to sit on the curb and applaud when they go by.”

~ Will Rogers

I suppose there’s some wisdom in that Will Roger’s statement but where do you draw the line? As an existing programmer I can’t suggest that someone else also can’t choose this as a career field. That would be a similar (faulty) argument from U.S. citizens whose ancestors migrated to the states and then they themselves are against immigration since the country’s now too populated.

As the number of programmers increases, the natural laws of supply and demand kick in. In the graphic below, think of the number of programmers to be the Supply, the green line and we’re seeing a rapid increase in that number. The red Demand line should then be rapidly going down in response which has at least two results: there aren’t enough jobs and the price for software development will dramatically be less.

supplyversusdemand

So are these coder factories telling the truth to their students when they suggest that their certificate can land them a six-figure salary? No. The days of making $100k/year writing code are over thanks to the unending influx of new coders.

Possible solutions to the problem

  1. Give away a free puppy to every new coding academy graduate
  2. Kill all coders over the age of 24 across the planet
  3. Prevent companies from buying off-the-shelf software or from using open source
  4. Make Github pay-per-view

Final thoughts

I don’t want all this to seem like I don’t like or appreciate new coders. I love coding and I wouldn’t deny anyone else the right to do so. But when I got my start there were literally no jobs programming so we did it merely for the fun of it.

So my advice to the new coder is: do it merely for the fun of it, don’t think that you’ll land a paying job. And when eventually someone sees you having so much fun at what you love doing naturally, they’ll finally offer you a job and you’ll get to code in such a way that they’ll effectively remove great amounts of that fun from the activity. But at least they’ll pay you for it.