"Kids today": Is programming quality going up or going down?
Not only am I as old as dirt, I started programming professionally when I was 16. So this may just be me being crotchety. But I perceive that the average quality of the code in today's software projects is going down.
That doesn't mean that software projects today don't have vastly more scope and power than they did in the 1980s: they do. I'm just saying that when I engage with clients nowadays, I brace myself to see "FORTRAN 77 written in X": huge monolithic functions with essentially-global variables, deeply embedded loops, etc. Often, X is a tag-based Web language (PHP, CF, ASP, etc.) but I'm not talking about "tag soup" per se. It's not the particulars of markup and code that bother me, although I do think:
- Tag-based Web languages facilitate imperative, drop-through programming
- Tag-based Web languages are now a common early step on the "path to professional programming"
- Therefore, tag-based Web languages aren't blameless
Although X is often tag-based, I perceive an increase in FORTRAN 77 written in the more mainstream object-oriented languages such as C# and Java. (P.S. Please note that I'm picking on FORTRAN 77; I'm aware that Fortran (no caps!) has evolved into a powerful modern language.)
What do you think: am I just being crotchety or are "kids today" increasing the probability of experiencing really poor code? Take my self-selected, totally unscientific poll:
Update: Guillaume Theorot makes the very fair point that kids "back in the day" probably produced crap, too. I know I did. And coding has always been a young person's job (while those who stay in SD tend to move into management). I would guess that the median age of a person whose job is writing code is 30 or less. So there's a lot of code out there written by people who are still in the first half-dozen years of their professional career. So maybe the phenomenon is just that I had the good fortune to have long periods of my career where I was dealing with people who were significantly more experienced. Hmmm... depressingly logical.
Update 2: Implicit assumption -- FORTRAN 77 in X is not easier / faster to produce than modular code. It may seem to be for the first 100 lines, but these 1,000-line monoliths are inevitably fragile as heck and development has ground to a standstill.