BLS had some classification changes over the years. I think it's interesting in the "this is how people thought about the role over the decades."

Today there are computer programmers (15-1251), and software developers (15-1252), and web developers (15-1254).

In 2018, there was a reclassification - https://www.dol.gov/sites/dolgov/files/ETA/oflc/Presentation... where 15-1132, Software Developers, Applications and 15-1133, Software Developers, Systems Software where reclassified into the software developers (15-1252) group.

The other thing that confuses this is that a lot of positions were classified as Computer systems analysts because that's a position that a TN visa can be hired for (there is no software engineer in there... and it wasn't until relatively recently that one could be a "software engineer" in Canada without being an Engineer.

Back in 2010 ... https://www.bls.gov/cps/cenocc2010.htm

    Computer programmers    1010 15-1131
    Software developers, applications and systems software    1020 15-1132, 15-1133
Where the "Computer programmer" was the more junior classification and Software developers working on a word processor were classified differently than a software developer working on the operating system... and they were the more senior positions.

This division still shows up in the definitions.

https://www.onetonline.org/link/summary/15-1252.00

    Software Developers
    Research, design, and develop computer and network software or specialized utility programs. Analyze user needs and develop software solutions, applying principles and techniques of computer science, engineering, and mathematical analysis. Update software or enhance existing software capabilities. May work with computer hardware engineers to integrate hardware and software systems, and develop specifications and performance requirements. May maintain databases within an application area, working individually or coordinating database development as part of a team.
https://www.onetonline.org/link/summary/15-1251.00

    Computer Programmer
    Create, modify, and test the code and scripts that allow computer applications to run. Work from specifications drawn up by software and web developers or other individuals. May develop and write computer programs to store, locate, and retrieve specific documents, data, and information.