Programming, by itself, the mechanics of it, isn't something that I find stimulative enough to derive long-term enjoyment.

I think the author is right in pointing out that there's an ugly side to programming that includes bugs, bad API's, bad tools, bad documentation, etc.

This is what I have come to term "programmer on programmer violence". We certainly can't blame anyone else for these issues.

This I don't enjoy.

Not to single them out --because EVERYONE has these issues-- but you look at the bullshit you have to deal with when doing iOS programming and, yes, it can be down-right demoralizing. Horrible documentation, an IDE that looks more like an iTunes-styled toy than a professional development system, bugs, bugs!, no feedback, huge delays in fixing problems, etc.

Again, this isn't just about Apple, as nearly every system I've worked on over the years has some kind of bullshit that you have to deal with, like it or not.

This, I do not enjoy.

That's why, when justified, I've always gone for projects where I can "own" all of the code. Two typical cases are FPGA-based projects where you start with a blank slate of sorts and develop it into a useful signal processing subsystem. Or, embedded systems where I've had the chance to roll my own RTOS from scratch. These projects are fun. And you don't have to deal with other people's bullshit, laziness, incompetence and technical baggage.

These projects I really enjoy.

The other side of this question is: If you didn't program, what would you do?

I am an odd duck. I am equally at home designing multi-gigahertz digital circuits, programming embedded systems, FPGA signal processors, iOS apps, workstation apps, websites, doing mechanical design and even running a CNC shop. I've been lucky enough to have had the opportunity to learn tons of disciplines through hours-upon-hours of hard-work and dedication. I've enjoyed every minute of it.

What I have not enjoyed --and I'll try not to get too political here-- is when your efforts are affected or even destroyed by external --political-- forces. I recently had to close down a beautiful electronics manufacturing operation that took me fifteen years to build. Typical story: Started in the garage. Worked my ass off. Learned a ton of stuff I didn't know. Worked some more. Grew it to a 15 employee company in a 10,000 square foot building with top-notch manufacturing equipment. That's the good side of the story.

While I was busy doing this, fucking idiots, otherwise known as politicians, where busy meddling with free markets and passing laws and regs that would, ultimately, cause the economic implosion in 2008. My customers couldn't finance their purchases (this was B-to-B in a mostly leased-equipment environment) and orders went to zero or nearly zero instantly. There's a lot more to it, but that's the basics. At one point no option remained but to fire everyone and shut it down.

How does this relate to the "Would you want to be doing this at 50?" question?

Be careful about doing something or falling in love with something that external forces can seriously affect, damage or take away. For me I'll generalize and call this "manufacturing". No, I don't want to be in manufacturing any more. Not now, not when I am 50. It's a shit business in the US and, between our politicians and what's going on in China, it is getting destroyed a little more every day. Here's a case of having invested fifteen years of my life into something that the government destroyed. I did not destroy it. None of my actions caused the economic downturn. None of my employees or my customers caused it. It was government policy that allowed millions of people making $50K a year to buy $500,000 homes they could not afford. And so it went.

The software industry, as fucked-up as it can feel from time to time, can have a lot more isolation from these issues. That's not to say that it isn't affected by economic ebbs and flows, it is.

There's a fundamental difference between the nature of a software business and, say, a manufacturing business. At any given time I had to have one to two million dollars in inventory, tools and equipment (parts, assemblies, raw materials, manufacturing equipment, tools, infrastructure) in order to be a small manufacturer. And, when things go bad, this infrastructure is sitting there, right above your head, ready to squash you, ready to kill you off unceremoniously. It can happen almost literally overnight.

Software is different in that infrastructure is minimal and there is no real inventory investment. You can do software from your bedroom and build a nice lifestyle business or million dollar venture. Most importantly, software is incredible in that you can pivot overnight. You can be doing children's educational apps one day and a real-time process monitoring system the next. This allows for great security and potential stability for years and years. This is a huge advantage and, yes, this is something that would be desirable to have in your life at fifty and beyond.