Skip to content

Latest commit

 

History

History
115 lines (84 loc) · 9.46 KB

File metadata and controls

115 lines (84 loc) · 9.46 KB

Visual Programming Languages

  • "structural editor" rather than a "text editor"

    • No syntax errors. Zero time is spent on missing quotes, semi-colons or other details.
    • Better type information. Because the program is always in a valid state the type checker can always run and give meaningful feedback.
    • No keywords Variables can be called var and functions called fn. Either can also be called 🧪 or !_// though maybe they shouldn’t be.
    • Rich visualisations A program can be shown as box and wires, or boolean logic operators. On a smaller scale a record of latitude and longitude can be shown on a map.
    • Reduced complexity
  • Principles of Educational Programming Language Design Michael Kölling 2024

    • why is this still an area of fundamental disagreement among educators?

    • discuss the relative benefits of pedagogical languages vs. industry languages and articulate why every generation of learners needs their own language.

    • hacker news comments
      • a lot of pushback about the article - we simply dont know how to teach programming

      • I find the core position of the author unconvincing - that is, the author advocates for non-professional languages for beginners, instead using languages designed specifically for teaching. The main argument put forward in favor of professional languages is crossover: if a student learns a language in class, they may be able to use that language professionally. The author then argues against that main point.

      • I think students should be taught in "professional" languages, but crossover is not my main reason. Rather, it's that professional languages have an enormous corpus of examples that students can look up. If a student is learning on a teaching language without much adoption, there's just not much else a student can do but use the materials that part of the course. Teaching languages don't let students expand their universe of examples.

      • I agree with the author's point about real insight coming on learning the second (and third, etc.) language and systems. But I don't find it as a compelling point in favor of teaching languages - quite the opposite. To me it means there's no need to obsess over first languages.

  • PyFlow

    • Like blueprints, but for python
  • Learnable Programming - Designing a programming system for understanding programs

  • Rethinking Visual Programming with Go #golang [golang]

    • Great description of conventional code editing is "caveman in a dark cave with a tourch" analogy
    • great eye tracking gif of reading code (not linear)
    • But there is no truly mainstream general purpose Visual Programming Language at the moment. By every single metric, modern programming languages landscape is 100% dominated by textual programming languages with zero exceptions.

    • Programming_language_theory
    • Vision, for example, mostly deals with spatial information - you have to get all input “at once” – you can’t see the image looking it one pixel at a time

    • Hearing, on the other hand, works predominantly with temporal patterns - you can’t listen to a melody by listening all notes together at the same time.

    • And that is exactly where both visual and textual representations of code are often missing the point. They attempt to express both, spatial and temporal, components in a similar fashion, and it just adds a cognitive load and doesn’t help at all.

    • Encoding spatial component visually makes absolutely perfect sense – it’s the most natural way to encode it, but the temporal component is still better expressed with text - not perfect, but a still unbeatable

  • Developers spend most of their time figuring the system out

    • [software-engineering-skills]
    • Glamorous Toolkit
      • is a multi-language notebook. A fancy code editor. A software analysis platform. A visualization engine. A knowledge management system. All programmable. Free and open-source.
  • VPL: Visual Programming Language

  • Hacker News folk wisdom on visual programming

    • Comments and commentary
  • Learnable Programming Bret Victor / September 2012

    • Designing a programming system for understanding programs
  • Why Programming is Hard to Fundamentally Improve

    • I think most of the stalled innovations in programming focused disproportionally on learnability. The problem is, within a few weeks of using any paradigm developers usually have built a repository of habits that keep them from making mistakes. For instance, if a new visual logic builder prides itself on preventing all syntax errors, that’s really cool, but most developers have learned to do that automatically.

  • Fabrik - A Visual Programming Environment 1988

  • Joy.js

    • visually see the steps take place
      • Music
      • Turtle
      • Graph/equations
  • viscuit JP

  • PyFlow #python

    • An open-source tool for visual and modular block programing in python
  • λ-2D

    • An Exploration of Drawing as Programming Language, Featuring Ideas from Lambda Calculus
    • Experimental visual gates for param and arguments - can also see the program run

copied from teacherEducation

Visual Programming

See more at https://github.com/calaldees/mapOfComputing/blob/main/computing/visual-programming-languages.md

  • Strype: a frame-based approach to Python

    • Help transition from blocks to text
    • A free Python editor that combines the strengths of blocks and text programming into frame-based editing: write Python code in your browser with structured support.

    • Another recent development is Guo’s (Reference Guo2013) web-based Python simulation and visualization environment that allows learners to move backward and forward through an execution, visualizing stack frames and variables, heap object contents, and memory. While earlier work has long provided similar technical support for this degree of program simulation and visualization (Findler et al, Reference Findler, Clements, Flanagan, Flatt, Krishnamurthi, Steckler and Felleisen2002), an interesting aspect of this tool is the ability to generate a URL for a specific point in the execution visualization, which can be shared among learners to aid collaboration and discussion.

  • VPL: Visual Programming Language

  • Hacker News folk wisdom on visual programming 2021

    • Superb and in depth review of all the visual programming constructs
  • Learnable Programming - Designing a programming system for understanding programs

  • Exploring programming misconceptions: an analysis of student mistakes in visual program simulation exercises

  • Joy.js

    • a pedagogic tool?
    • cross curricular? could you approach a science, maths or music teachers? would they be interested?
  • xod.io (Arduino)

    • A visual programming language for microcontrollers