The only major disadvantage is it takes time to develop.<p>The advantage is it makes development of the OS easier and application debugging easier. It is also makes future proofing the OS more robust. A program that can rewrite or inspect other programs is very powerful, in the same way lisp macros are.<p>One concrete advantage of this is you could write a debugger as a user application, it wouldn&#x27;t have to be integrated in to the language runtime.