> This is great for education but I wonder how often a student will decide they love programming (when it's set-up like this) and then realize they hate it when confronted with all different systems and set-ups you generally have to deal with in the real world.
Maybe we should be working to improve the dev environments in the "real world" so that programmers can focus on programming?
What I'd really like to see is a strong focus on making the the default experience decent so many people can avoid needing to tinker but having some obvious directions to look in when you realize that you've outgrown the defaults.
A small example I'd use is the way the Python infrastructure around the package installer (pip) has improved over the last couple of years. Experienced developers used to have a ~/.pip.conf to set defaults like caching, timeouts, failover, etc. but it was a perennial hassle for newcomers. Since then, a lot of time has gone into removing the needs for that config (e.g. adding a CDN, making caching better and enabling it by default, etc.) which saves time for newcomers and means that experienced developers can stop maintaining another dotfile.
Maybe we should be working to improve the dev environments in the "real world" so that programmers can focus on programming?