> We build and support Scratch to provide creative tools for anyone to explore computation in a from that is relatable and has a low floor for understanding/entry.
I love this philosophy. Computing is so much more than application development. It's a creative tool, and exploration tool, a tool for finding insight and exploring spaces. Giving people access to those tools without gatekeeping or accidental complexity is fantastic.
The popularity "you need to start with SICP" and "BASIC mutilates programmers" lines of thinking have done so much damage to the way we, as an engineering community, think about the role of computation in society.
Truth is, QBASIC was one of the best programming environments for beginner programmers. Sure it wasn't sophisticated like Turbo Pascal or Smalltalk, but with a single button you could switch back and forth between running your code and live-editing it. If an error occurred you could correct it and continue from where you were. Unfortunately when you got too close to the 640KB memory limit it was no longer possible to fit both the editor and the program in memory at the same time.
> and "BASIC mutilates programmers" lines of thinking have done so much damage to the way we, as an engineering community, think about the role of computation in society.
I learned BASIC when I was about 7 years old by reading the books and banging out code. When I didnt have access to a computer, I wrote the code on paper and entered it later. I can say that it was very hard for me to wrap my head around the C style syntax after a few years of immersion as a kid. I did get over it and I think that the problem helped me develop a deeper understanding of programming concepts. So maybe both can be true?
As a 10 year old reading BYTE magazine what seemed common to C, FORTH, and LISP was that one could add new "words" to the language. It was quite a while before I really got that there was a difference between functions, functions that take functions as arguments (or return values), and functions that take expressions as arguments (or return values.)
I love this philosophy. Computing is so much more than application development. It's a creative tool, and exploration tool, a tool for finding insight and exploring spaces. Giving people access to those tools without gatekeeping or accidental complexity is fantastic.
The popularity "you need to start with SICP" and "BASIC mutilates programmers" lines of thinking have done so much damage to the way we, as an engineering community, think about the role of computation in society.