3 ms·
The goal of block based languages like Scratch is to allow beginners to be able to worry about logical errors without wasting nearly all of their time on syntax
by jecel 9y ago
The goal of block based languages like Scratch is to allow beginners to be able to worry about logical errors without wasting nearly all of their time on syntax errors instead. Sinclair was able to get the same effect on his machines with his multi-mode cursor and one Basic keyword per key (of course, the horrible membrane keyboards he used made this the only reasonable option).
The main problem with block based languages is that short code fragments take up the whole screen. This keeps people from ever going beyond trivial initial examples.
- thaumaturgy 9y agoI think a better approach to reducing syntactical complexity is simpler language. In traditional basic, a for loop looks like: for i = 1 to 100 print i next i The syntax here is very nearly as simple as possible. There are no parentheses, no semicolons, no braces or brackets; i is not declared ahead of time; indentation isn't important. Every new programming language is developed with its own syntactic dressings for ever-greater levels of abstraction. More experienced programmers want to see lambdas and continuations and parallelism and design patterns and so on, and these concepts are extraordinarily difficult to teach to beginners without also introducing advanced math. We forget how difficult it is to grasp these abstractions for the first time; we eat our young. I don't like graphical languages because they aren't a good stepping stone towards "real" programming. They are too limited, too verbose, too awkward, and too slow to build programs with. We assume that we can't make new languages that are resistant to syntax errors. But once upon a time, we did. (Despite all its many other limitations, I don't think I ever had a single syntax error in COBOL.)