Live data from Hacker News

Bret Victor: Learnable Programming

worrydream.com

151–160 of 193 posts

Re: Bret Victor: Learnable Programming

#151
post #63

Beautiful and inspirational, and yet... Sometimes becoming able to hold the 'invisible state' in memory is the skill to learn. Consider the 'dual N-back' drilling which seems to improve working memory, and then also (by some studies) other testable fluid intelligence. The whole point is holding more and more hidden state in your mind. (To 'show the state' would defeat the purpose of the game.) Similarly, sometimes st…

The ability of holding an invisible state is important, but at the same time you are mixing things in the learning process, and that makes learning hard. Try learning to speak a new language while learning juggling ... this is definitely difficult. By taking smaller steps, the learner is able to make better progress. First the tools... then the imagination.

Re: Bret Victor: Learnable Programming

#153
post #142
post #113

Earlier quoted context omitted.

Why do systems need millions of lines of code? If you can build a complete operating system + major programs in 20,000 lines of code, what system should need a million? http://www.vpri.org/pdf/tr2008004_steps08.pdf (They're not quite down to 20,000 yet, but they're getting there)

No one said they need millions lines of code. However a large "enterprise" application have a way of growing like cancer. This tool won't be particularly useful for such codebases.

if you had this tool, maybe you wouldn't built applications that way anymore. it's at least a possible outcome.

Re: Bret Victor: Learnable Programming

#154
post #150

Earlier quoted context omitted.

But that aspect of Self comes mostly from Morphic. Anyways, Self/Morphic were a huge inspiration on my own work. There are deeper distinctions between textual and visual; think a Van Goh painting vs. a book by Steven King. They say "a picture is worth a thousands words," but actually, the worths are not very comparable. Text is much better at expressing abstractions than visuals are, which is why most VPLs mixin some…

Yes we are probably talking past each other here a little, but I enjoy and respect your work on SuperGlue. Not having used Self I don't understand the distinction between it and Morphic. There clearly is a distinction between textual and visual, but at the same time they support one another: text is made out of pictures, pictures can be described with text (e.g. svg). For me the aim of visual programming language res…

Self is a language, Morphic is a GUI toolkit/framework/library. You can play with Morphic implementation in some Smalltalks (I did it in Pharo) and even in JavaScript: http://www.chirp.scratchr.org/blog/?p=34

Re: Bret Victor: Learnable Programming

#155

There's already two comments here about being "harsh" or "ungracious" towards Khan Academy which is ridiculous. The usual HN article that contains criticisms is usually limited to that. Some rant that took 10 minutes to write and contains nothing constructive. Bret Victor put an insane amount of time into this (I can only assume) and is truly advancing mindsets about programming tools and learning. We should all be t…

I just found the analogy of a microwave with blank buttons turned me off as being an unnecessary rhetorical straw man. I know what fill means, and I know what ellipse means, and I know what numbers are. Discovering what those words mean in a different context is not analogous to blank buttons.

I found myself strongly agreeing with him about fill() specifically. Fill what? It's a verb that performs no action, and is really shorthand for setFillColor, which sets invisible global state. It's not at all obvious from the name what fill() actually does, nor what it's parameters are. Only through previous familiarity with graphics APIs and RGB triplets can I infer the meaning, and in a learning environment it's silly to expect that familiarity.

Re: Bret Victor: Learnable Programming

#156
This article addresses GUI design pretty well.

But it does nothing about what's below, what actually makes that GUI possible, backend and all that.

In that sense, I believe Bret is addressing something on another level entirely, something that _is_ the future, i.e. a dev environment for people who design stuff.

Not a failed half-step up from C, like java,lisp, or all the existing programming language.

An unbreakable waterproof abstraction that will enable the less skilled to create awesome stuff.

Then we will be able to take all the programmers, and send them to a layer where they belong, instead of leaving them to rot in a system that is both inadequate for speed and inadequate for productivity.

Re: Bret Victor: Learnable Programming

#157
I remember being a child and learning basic with a manual in a foreign language (English) I did not understand and an Italian-English dictionary. It was thirty years ago (shit, I'm old!) and admittedly my memory is foggy but I remember it to be funny and easy.

If some kids really need all these hoopla to start programming I wonder if they should really try...

Re: Bret Victor: Learnable Programming

#158
post #59

If you really want to label: ellipse(65,50,60,60) Wouldn't using something like Python's keyword arguments better than some external labelling? ellipse(radius_x=65, radius_y=50, center_x=60, center_y=60) More characters but these are just training wheels. Once the learner understands the basics you can do away with them. API's and libraries should be designed to allow both forms. Everyone is a beginner with some aspe…

I think Bret made it pretty clear that these ideas are not training wheels. There's a section titled "These are not training wheels". The goal is not to do away with them but to make programming about them.

Ha. I didn't spot that bit...

My point was though that allowing keyword and non-keyword forms is good for everyone. If you can't remember the parameter order you can just use the keywords (assuming the naming is memorable enough - which might actually be a can of worms in itself)

Re: Bret Victor: Learnable Programming

#160

Earlier quoted context omitted.

I agree, and would add that Brett Victor is pointing out what he perceives to be valid flaws with the method Khan Academny uses to teach programming (live coding environments, javascript, and processing languages, which other teaching products happen to use as well). He is not criticizing Khan Academy as a whole directly, as the quality or lack thereof of Khan Academy itself is never brought into question or even dis…

> Brett Victor is pointing out what he perceives to be valid flaws Where are the numbers? Where's the testing? Where's the proof that his proposed changes are more effective in teaching a new programmer? Validity comes through numbers, proof, and evidence.

You can find proof in numerous publications from related fields like cognitive psychology and pedagogy. But don't expect the author to gather them for you. He already did amazing job.
Post reply on HN