Scratch Programming Language
This article analyzes Scratch as the programming language. Though Scratch is primarily a children's programming language, it has a surprising number of programming concepts built into it.
- Scratch is turing complete.
- It is primarily event-driven.
- Whether or not it is OOP is debated in the community.
- Scratch has variables and lists for data storage, and arrays can be replicated.
- Scratch is not atomic in repetition, though that can be simulated with Single Frame programming.
- Scratch 1.4 does not support procedures, and recursion. However, Scratch 2.0 will support these features.
- Scratch has many simplified casting rules. Data isn't, however, first-class — you cannot have first-class lists, sprites, or procedures (lambda).
Scratch has limited hardware/OS access, and is supposed to be a very "safe" programming language. The following can be accessd by Scratch:
- Ambient volume
- Mouse position relative to the Scratch frame
- Key presses, only if Scratch is in focus
- In Scratch 2.0, your movements will be provided as sensor values, using a webcam for image input.
- The filesystem can be accessed while in development, but not while running.
Scratch Modifications offer more OS permissions.