@User my dream is that there is an abstraction layer which removes any dependence on simulator, You could switch between ngspice/xyce/spectre/hspice/afs etc.
The fact that we're writing our testbenches that are tied to a specific simulator is doing it wrong in my opinion.
The best analogy I can think of is that we need a spice LLVM: