Not for people inventing new stuff or pushing boundaries, but for the horde of developers who are copy pasting, google programming and writing classic ASP every day.
Those three years of apprentice were great and I learned a lot, but at the university I got to learn how little did I knew, even if those of us coming from informatics apprenticeships knew more than the majority coming from classical high-school programs.
Almost all the practical stuff I use for actual development has been learned outside of CS though. So you could easily have a talented CS degree with middlemanegement skills run an apprenticeship and teach someone how to be a great developer.
You probably couldn't build an entire company around people who cant decipher the shit from the quality stuff though. But a degree isn't a certainty in that department. I've interviewed CS majors who couldn't explain ACID, hadn't heard of SOLID and who also thought the singleton pattern was absolutely vital.
Their approach is more spend 5-9 months having the apprentice do mostly directed self-study, then a kind of final project and other work and, if they pass, an offer of employment. It's a really interesting model that seems to have worked well for them -- they attract developers from both traditional backgrounds and non-traditional.
They have a page that goes into what apprenticeship means to them here: https://8thlight.com/apprenticeship/
From what I've heard Germany has a similar trade school path for software development.
Basically the three last years of high-school are mixed with some apprenticeship, both theoretical and practical, with some kind of training at the end, sadly usually not remunerated.
Students can still apply to the university if they want to, they just need to meet the requested scores and do the exams like everyone else.
At the university level you can take the usual 5 year university degree oriented to "learn to learn", or a more skill oriented one just 3 years long.
With Bologna those 5 year degrees became a classical 3 + 2 master, but still kept their "learn to learn" spirit. At least on the good universities, the majority being public ones.
They pay students from economically weaker segments who don't/can't attend college and teach them software development basics some time.
And these students are put in production teams to learn from apprenticeship.
http://www.livemint.com/Companies/LU4qIlz47C5Uph2P5i250K/Cha...
If you look at it as a way of companies forcing people to pay for their own training, the proper way to bring apprenticeships back is to make college more selective or expensive. This would increase upward mobility for those that can't afford school by forcing companies to train their employees again. However it would probably be seen as an attack on the poor and minorities for making college more exclusive.
Put differently, the increased accessibility of college has killed informal forms of education. To undo this would mean making college elitist again because the widespread nature of college education is what causes companies to hire only graduates.
Another factor in the downfall of apprenticeships is the inability to weed out people unlikely to succeed because of discrimination laws. In the past it was common to get engineering apprenticeships off the street IF you could pass a series of tests. IQ especially has a strong correlation to job success, and only taking say the top 10% of scores made apprenticeships much more likely to succeed (and less expensive for the company). These tests were found to be biased against minorities and women so disappeared in the 60's, around the same time college education became popular among the middle class.
Correlation isn't causation of course, so I can only speculate on these being driving forces behind the end of job training. Looking back at Germany, an interesting twist is that education is free but the acceptance rate low. Basically college in Germany is elitist, and if my theory holds water this would lead to more on the job training.
Another somewhat depressing thing to keep in mind is that HN is a bubble. You need to be fairly smart to be an effective engineer. Most are significantly smarter than the average person, and by popular accounts an odd bunch. It might seem reasonable to people like us to teach people to code by osmosis but to most people programming is incomprehensible and unenjoyable. I saw this first hand in primary school where software programming was an elective. There were 30 or so students in the class and only three of us had any idea what we were doing and interest in writing code.