I love the idea behind scratch, but I've found the implementation to be a bit lacking at times. It's buggy in ways, the support for variables is quite basic and difficult to use, and there's just a lot of rough edges around stuff that should work like copy/paste and shared functions.
Perhaps we just need to focus some open-source energy on it.