shaunlebron / locus

gradual focusing for lisp syntax
9 stars 0 forks source link

Lisp for Humans #1

Open shaunlebron opened 7 years ago

shaunlebron commented 7 years ago

What Parinfer did for writing, Locus will try to do for reading. Low odds for success, but some research in this space could at least help describe the problem of lisp adoption.

Problem: Lisp is immediately ugly

  1. It violates design principles by showing too much information at once
  2. The initial knee-jerk is universal
  3. There are still incredibly smart people who hate it
  4. Telling people they will get used to it is not working

Hypothesis: a UX solution is waiting to be discovered

It may be possible to build a technology to meet people where they are. There may be a way to apply design principles to facilitate natural discovery.

Solution Constraints

  1. Pull: It must be immediately pretty
  2. Stay: It must feel well-designed
  3. Compatible: It must work with existing Lisp files (dialect-agnostic)
  4. Platform: It must work for an editor that people have already adopted
  5. Surprise: It must do something desirable that is not possible with other languages
  6. Conservative: It must not feel like a radical departure from normal text, but rather a bridge to what may come.
shaunlebron commented 7 years ago

Cubism can be defined as:

an early 20th-century style and movement in art, especially painting, in which perspective with a single viewpoint was abandoned ...

It was an overwhelming conflation of separate perspectives into one:

reservoir-picasso

Lisp is almost cubist, in that it takes what is essentially a 3D object and flattens it in a way that violates perspective. What was natural in two perspectives becomes lost when combined.

screen shot 2016-12-20 at 9 15 57 pm
shaunlebron commented 7 years ago

Two famous scientists once debated over the core philosophy of education (excerpt on youtube)

Lisp's culture, by default, is inline with the philosophy Richard Dawkins cited. The goal of this project is to explore the application of Neil Degrasse Tyson's.

shaunlebron commented 7 years ago

A well-designed game can teach you without you noticing. (on youtube)

screen shot 2016-12-20 at 10 54 23 pm

How could a Lisp editor guide your natural actions toward learning the unfamiliar?

shaunlebron commented 7 years ago

Focus + Context is a design principle:

The main problem of information visualisation is the insufficient space, which restricts the user in showing detail and context contemporaneous, is called “presentation problem”. The Focus+context system allows the user to show detailed informations linked with the context, by also having the possibility to focus on other informations by interacting with the system.

shaunlebron commented 7 years ago

Visually supplement indentation as many have tried and done before. From left to right:

screen shot 2016-12-20 at 11 22 43 pm

screen shot 2016-12-20 at 11 35 36 pm

shaunlebron commented 7 years ago

Aesthetics are paramount to this working-- not just in a static screenshot sense, but in motion since code is constantly changing in ways that might be naturally learned through animation.

Soft boundaries that may help w/ static aesthetics (e.g. scope regions):

screen shot 2016-12-23 at 1 09 23 pm screen shot 2016-12-23 at 1 09 43 pm

And in motion taking hints from principles (e.g. when scope boundaries change in response to indentation via parinfer):

shaunlebron commented 7 years ago

When code is in movies, they display it with a strong appeal. Reality should mimic art here.

The Martian

the-martian

Tron Legacy

tron-legacy

shaunlebron commented 7 years ago

Solid-filling colors could give shape to expression blocks.

Four-color theorem may help us keep a simple palette in spite of deep-nesting.

screen shot 2016-12-23 at 3 09 12 pm

For a zoomed-out, form-first view, explore expressions as code-less legos (pastel colored on manilla):

pastel-manilla

shirt.codes uses spaced color blocks from syntax color themes:

screen shot 2017-01-13 at 6 16 50 pm
shaunlebron commented 7 years ago

Video game menus have superb typography and motion design that we can learn from:

screen shot 2017-01-02 at 8 01 18 am

shaunlebron commented 7 years ago

"The content of communication is the response you receive". If we tell people that Lisp has "no syntax", but the response is "all we see are parens", then the response proves that we are not communicating correctly.

Lisp's "no syntax" principle must be understood in concert with what they understand, not in conflict to it. We must meet them where they are. If the problem is visual, we need to fix the visual.

A picture is worth a thousand parens

Coding without syntax

shaunlebron commented 7 years ago

"Lowest common denominator" as a pejorative when companies attempt accessibility.

In the gaming world, the fruits of experience become tantamount over accessibility. In this way, we see a tendency towards exclusion, since it is the natural mechanism for preserving a thing you fall in love with.

Some game companies on the other hand prefer to reach larger audiences by modifying the nature of the game to improve the accessibility for beginners. This causes a natural loss aversion among those passionate about the original.

There are two very good video essays on this topic below:


smart-steering

The controversial "auto-steering" feature in the latest Mario Kart was added to the dismay of many vocal players. But it was balanced such that it wouldn't give people who needed it an advantage over serious players who didn't.

This continues Nintendo's commitment to accessibility in an industry that thinks shockingly little about the unique needs of different groups of people.


quakechampions

The latest addition of quake does away with a lot of the core principles in favor of contemporary mechanics--to entice new players. It also preserves some mechanics of the previous iterations for competitive/experienced players.

We've struggled to have a big community since Counter Strike came out. Quake simply isn't holding the attention of new players. Or it just isn't reaching new players. To make it worse, when new players do come, they get completely destroyed by new players, or even abused for being new.


I feel some similarities to the Lisp community, except there is currently no organization that is trying to grow its audience with the same fervor for accessible design as the game companies mentioned above.

shaunlebron commented 7 years ago

Appeal to the familiar so you can show something different. The first Bioshock had a cover that showed figures of the game in order to create a representation of the game. Their next game, Bioshock 2, went with a generic cover that fans complained did not represent the game well at all.

bioshock 1 (beloved cover) bioshock 2 (generic cover)
screen shot 2017-06-18 at 6 11 50 pm

Ken Levine explained his reasoning.

People are drawn initially to the familiar. Like, look at the Matrix poster, for instance. It's not like, about cyberspace. It's about cool looking dudes with guns, you know? But then when you watch the movie, it takes you to a whole nother place, and it's incredibly bold and ambitious.

So, the price that I think I'm asking people to pay is—the cover you pick up off the shelf may not be your favorite cover in the universe. Hopefully that will mean that the cover helped make this game successful, and we can keep making more of them, and not compromising, you know, in any way [for the game's actual content].

NightMachinery commented 6 years ago

I just wanted to comment that lispy parens were sexy to me when I first saw them in The Little Schemer. I still love 'em. The parens give lisp a haunting aura. But I appreciate your efforts.