Programming languages have, historically, necessitated understanding a list of sometimes complex and often cryptic commands. Fortran, BASIC, C, and Python (and all the others!) all rely on a text-based environment. Block-based programming languages don’t.
My name is Jamie Smith, and I’ve been learning to write programs for nearly two decades, while also immersing myself in the rich and detailed history of home computers.
Today, I’ll cover the elements which comprise block-based programming languages and how they can be useful. I’ll also talk a little about why the fundamental concepts you’ll learn to use with block-based programming languages are transferable to more traditional software development environments.
What is a Block-based Programming Language?
Put simply, the main component which constitutes a block-based programming language (or a “visual programming language”) is the ability to let users create their own software applications – ranging from very basic to very complex – using a drag-and-drop, visual development tool.
These kinds of tools have existed for decades (GRaIL and Pygmalion – released in 1968 and 1975, respectively – both allowed users to create code using a visual interface), and some have even become extraordinarily popular (Max/MSP and Reaktor), but it’s only recently that they’ve started to be taken seriously as tools to create commercial-quality applications.
They’re also now being used to provide an understanding of fundamental programming concepts to users of all ages. One block-based language, in particular, Scratch, has also received much acclaim thanks to its ability to run very well on the affordable Raspberry Pi computer.
Is Block Coding Real Coding?
The short answer to this question is “yes.” And here’s why:
Block coding allows users to grasp the basic, common functionality which appears in almost any major programming language. Anyone who wishes to write their own code will absolutely have to understand variables, loops, IF statements, and mathematical operations.
Unlike “traditional” programming methods, block-based coding allows users to learn how these tools work without needing to learn a list of sometimes daunting cryptic commands.
Previous attempts to create accessible programming tools have also left new users with “bad programming practices.”
For example, a BASIC user who comes to rely on the very useful GOTO command would likely have found it difficult to adapt to other languages which don’t support this kind of instruction.
What is the Difference between Text-based Coding and Block-based Coding?
Put simply, the main differentiator between a text-based coding environment and a block-based one is that a block-based environment allows you to write code by visually selecting (usually by drag-and-drop) the “blocks” (such as functions, variables, and constants) and placing them into your program.
Disadvantages of Block Coding
The main disadvantage any user of a block-based programming language will encounter will be its inherent limitations; the inability to use external libraries and perform detailed file operations may eventually become frustrating, while increasingly complex code will become almost impossible to maintain.
Likewise, when you want to start incorporating “lower-level” programming functions – such as memory optimizations or speaking directly to the user’s hardware in some other way – it’s definitely time to graduate to a more traditional option, such as C++ or maybe even Python.
Moving from Block-based Coding to Traditional Programming Environments
As we stated above, the main advantage of block-based coding languages is that they allow the user to learn the fundamental ideas that make up software development using an interface that anyone can use.
Once you feel that you’ve reached the limits of block-based coding – or are at least confident enough to move to a traditional programming environment – we would absolutely recommend looking at Python.
Not only is Python one of the more accessible text-based coding languages, but it also has fantastic versatility as well as tremendous processing capabilities.
Getting Started with Block-based Coding
Here are some questions you might be interested in about block-based coding, I’ll answer them briefly below.
What is the best block coding solution for kids?
If you’re interested in teaching your class or children about computer programming, the best block-based solution is undoubtedly MIT’s Scratch.
Scratch not only provides a wonderful – and surprisingly capable – educational tool for writing code, but it’s also supported by a continually-growing website showcasing the latest projects from the community.
What are some free block-based coding tools?
Again, Scratch’s ease-of-use, open-source nature, and portability make it worthy of consideration, even if your only concern is whether or not a tool is free.
However, there are several other worthy suggestions, including Blockly, Code.org, and Stencyl. There is also a free, trial version of GameMaker Studio for anyone who’d like to experiment with a more powerful tool.
Can you code an app with block-based coding?
In certain cases, yes. GameMaker Studio allows users to create native iOS and Android games using block coding. Likewise, GameSalad allows the creation of mobile games with block coding.
Other solutions, such as Appy Pie and Appery IO allow users to create non-gaming apps without coding, but these are really glorified interface designers and can’t really be considered “block-based coding”.
We really do live in amazing times; the fact that we can create our own applications – with their own complex logic – without needing to actually write a line of code is a testament to that.
We’d love to hear your thoughts on block-based coding, and if we’ve perhaps missed out some solutions you feel are relevant? Anyway, leave a comment below and let us know.