programming-environments   70

« earlier    

A little bit of computing goes a long way, and not everyone needs software engineering: The SIGCSE 50th Anniversary issue of ACM Inroads | Computing Education Research Blog
“A little bit of writing goes a long way” (or does it?)

There’s a lot of evidence that this sentiment underlies a lot of the use of writing and exhibited skills of most people via the computer media these days.

On the other hand, most people will not become professional writers, so we have to ask if there is an absolutely needed level of writing that is below professional, yet enough above “transcriptions of oral language use” to require some real learning.

If so, then we need to ask about how to help children achieve this level of “above ‘oral hacks’ and below ‘literate engineering’ “.

alan-kay  mark-guzdial  programming-environments  writing  read-the-comments  beach-inspiration 
january 2019 by jbrennan
PANE is a prototype live, functional programming environment built around data-visibility. In PANE, all intermediate values are visible by default, and you construct a program by acting on these concrete values.
josh-horowitz  pane  programming-environments  visualization 
november 2018 by jbrennan
Omar Rizwan on Twitter: "I'm skeptical of visual programming, especially the most obvious 'blocks instead of text syntax' type. Spreadsheets use a formal, text-based language -- and end users learn spreadsheets fine!"
I'm skeptical of visual programming, especially the most obvious 'blocks instead of text syntax' type.

Spreadsheets use a formal, text-based language -- and end users learn spreadsheets fine!


Rather than blindly getting rid of text, make the right formal language and representation for the user's interests.

People can be _great_ at learning languages: there's no reason a formal or textual language has to be 'programming' with all its connotations


related is Bret's 'show the data'; block-based 'visual' programming is about showing (the same old) code as blocks, not about 1. showing the data or 2. having a better code for users' interests
omar-rizwan  tweets  spreadsheets  programming-environments 
october 2018 by jbrennan
Alan Kay's answer to What does Alan Kay think of structural editors? - Quora
I haven’t tried a structural editor for so many decades that I don’t think I can comment on what is around today.

Also, I think that liking these or not has partly to do with temperament and style. For example, I turn off the grammar checking in my word processors when I’m trying to write English, because I want to use all the brain cells I have for “flow” and “content” intermingled. Similarly, for programming, I want to use my limited mental facilities for design and bottom-up experiments.

We did a very early version of “tile-based” (“block-based) scripting in Etoys (later used for Scratch) and this retained some of the bottom-up feeling while making a method.

Another related topic is “mathematical expression builders”.

On the other hand, I think Google’s attempts to anticipate what you are trying to search for are generally beneficial.

Here is the rub (I think). A big question for all systems that know about structure and might have ways to more easily build the structure is what does it take to change your mind and make something different in part or all of it? I’ve advocated treating what’s there as “flat” and being able to use a stylus to isolate and scrub the parts to be changed, etc., so there is not such a feeling of great burden. I haven’t seen anything like this (but there could be — it will be interesting to hear from readers just what is around now).

There are other related comments here. For example, when color helps and when it gets in the way (similarly, other structural delineators). In all systems — whether tiles or not — one would like to “show structure” for some purposes, but also be able to “show flat” for others (for example gisting).

It’s likely that the answer — still — for today has to do with programming needing many points of view quickly and easily supplied by its UI — and I’d like to hear of any systems that really do a good job here.
alan-kay  quora  structural-editors  blocks  programming-environments  etoys 
august 2018 by jbrennan
Notes from Dynamicland: Geokit
I’ve never had experiences like these in any other medium. Buildings don’t tend to have detailed racial, transit and elevation maps of every city in the US on the walls. In theory you could pull this data up on your personal iPad, praying there aren’t any embarrassing notifications and hopefully remembering what you were even going to look at by the time you’re past the lock screen looking at 24 rainbow-gradient icons and red bubbles, but I am personally not in the habit of pulling out my devices in the middle of parties. In both of these cases these just-dynamic-enough maps were places at the party, just like the appetizers table and the piano, where people could casually gather, play and converse. […]

These are all the 'game pieces' inside the kit. Each page is both a little computer program and an object that people and other pages can see and work with. Some pages are face-down, but most of them are face-up and running right now. (Face-up is the side with the colored dots.) […]

