Someone mentioned this in another thread awhile back and it really hit home with me. It's a line by the Joe MacMillan character (portrayed by Lee Pace) from
Halt and Catch Fire:
"The computer isn't thing. The computer's the thing that gets us to the thing."
That's how programming felt when I got into it back in the 80's and was still there when I started doing it professionally in the 90's. It felt like we were using computers as tools for creativity and exploration. For making the world a better place. Increasingly, as the valuations skyrocketed, that feeling has diminished to the point where I don't see it anywhere anymore. It's not about "getting us to the thing", it's not about making the world better. It is about making a buck.
Now, look; I don't have a problem with people earning a living or even with Apple having a $2T valuation. My problem is the influence that has had on the industry. One might suggest that such a thing is unavoidable and they are probably right, but can't we at least try to be better? Can't we at least try to keep in focus the goal of making lives better and less about showing yet another ad? People are genuinely suffering right now all over the world. I challenge anyone to suggest that health and economic hardships are less important than Facebook.
On a more practical, day-to-day matter: my job as a programmer is, well... my GOD the amount of tooling! When I got started web programming I had a text editor, and FTP client, a server, and a browser. I made a change, uploaded the files, and refreshed my browser. Don't get me wrong. Having a debugger built into the browser is great. Having a proper version control system is fantastic. I think, however, we're missing the forrest for the trees where tooling is concerned.
Here's a case in point that a good friend pointed out to me recently: https://github.com/thecreation/jquery-wizard It's a simple jQuery plugin (please let's not get sidetracked with "jQuery is so old|bad|blah blah blah"!) for building wizards. Just look at all the files needed for the various tooling in relation to actual source code. Babel, Bower, ESLint, NPM, Travis, Gulp, Karma. You have to ask yourself, how much time does the developer get to spend on making his/her product better versus maintaining tooling support?!
And _that_ is what programming is like right now. I hope it changes. I really do.