>>122
1) .NET lacks an incremental garbage collector because it's a giant, retarded monster. It sucks on multicore systems because side-effect-heavy OOP (read: retarded bullshit) is built in to the very core of the VM.
2) RAII is a coping mechanism for manual memory management and a way to deal with side effects. It's nothing special. C#'s "using" syntax or Common Lisp's UNWIND-PROTECT do the same thing more explicitly.
The only reason you feel the need to hide deallocation in "}"'s is because MEMORY REALLY IS NOT SOMETHING YOU SHOULD HAVE TO LOOK AT. There's no need at all to go to the trouble of essentially writing your own memory monads over and over. Furthermore, piggybacking other resources on the lifetimes of memory objects is just a hack, and hides things that really should be made explicit. This is a common trend in C++ -- hide things that should not be hidden, expose things that should be hidden.
RAII is the most oversold piece of shit technique around.