I use them (occasionally), but only when the pain of not using them would be greater, because they are a blue-assed bitch.<p>But they really do enforce a very strict version control. If we want to be absolutely sure of a version, Git submodules will give that to you.<p>But I only use them in one PHP backend project that I plan to barely ever change, because every change means that I have to crawl through a raft of repos, updating a submodule chain.<p>It's exactly the kind of operation that calls for a scripting solution, but it is also one of those projects, where I change it so seldom, that it isn't worth it to write a script.<p>For my frontend (Swift) work, I use SPM (Swift Package Manager). Much easier on my nerves.