Snap! is a re-implication of Scratch with various new additions that allow for real world programming such as object-orientated programming blocks. This allows for students to learn the programming logic that will be used when they go onto script-based coding languages like Python.