I work in enterprises with 50,000+ employees and billions in annual revenue. I work with older programmers all the time! They're better at programming in Angular than I am. And they are wonderful mentors!
I think what's actually happening is some programmers, who happen to be older, don't keep up with their skills. Then when they interview, they bomb it, or talk about how they could do the same thing in an older stack.
That's great, but the company is really invested in the current / new stack, so it doesn't make sense to hire someone who does not have those skills. So they pass them up and find a candidate who knows the software the company is looking for.
But the older interview candidate, instead of reflecting on themselves and realizing they need to spend time enhancing their skills, they simply say the company was "ageist" and blame it on age discrimination.
Blaming others is generally easier than blaming yourself, I guess.
The scenario you talk about happens for sure. And some of those protests are legitimate; we've made little advance in real productivity since the 70s but all the while churning languages and libraries and environments like fashionable clothes partly because programmers are on the average young and inexperienced. So after a decade or two of riding the wheel, a lot of engineers decide it's pointless and just kind of check out. (Not me, FWIW; I'm on board with React Hooks and looking for an excuse to use ReasonML.)
On the other hand, ageism is real. When I was younger I was told more than once by managers, straight up, this candidate is too old so find an excuse not to hire. And now in my 40s, when I walk into some companies for an interview, I can feel the decision has been made before I even start talking. Not everywhere, not even most places, but it happens for sure and it's not even that subtle.
> we've made little advance in real productivity since the 70s but all the while churning languages and libraries and environments like fashionable clothes partly because programmers are on the average young and inexperienced.
Making a real time video chat client is now a literal programming exercise, it used to be the domain of multi-million dollar venture backed startups that were valued in the billions.
Real time chat between users is now a feature that is added to an application in a day, or even a few hours if you follow any of the myriads of tutorials available on YouTube.
Go from writing a UI in C/C++ to writing it in any of the higher level languages. Assuming you don't get caught in some design pattern trap that results in massive code bloat, it is now possible to do things in hours that used to take days to weeks.
Heck, transparency is no longer "write some ASM" routines, it is setting an opacity variable!
Some tech stacks, such as those for making basic CRUD apps, may have actually degraded a bit, but at the same time someone who is only slightly technical can now drag and drop their way to an online store front that is a fair bit more powerful that Viaweb was back in the day!
Heck, it is possible to now go from an empty folder to writing+deploy HTTPS API endpoints in under half an hour.
Edit:
More stuff!
App (not web!) updates can be deployed to users by uploading a file and having a client pull down the changes and seamlessly switch over to the new code next time the app is launched. Versus mailing out disks!
There are app stores that you upload intermediate code to and they'll compile apps to the appropriate architecture for a customer's device!
During 72 hours of coding for Ludem Dare, game developers and artists work together to create games that are as complex as a full fledged commercial game would have been 25 years ago.
And of course, many corporate software engineering efforts continue to fail or go massively over budget for largely political reasons.
In the 1980s a spell-checker was a very complicated project and now it's simply a hashmap lookup. But it's not because we invented the hashmap since then, or nobody in the 80s would have known that, it just wasn't possible with the RAM limitations at the time.
Likewise, moving from ASM to C to Smalltalk is a night-and-day improvement... that we made in the 1970s. The difference again is what hardware we get to run it on.
Video game construction kits existed in the 80s, and 80s GUIs looked pretty much the same as they do now if you ignore resolution.
Drag and drop application development was huge in the 90s, and the CRUD applications of the time weren't significantly different than now, other than they didn't run in a browser. HTTPS wasn't hard back then, and you could write a Perl endpoint in half an hour easy.
When it comes to things like playing video, it's easy now but I don't even really consider it programming. You're just installing software that does it for you.
Libraries and OSS and StackOverflow and various services have made a real difference. I'm not arguing that we haven't made progress. I'm just saying that I can see how some people feel that this year's incremental advance or retreat is not nearly as exciting if they've seen how the last 20 worked out.
Your discussion of "real time video chat clients" has me cracking up; it seemed that a myriad of pieces of software had this figured out in the 2000s, but today I can't think of a single piece of software that I'd actually want to use for video chat. All of them have some fatal Achilles' Heel: Facetime has security problems/previously did not have group chats/is exclusive to Apple OSes, Skype is laggy and has more connection problems than any piece of software I've ever used, Google Hangouts chokes once you get to 3 or 4 participants and frequently has issues with even 2 participants, Duo is only usable on Android/iOS as far as I know... does anybody have a good client that they can actually recommend?
Myself, I've gone back to using Ventrilo because I realized that I really don't care about having video.
I mean sure, video chat is overrated... but the tech is there, it just turned out it isn't quite as desirable as first imagined!
Firefox Hello worked remarkably well IMHO, it was super simple to use.
The field is full of video chat clients though. Uber-Conf is popular, although I think the % of problem free calls I've had with them is less than 50%.
Zoom has worked well for me, no real issues.
Facebook Messenger, privacy issues aside, works well.
> Go from writing a UI in C/C++ to writing it in any of the higher level languages.
I've never done this in C/C++ specifically but I have to imagine that the GTK bindings are mostly language agnostic. Using a tool like Glade[0], you can build a GTK GUI with ease.
I don't remember where I read this, but that reminds me of the "Perl Paradox" -- that if your job listing requires a "Perl programmer", you get worse programmers, even though a good programmer can equally well adapt to any language, including Perl. But if you require such a person, your only applicants will be people who could never adapt to a new language.
Edit: Ah, it's actually named that and I found a lot of results for it:
Interesting. I legitimately liked perl back in the day. The ability to do things like inline c code, etc. was great. But I've been immediately passing on any roles that mention Perl for a long time.
> they simply say the company was "ageist" and blame it on age discrimination.
This is a topic I'm very interested in (and as I've gotten older, my interest has only grown).
In ~20 years as a coder I've seen only a handful of overt ageist issues. I've seen plenty of ageist language and attitudes, and even more assumptions, but those are a lot harder to answer "Yeah, but would they turn down a qualified candidate for that?" about. I've known people who were both experienced and open-minded, as well as those that were experienced and closed-minded.
End result: No idea what to believe. I'm not comfortable assuming one way or the other, because either assumption is harmful if incorrect.
I am divided on this. On the one hand straight up age discrimination is definitely a thing. A surprising number of startup types don't even know it is illegal so they are completely explicit about it.
On the other hand, companies who engage in age discrimination are probably shit companies, so are you really losing out by them not considering you?
> companies who engage in age discrimination are probably shit companies, so are you really losing out by them not considering you?
If they have the money to make my life easier, and I end up not getting it, then yeah, I lose.
If they have the experiences that make me a better dev, and I end up not there, then yeah, I lose.
If they aren't actually that bad, they just have this one area of ignorance, but I never get to experience all those other benefits, then yeah, I lose.
If I'm NOT in a hot tech center and this is one of the relatively few jobs that is available/is a step up, and I don't get it, then yeah, I lose.
I myself have nothing to complain about, at least not in my experiences to date, but in terms of considering the issue overall, I don't think it can be so easily dismissed. I recall plenty of older techies struggling after the end of Y2K and the dot-com bust when the market wasn't "If you want a job, you can get a great one", and I assume there are plenty of people in the above categories.
They simply say the company was "ageist" and blame it on age discrimination.
Except they don't "simply say that".
It's a fact of the industry that is backed up by (a heck of a lot of) experience and observation, unfortunately.
In that sense, it's kind of condescending to deny the reality of the (sometimes painful and frustrating) experiences many people are having in this regard.
I think larger enterprises tend to be more friendly to older programmers. The companies move slower, so they have more legacy code and less interest in trends. Less fun to work at, but.
I think what's actually happening is some programmers, who happen to be older, don't keep up with their skills. Then when they interview, they bomb it, or talk about how they could do the same thing in an older stack.
That's great, but the company is really invested in the current / new stack, so it doesn't make sense to hire someone who does not have those skills. So they pass them up and find a candidate who knows the software the company is looking for.
But the older interview candidate, instead of reflecting on themselves and realizing they need to spend time enhancing their skills, they simply say the company was "ageist" and blame it on age discrimination.
Blaming others is generally easier than blaming yourself, I guess.