Updated 28-Jun-2024
Scratch is a visual drag-and-drop programming language developed at MIT. It is the most popular programming language for young learners, with 73 million monthly visits to the scratch.mit.edu website. It is available as mobile apps and the main website, where projects can be shared and remixed. Scratch v. 3.0 is implemented in Javascript which along with sharing and other community tools makes the website a superior platform for programming and interacting with Scratch.
Scratch vs. Scratch Jr.
Scratch Jr. is an app targeted for those too young for Scratch, but old enough to start using the interface (which is necessarily more limited). It has less functionality than Scratch, but is quite good as a first programming language/app. It supports things like modifying and creating backgrounds and sprites, and recording audio. You can actually start children on Scratch Jr. about age 4, but they have to be precocious readers already. For 6 year-olds, Scratch offers much more and the web app (they also have android/ios apps) has an entire community including the ability to share and "remix" other people's apps. At that level there are thousands of video tutorials for creating programs and games, and there is much more complex functionality (creating one's own blocks, creating variables, etc.).
I've got a 4 year old who isn't reading, but can work the interface of Scratch Jr. using an 8" tablet, and who enjoys using it. I've got a 6 year old who is entranced with building (and playing) games in Scratch. For him we use a Windows computer and a 22" monitor, so he can have side-by-side YouTube video tutorials/web pages, and the scratch web interface (https://scratch.mit.edu). Scratch supports a lot of creativity, not just "programming" or rather "programming" can be thought of as simple and complex interactions, animations, etc. There are built-in audio and image editors in Scratch and Scratch Jr. We spent time recreating the story of Hansel and Gretel in Scratch Jr. when my oldest son was 5 years old. It is quite a game changer for learning and entertainment.
Appropriate Devices for Scratch and Scratch Jr.
We use Scratch Jr. on a chromebook (10" with touchscreen, but also with mouse and keyboard) and an android tablet (8"). There are no difficulties or much of a difference with that app. I agree that Scratch is much better with keyboard, mouse, and larger display, and using the Scratch web app, not the android/ios apps.
How to Learn to Program with Scratch
A popular results for learn to program with scratch usually discuss the scratch interface, the various blocks, the use of sprites and backgrounds, sounds and images. This is a bit like describing carpentry by discussing the various carpentry tools. The first thing needed is not an overview of tools but the intentional appropriate use of them in constructing something. First of all, as with other skills, there needs to be a goal. And that goal needs to be captivating and engaging enough.
In terms of a curriculum it makes sense to follow a history of computer games, and introducing the different components of Scratch along the way.