“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.
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.
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.
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.
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.
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:
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.
These geeks have grown up and revolutionised how the world uses computers.
Instead of the command prompt, they realized that computing would be a lot easier if it looked more like this:
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. .
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.
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.
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.
If graphical programming is good enough for professional engineers, why would anyone consider graphical, block-based languages “not real coding”?
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