<story><title>Scratch is the world’s largest coding community for children</title><url>https://scratch.mit.edu/about</url></story><parent_chain><item><author>schneems</author><text>Wow. Thanks for posting! I’m curious of your thoughts on other visual programming languages. Specifically LabVIEW.&lt;p&gt;My first job out of college was at NI where they heavily use LabVIEW. Every engineer in my cohort thought that paradigm was going to take off and over a decade later, it clearly hasn’t. One large factor is cost and proprietary tech, but I’m surprised few outside of the hardware testing world even know such a thing exists.&lt;p&gt;I now code in Rust and Ruby and don’t yearn for a visual language, but I do wish people who needed to code something up quick could do it without getting knee deep in IDEs, syntax, and terminals.&lt;p&gt;I’m curious if you’ve got an opinion on that space. What’s holding it back, and if we will ever see a “killer language” for visual programming in the productivity focused space? What do you think would be needed for scratch to fill that role?</text></item><item><author>cgk</author><text>Full disclosure: Principal Software Engineer here on the Scratch backend...&lt;p&gt;Scratch is not built to be a &amp;quot;teach your kid programming languages&amp;quot; system, it is based on the work and ideas of the Life Long Kindergarten group at the MIT Media Lab (the director of this group is Professor Mitch Resnick, the LEGO, Papert Professor of Learning Research). The Papert part is where the term Mindstorms comes from (&lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;www.amazon.com&amp;#x2F;Mindstorms-Children-Computers-Powerful-Ideas&amp;#x2F;dp&amp;#x2F;0465046746&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;www.amazon.com&amp;#x2F;Mindstorms-Children-Computers-Powerfu...&lt;/a&gt;) and was used by the Lego Group when branding those products, and our philosophy is heavily influenced by that.&lt;p&gt;I can say that the &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;scratch.mit.edu&amp;#x2F;statistics&amp;#x2F;&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;scratch.mit.edu&amp;#x2F;statistics&amp;#x2F;&lt;/a&gt; are real and we have a substantial footprint of backend services and custom software to support it. We handle on the order of 15-20 million comments&amp;#x2F;month.&lt;p&gt;The primary design philosophy is:&lt;p&gt;Passion: You have a strong interest in a subject&amp;#x2F;problem to solve&amp;#x2F;explore
Projects: Build something based on your passions, gain directly interactive experience with it.
Peers: Share your work with folks who are interested and provide feedback to you
Play: It should be fun!&lt;p&gt;Note that there is nothing in there about STEM&amp;#x2F;STEAM nor application development. 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&amp;#x2F;entry.  Having said that, the complexity of what Scratch can do rises sharply the more you work with it and the concepts behind &amp;quot;forking&amp;quot; and opensource are built in via the remix ability on individual projects.&lt;p&gt;A lot of design thinking goes into the frontend of Scratch to build on a creativity feedback loop that is not focused on learning Python or any other specific language (or the syntax of them, i.e. avoid &amp;quot;why isn&amp;#x27;t my program working... oh, one too many tabs... or maybe this semi-colon, or maybe this .&amp;quot;)&lt;p&gt;Another part I think is worth raising, the Scratch frontend is a sophisticated virtual machine interpreter that has it&amp;#x27;s own machine code and model that is executing in a Javascript environment in browser and it is still open source. Google&amp;#x27;s Blockly project was based on the ideas of Scratch 1.4 and when we ported Scratch 2 away from being Flash based, we partnered with the Blockly group to fork their code base and create Scratch Blocks.&lt;p&gt;Based on the TIOBE index, we&amp;#x27;re usually somewhere in the top 20 most popular &amp;quot;programming languages&amp;quot;. _eat it Fortran!_</text></item></parent_chain><comment><author>cgk</author><text>Thank you for the feedback!&lt;p&gt;I made use of LabVIEW around 2002-2005 and I liked it, working on systems to measure the length of fiber optics down to the femtosecond (it&amp;#x27;s amazing what you can do with differential wave form&amp;#x2F;phase analysis), which was then used to write custom C++ code to do these measurements in real-time at a millimeter wave interferometer, enabling the ability to do real-time adjustment to the sample phases for any fiber that was being heated&amp;#x2F;expanding in the sun.&lt;p&gt;LabVIEW allowed us to make a very quick demonstration of this as a working concept. Which illustrates what I believe is the most powerful thing about visual programming environments. They can excel at demonstrations and full working solutions without including the parts of computation that are social constructions (language syntax, data structure access and limitations, ...).&lt;p&gt;I am not convinced that the idea of a &amp;quot;killer language&amp;quot; will happen. While there is a through-line of abstraction heaped upon abstraction, I am unconvinced that these first 60 years of computation in society are going to be visibly recognizable another 60 years from now.&lt;p&gt;OR!&lt;p&gt;Linus Torvalds will invent a language that takes over everything, based on how git has consumed almost the entire space of source code management systems (a sociological phenomena&amp;#x2F;opinionated work flow process) and the success of GNU&amp;#x2F;Linux more generally.</text></comment>
<story><title>Scratch is the world’s largest coding community for children</title><url>https://scratch.mit.edu/about</url></story><parent_chain><item><author>schneems</author><text>Wow. Thanks for posting! I’m curious of your thoughts on other visual programming languages. Specifically LabVIEW.&lt;p&gt;My first job out of college was at NI where they heavily use LabVIEW. Every engineer in my cohort thought that paradigm was going to take off and over a decade later, it clearly hasn’t. One large factor is cost and proprietary tech, but I’m surprised few outside of the hardware testing world even know such a thing exists.&lt;p&gt;I now code in Rust and Ruby and don’t yearn for a visual language, but I do wish people who needed to code something up quick could do it without getting knee deep in IDEs, syntax, and terminals.&lt;p&gt;I’m curious if you’ve got an opinion on that space. What’s holding it back, and if we will ever see a “killer language” for visual programming in the productivity focused space? What do you think would be needed for scratch to fill that role?</text></item><item><author>cgk</author><text>Full disclosure: Principal Software Engineer here on the Scratch backend...&lt;p&gt;Scratch is not built to be a &amp;quot;teach your kid programming languages&amp;quot; system, it is based on the work and ideas of the Life Long Kindergarten group at the MIT Media Lab (the director of this group is Professor Mitch Resnick, the LEGO, Papert Professor of Learning Research). The Papert part is where the term Mindstorms comes from (&lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;www.amazon.com&amp;#x2F;Mindstorms-Children-Computers-Powerful-Ideas&amp;#x2F;dp&amp;#x2F;0465046746&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;www.amazon.com&amp;#x2F;Mindstorms-Children-Computers-Powerfu...&lt;/a&gt;) and was used by the Lego Group when branding those products, and our philosophy is heavily influenced by that.&lt;p&gt;I can say that the &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;scratch.mit.edu&amp;#x2F;statistics&amp;#x2F;&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;scratch.mit.edu&amp;#x2F;statistics&amp;#x2F;&lt;/a&gt; are real and we have a substantial footprint of backend services and custom software to support it. We handle on the order of 15-20 million comments&amp;#x2F;month.&lt;p&gt;The primary design philosophy is:&lt;p&gt;Passion: You have a strong interest in a subject&amp;#x2F;problem to solve&amp;#x2F;explore
Projects: Build something based on your passions, gain directly interactive experience with it.
Peers: Share your work with folks who are interested and provide feedback to you
Play: It should be fun!&lt;p&gt;Note that there is nothing in there about STEM&amp;#x2F;STEAM nor application development. 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&amp;#x2F;entry.  Having said that, the complexity of what Scratch can do rises sharply the more you work with it and the concepts behind &amp;quot;forking&amp;quot; and opensource are built in via the remix ability on individual projects.&lt;p&gt;A lot of design thinking goes into the frontend of Scratch to build on a creativity feedback loop that is not focused on learning Python or any other specific language (or the syntax of them, i.e. avoid &amp;quot;why isn&amp;#x27;t my program working... oh, one too many tabs... or maybe this semi-colon, or maybe this .&amp;quot;)&lt;p&gt;Another part I think is worth raising, the Scratch frontend is a sophisticated virtual machine interpreter that has it&amp;#x27;s own machine code and model that is executing in a Javascript environment in browser and it is still open source. Google&amp;#x27;s Blockly project was based on the ideas of Scratch 1.4 and when we ported Scratch 2 away from being Flash based, we partnered with the Blockly group to fork their code base and create Scratch Blocks.&lt;p&gt;Based on the TIOBE index, we&amp;#x27;re usually somewhere in the top 20 most popular &amp;quot;programming languages&amp;quot;. _eat it Fortran!_</text></item></parent_chain><comment><author>seabird</author><text>Version control and diffing (programmatically or mentally) is a major stumbling block. The only graphical language I know of that doesn&amp;#x27;t suffer from this issue is PLC ladder logic, where the visual representation is forced and it&amp;#x27;s easy to programmatically show the differences between two versions of a given program, or mentally know exactly what given logic will look like. Pretty much everything else is miserable to compare code in, and this is especially painful when you&amp;#x27;re initially learning and the examples you&amp;#x27;re referencing are unhinged LabVIEW spaghetti with no real way to make it any more pleasant to read.</text></comment>