To speak to the second of naming things, I'm a big fan of content addressable everything. Addressing all content by hash_function() has major advantages. This may require another naming layer to give human recognizable names to hashes, but I think this still goes a long way towards making things better.
It also requires (different) attention to versioning. That is, if you have arbitrary names, you can change the referent of the name to a new version, but you can't do that with a hash. You can't use just-a-hash in any case where you might want to upgrade/substitute the part but not the whole.
Conversely, er, contrapositively, if you need referents to not change ever, hashes are great.
If it's worth saying, but not worth its own post (even in Discussion), then it goes here.
Notes for future OT posters:
1. Please add the 'open_thread' tag.
2. Check if there is an active Open Thread before posting a new one. (Immediately before; refresh the list-of-threads page before posting.)
3. Open Threads should be posted in Discussion, and not Main.
4. Open Threads should start on Monday, and end on Sunday.