F-F-F-Flowsheets v2 πŸŽ‰πŸŽ‰πŸŽ‰ demo

6K views Β· 9 years ago Β· demo Β· intermediate Β· evergreen

Glen Chiacchieri demonstrates version 2 of Flowsheets, a prototype programming environment that works like a spreadsheet interface into Python. It shows real data as you program, rather than leaving you to imagine it.

HN people value it as a concrete experiment in making program behavior visible, which the author himself calls his preferred data manipulation environment.

β€œFlowsheets V2: a prototype programming environment where you see real data as you program instead of imagining it in your head”

10 comments from Hacker News

s
@supdatecron2020 Β· in β€œFlowsheets v2 Demo”
Submitted the video to Hacker News.
RecommendsView on HN
g
@galfarragem2019 Β· in β€œFlowsheets v2 (2018)”
Submitted the video to Hacker News.
RecommendsView on HN
G
@Glench2017 Β· in β€œExcel team considering Python as scripting language: asking for feedback”
I made a prototype programming environment that is more like a spreadsheet interface into Python called Flowsheets that y'all might be interested in: β–Ά this video Flowsheets has become my preferred data manipulation environment.
RecommendsView on HN
G
@Glench2020 Β· in β€œAsk HN: What is the single top-priority software engineering problem?”
I think making software human-understandable (and by extension modifiable) is one of the biggest problems for software engineering. As it stands, both beginners and experts have difficulties understanding exactly what their own programs are doing as well as what programs written by other people are doing. We encode complex algorithms in static, abstract text descriptions that are hard for humans to understand and reason about. We have to imagine the behavior in our heads from these illegible descriptions. The behavior and internal workings of their programs are invisible. Not to mention that when trying to modify other's programs there is often a huge communication problem, trying to construct a mental model of what the program does is a tedious and often impossible endeavor because of missing context. Just think, how is it even possible to make "write-only code", code that was understood when written but is now completely unintelligible. To me, that should be impossible. Or think about how open source software is open in that its code is available, but closed in terms of being easily understood β€” there's the formidable cognitive challenge of understanding the program well enough to be able to modify it to one's ends. For most people, this is a significant and unreasonable effort. What to do about all this? To me, the answer is redesign programming so that it is primarily about communicating behavior to humans. A couple things I've made toward that end: * Legible Mathematics, an essay about the UI design of understandable arithmetic: link * FuzzySet: interactive documentation of a JS library, which has helped fix real bugs: link * Flowsheets V2: a prototype programming environment where you see real data as you program instead of imagining it in your head: β–Ά this video * REPLugger: a live REPL + debugger designed for getting immediate feedback when working in large programs: link * Marilyn Maloney: an interactive explanation of a program designed so that even children could easily understand how it works: link In general, I think it's a neat research direction to redesign many concrete programs by hand in the most understandable way possible (using custom graphics, interactivity, game design mechanics β€” all the best things we have for helping someone understand things through media), and then use those experiments to work backward toward programming languages/environments. In the end, programming is essentially only limited by human understanding, so that's the most significant engineering program out there.
CitesView on HN
G
@Glench2020 Β· in β€œDeveloper Experience: Fundamentally harder than normal UX”
To make some of the ideas in this article a little more concrete, here are some research demos I’ve made: * Legible Mathematics, an essay about the UI design of understandable arithmetic: link * FuzzySet: interactive documentation of a JS library, which has helped fix real bugs: link * Flowsheets V2: a prototype programming environment where you see real data as you program instead of imagining it in your head: β–Ά this video * REPLugger: a live REPL + debugger designed for getting immediate feedback when working in large programs: link * Marilyn Maloney: an interactive explanation of a program designed so that even children could easily understand how it works: link
CitesView on HN
s
@sherbondy2019 Β· in β€œShow HN: I built a spreadsheet app with Python to make data science easier”
Nice! Looks like a kindred spirit to β€œFlowsheets”: β–Ά this video But broadly usable in the here and now! Excited to try it out!
G
@Glench2019 Β· in β€œAsk HN: What big programming productivity gains you see happening in 5-10 yrs?”
As I see it, the number one hurdle in software productivity is human understanding. The more understandable software is and the easier it is to make software understandable, the faster and more accurately it can be modified. This is why functional models like React, DSL models like SQL, and constraint models are so widely used β€” they make what's happening in the software more understandable (at a worthwhile performance cost). A few of my own contributions: * Legible Mathematics: link * Flowsheets – showing data as you program: β–Ά this video * REPLugger – showing data as you program in large systems: link * FuzzySet interactive code documentation: link
CitesView on HN
G
@Glench2018 Β· in β€œVisiData Lightning Demo at PyCascades 2018 [video]”
Going to plug my own research project which does some things like this in a GUI: β–Ά this video
G
@Glench2017 Β· in β€œThe HARC First Year Report”
> While I know so many programmers are vehemently opposed to "visual programming" I wonder if we can make programming multimodal. "Visual programming" so far as been about visualizing program's static structure. Scratch and Labview do this, and this has some advantages, especially for beginners. But there's never been much advantage in understanding program behavior from seeing its structure, and I think tools for understanding program behavior are probably the most effective way of making all programming better. See my project Flowsheets for some experiments in this space: β–Ά this video
CitesView on HN
G
@Glench2017 Β· in β€œCoda, a β€œnext-generation spreadsheet” – from rows and columns to custom apps”
To throw my hat in the ring, I'm developing a prototype environment for data transformations I'm calling Flowsheets: β–Ά this video Although my goal is to use it to understand how we can write software better.