system
Given the following post, respond as if you're commenting on Reddit:
human
CMV: Drag-And-Drop Programming Generally Acts as a Waste of Time and Is Largely Unnecessary

There has been a rise in the past several years in the popularity of various forms of “low code”, which often come in the form of “drag-and-drop” languages. Two examples of these languages which I have worked with are Scratch and Alice 3. These systems created an enclosed environment in which the user can set a scene, place characters or “sprites”, and drag various pre-made functions into a main method in order to have the sprites do various complex actions. These systems are often used in education, as an “introduction to coding”.

My issue with these systems and their growing popularity is that it often feels as if they cause programming to be more complex and confusing, rather than simpler. This is because, instead of learning a special syntax of English, these systems require users to learn how to use a software and the often complicated user interface it entails.

These systems are even used at a college level sometimes, and I see no reason why they are a neccesary step before learning the basics of standard languages such as javascript, python, or any other easier to learn languages. While I understand the point is to build the “logic” which programmers use, this logic can be built much faster when the user is put into a real, industry-used environment where the possibilities can be endless.

Of course, many argue these systems can be useful when introducing coding to those in a k-8 or k-5 environment. I feel this creates a two-fold problem: 

One, it fails to generate interest in coding. Sure, you may teach a child how to make a character say some words or wave at the screen, but that is not the magic of computers. Far greater interest can be created (with similar ease of difficulty) by guiding children through things which they cannot do themselves, such as beginner cryptography, like brute-forcing a small password, or writing scripts to make life easier.

Two: I see no reason why a child cannot just as easily learn a real language, even if it is HTML. Khan Academy and CodeAcademy both have amazing courses on beginner programming with Javascript, HTML, CSS, and several other languages. These systems also explain how to use the languages outside of their environment, so the young programmer can actually make things which they want to make.

Yet, it seems as if these “simplified” programming languages are becoming more and more common. Is there any real benefit to this?
gpt
The main purpose of Drag-and-Drop languages aren't to be programming languages. They exist as toys to allow kids to start thinking about computers as more than a collection of applications and show them that they can change what the computer can do.

Typed programming languages will always be superior to do anything with, but the nature of them having a syntax so distinct from english and yet such familiar terms makes them really hard to get someone to try things. Sure you could guide someone through a simple program and how to write it, but by doing that you fundamentally fail to teach the important parts. By constraining the syntax to a tray of blocks you remove all problems related to not knowing syntax and thus force people to actually think about it as a problem instead of doing what worked last time and asking how to do something. Colour and shapes allow syntax to be intuitive in a way typed languages can never accomplish leaving only the problem solving of programming remaining.

I do think a lot of it used incorrectly. Assignments do often fail to require problem solving and instead request that they animate something or make text boxes appear. That is the failure, not the languages themselves. They work great as a solution to let someone see and learn about the problem solving in the programming without having to teach them syntax.