Scratch is not a serious programming language -- by Dick Baldwin
This user comes from
Find other posts in the same category: | | |

Long description

Scratch is not a serious programming language

However, even though the Scratch website is incredibly popular among younger students, Scratch is not a serious programming language in the sense that Java, C++, and C# are serious programming languages. Scratch is seriously lacking insofar as support for important fundamental programming concepts is concerned. Of the ten to fifteen fundamental programming concepts that most computer science professors agree to be extremely important, Scratch only supports three or four.

The main emphasis in Scratch is on multimedia capabilities

Once you get beyond variables, if-else statements, loops, and operators (which Scratch does support in a limited sense), Scratch is primarily a toy language that makes it easy for students to do wild and wonderful things with a wide array of multimedia capabilities. (However, I believe that the multimedia capabilities are one of the factors that make Scratch so popular among younger students.)

Developed in Squeak

Scratch was developed using a programming language named Squeak, but the underlying language is completely hidden from the Scratch programmer. Although I know nothing about Squeak, I don't believe that it is widely used in either academia or industry. Apparently, however, it was well suited for the development of Scratch.

Unconventional loop structures

While Scratch does support loop structures, the loop structures in Scratch are unconventional, at least from the viewpoint of someone whose primary programming experience for the past twenty years or so derives from a tradition rooted in C including C++, Java, and C#. I don't know if the unconventional loop structures in Scratch are a latent manifestation of Squeak and/or Smalltalk, (which I also know nothing about), or if they were designed that way for some other reason. In my opinion, it would have been better from an educational viewpoint for Scratch to use a more conventional C-style loop structure based on the keywords while, for, and possibly do while.

Scratch is a dead-end IDE

The bottom line is that Scratch simply wasn't designed to teach students how to do serious programming. While it may be educational with respect to the effective use of multimedia capability, (and it is very successful in giving young students constructive outlets for their creative energies), insofar as computer science education is concerned, Scratch is a dead-end IDE. Scratch is clearly not suitable for major programming projects. Further, there is no evidence that the folks in the Scratch program at MIT are working on a smooth migration path for students from Scratch to any serious programming language.

Rating (1 to 100) 75 = very good; 50 = good; 1 = unknown

To see articles on the same topic, click the links below the name of the author at the top of this page.