Misconceptions about Scratch and other Block-based Languages (Part 1)

 
Coding students

“Scratch is not a real coding language”

A common misconception

One of the first questions I often ask new coding students is “Did you do any coding before?” Many students say no. Some tell me they’ve tried online video lessons for Python and Javascript. Others offer up Java for Minecraft or Lua for Roblox. 

When I investigate further, these students often add that they “...did some Scratch in a Singapore school when they were younger...” Even if they don’t say “...but...”, it’s clearly implied. Either they don’t think Scratch is “real coding”, or they think that it’s just for kids. 

 

A student’s Scratch animation

 

It’s very common for people to hold certain ideas about block-based coding such as Scratch. They think it’s only good for making simple animations, or that it’s not “real coding” because it’s not done by typing text.

Previously, we wrote about the <differences between Block-based coding and Text coding>, using Scratch and Python as examples. In this new series, we want to explore some of the assumptions people have about block-based coding platforms, such as Scratch.
Are they really as valid or reasonable as they seem, or are they just myths?

“Scratch is not a real coding language.”

Short answer:

Scratch is a real programming language, period. A programming language is a language that allows people to communicate instructions to a computer to perform computational tasks. Scratch does just that. 

Long answer:

Scratch may be visual instead of text-based, but it is a real programming language. It has all the important features of most programming languages: you can create games, simulations, complex calculations, or even AI and 3D programs. 

2.jpg

We shouldn’t expect programming languages to behave or look the same. Each language is different. Each is best suited for a certain purpose or purposes. 

Some programming languages are used to create programs to solve problems or interpret data. Other programming languages are more suitable for making certain software or apps.

Scratch is a programming language designed to be easy to pick up by a new coder, regardless of age. It is also designed such that younger learners will be intrinsically motivated to make something to share with their friends and family. 

 

A flappy bird game made by our students

 

And like all other languages, every Scratch project causes a computer to perform a series of tasks that result in meaningful programs, games, calculations and animations.

 
4.png

But it doesn’t look like coding…

There’s too much colours!

 


I know what you mean. Scratch (and other block-based languages) are just so… colourful. When you load the Scratch homepage, you’re greeted by friendly cartoons that seem appropriate for preschoolers. How could this possibly be anything like real programming?

Think of it this way:

Programming languages are designed to make it easier for humans to write complex instructions for a computer.
You shouldn’t be faulting a language for making your task easier. 

 
Colour themed code editor

Colour themed code editor

 

In fact, almost all programmers use helper programs to colour-code and auto-correct certain words and alignment in their code, precisely because coding with plain text is so difficult and frustrating.  

Typing is so 1980s...

A long time ago, if you wanted to use a computer, you had to work with a command-line that looked like this:

In DOS, there are no icons, menus or dialog boxes. Everything is done by typing text commands at the DOS prompt.

In DOS, there are no icons, menus or dialog boxes. Everything is done by typing text commands at the DOS prompt.

A few visionaries looked at this and decided that typing is overrated. They decided to create a visual system so that people wouldn’t have to remember loads of commands just to use their computers.

Who are these geeks?

Who are these geeks?

These geeks have grown up and revolutionised how the world uses computers.

 
From left to right: Bill Gates, Steve Wozniak, Steve Jobs

From left to right: Bill Gates, Steve Wozniak, Steve Jobs

 


Instead of the command prompt, they realized that computing would be a lot easier if it looked more like this:

 
Windows provides us with a graphical user interface or 'GUI'. It is called graphical because it makes use of graphics to organize the workspace, allowing us to work in a more intuitive way.

Windows provides us with a graphical user interface or 'GUI'. It is called graphical because it makes use of graphics to organize the workspace, allowing us to work in a more intuitive way.

 

Most people wouldn’t dream of going back to using text commands to do the same tasks they are doing with a GUI.
So why would you want to insist on starting coding with text?

Typing in text was never a requirement for programming. 

Before the 1980s, most programmers wrote and stored their programs using holes on physical punch cards. .

 
10.jpg

Margaret Hamilton standing next to the stack of code that puts two men on the moon

The First Software Engineer

 

Margaret Hamilton headed the team at the MIT Instrumentation Laboratory (now the Draper Laboratory), who wrote the code for the Apollo 11 guidance computer that made the moon landing possible.

 
Apollo 11

Apollo 11

 

When the Apollo missions were planned, the process of writing code began on large sheets of paper. A keypunch operator would create holes in paper cards, keying the code into what were called punch cards.

 
Because the factory workers were mostly women, core rope memory became known by engineers as “LOL memory,” LOL standing for “little old lady”.

Because the factory workers were mostly women, core rope memory became known by engineers as “LOL memory,” LOL standing for “little old lady”.

 

The punch cards were then sent to a factory, where mostly women—many of them former employees of textile mills—wove copper wires and magnetic cores into a long “rope” of wire.

With coding written in ones and zeroes, the wire went through the tiny magnetic core when it represented a one, and it went around the core when it represented a zero.

The truth is, there’s nothing intrinsically special or sophisticated about using text to code.

It just so happens that currently, many programming languages are written and stored as text. 

Graphical languages are also used by working coders - for instance, many engineers use the G programming language to create programs by connecting graphical nodes. 

 
An example of graphical programming in G, using the Labview platform.

An example of graphical programming in G, using the Labview platform.

 

If graphical programming is good enough for professional engineers, why would anyone consider graphical, block-based languages “not real coding”?

 
 
14.png

In the next part of this series, we’ll look at the claim that Scratch is “too easy”

Subscript to our facebook and email list for regular updates on our articles, free projects and holiday classes!

 
 

Ming De

Author

nathanael.png

Nathanael

Co-author

 

This article is written by our instructors - Ming De and Nathanael.
Contact us at instructor@codeninja.sg or at +65 6401 7171 to find out more about Code Ninja’s classes and curriculum