That's why I call Geokit a kit and not an application: it's naturally extensible. You could come here, pull a keyboard off the shelf, point it at any part of Geokit, and just start editing it and printing new stuff for your own use. You might provide a new tileset to answer some question you have, or come up with a new zoom mechanism to derive maps. (I'll explain how to do both those things in this post!) You have the same status that I do, and you don't have to open your laptop and download and recompile some source code if you want to change something.
omar-rizwan  dynamicland  realtalk  geokit  maps  programming-environments 
july 2018 by jbrennan
Designing and evaluating programming languages: Dagstuhl trip report
Take, for example, the idea of variable names found in most modern languages. Languages didn’t always have user-defined names; we used to write assembly language with a fixed set of registers with predefined names or no names at all. Why are names useful? One theory is that they are conceptual shorthand for the semantics of a program’s behavior, accelerating our ability to read and reason about it’s behavior. For example, the name kitten_count clearly refers to some quantity of kittens, and implies that we are counting them. In contrast, the name x could refer to anything. Having names that evoke concepts help us reason about the role of the variable in the larger purpose of an algorithm, accelerating our inference of that purpose. On the other hand, bad names might serve to build a wrong model of the role of a variable and behavior of an algorithm, slowing program comprehension, debugging, or modification of a program.


One idea that emerged is that learnability appears to concern the complexity of abstractions embedded in a language. For example, consider indefinite loops, which require someone to reason about potentially infinite executions of a block of code. What about this possibility of the infinite is hard and why is it hard? We need methods to discover these hard concepts in languages, so that we can precisely define what is irreducibly difficult about them.

Abstractions also interact with people’s prior knowledge, making the mental modeling of that complexity more or less difficult. For example, when one sees the symbol = in mathematics, it means one thing, but when one sees it in JavaScript, it means another. Are these conflicts purely syntactic, or are they also semantic?
andy-j-ko  programming-language  programming-environments  abstraction  metaphor 
february 2018 by jbrennan
The Social Dynamics of Programming Together in Dynamicland
If you've ever participated in a good craft table you've experienced this kind of creative energy: riffing, combining creations, taking someones scraps and reinterpreting them, and more generally laughing, making friends, and enjoying other people's company. Dynamicland has a broad mission but within that my own personal goal is to achieve this kind of group creative energy in a computing environment.
dynamicland  programming-environments  realtalk  toby-schachman 
february 2018 by jbrennan
Code together in real time with Teletype for Atom |
Collaborative editing is a tricky theoretical problem. To ensure responsive editing, each collaborator maintains their own replica of each document, applying local edits immediately before transmitting them to other collaborators. In the face of concurrency, edits end up being applied in a different order on each replica, but when the dust settles, all replicas need to have the same contents.

After several late nights reading research papers, we ended up deciding to base Teletype on the theoretical framework of conflict-free replicated data types, or CRDTs. Basically, CRDTs are data structures that always converge on the same representation when updated with the same set of operations, even if those operations are applied in different orders. The CRDT for text editing we wrote for the heart of this system is available as a standalone library called teletype-crdt.
programming-environments  collaboration 
november 2017 by jbrennan

« earlier    

related tags

abstraction  adele-goldberg  alan-kay  alex-warth  alto  amber-solomon  andy-j-ko  anyland  apple  architecture  auto-complete  beach-inspiration  blocks  blog  book-review  book  bret-victor  c-sharp  chalktalk  children  chorus  cities  clojure  collaboration  comments  compilers  computer-science  creativity  criticism  dave-winer  debugging  design-studio  design  direct-manipulation  dynabook  dynamicland  education  ele-vr  embodied-cognition  etoys  exploratorium  files  filetype:pdf  frontier  functional-programming  game-design  game-development  games  geokit  glitch  google  graphic-design  graphical-programming  gui  harc  hopscotch  human-interface-device  inspiration  ios  ipad  iphone  javascript  jonathan-edwards  josh-horowitz  kate-compton  ken-perlin  kirby  leap-motion  learn-to-code  learning  lgbtq  light-table  link-rot  lisp  list  literate-programming  live-programming  logo  lua  maps  mark-guzdial  marshall-mcluhan  matt-webb  metaphor  microsoft-research  midi  mit  mitch-resnick  nintendo-labo  nintendo-switch  nintendo  obituary  objects  ohm  omar-rizwan  pane  paper-games  parc  patrick-dubroy  pdf  pirijan-ketheswaran  play  powerful-ideas  programming-language  programming  prototyping  pygmalion  quora  read-the-comments  realtalk  research  saketh-kasibatla  schools  science  scratch  self  seymour-papert  smalltalk  software-preservation  spreadsheets  structural-editors  subtext  swift-playgrounds  swift  talks  teaching  television  text-communication  text-editing  the-legend-of-zelda  the-sims  toby-schachman  transcript  tumblr  turtle-graphics  tweets  vi-hart  video-games  virtual-reality  visualization  wikis  window-systems  writing  xerox-star 

Copy this bookmark: