Skip to content

How can we make programming simple and fun in today's web-dominated world?

License

Notifications You must be signed in to change notification settings

wadmiraal/slippers

Repository files navigation

Slippers Build Quality Gate Status

Inspired by _why's Shoes and ART && CODE talk. How can we make programming simple and fun in today's web-dominated world?

You can play around with Slippers in your browser here. You can see some examples here.

Manifesto

  1. Programming can be a fun, creative tool for self expression
  2. Self expression and creativity cannot be hindered by rules or dogma
  3. There's always another way; there's no single right way
  4. If a path is blocked, guidance must be provided to find another way
  5. Start from the experience, not the tools

Design

1 language

Starting with the web as a platform today is tedious. You need to learn HTML, CSS, and JS to get anything done, and all 3 are very different languages. Wouldn't it be ideal to learn only 1 of them?

JS is the answer! JS can allow any newcomer to build fun, creative little apps, without ever having to touch HTML or CSS. Now, of course, at some point, they'll have to. But they should be free to explore and tinker away, and let their imagination run wild.

Simple syntax

Any programming language follows a distinct syntax. And although JS' syntax is not "complicated", it cannot rival with CoffeeScript. The risk of a syntax error seems much more likely in JS than CoffeeScript, if you have no previous experience in programming. Furthermore, the ability to use aliases like yes and no for boolean values is much more beginner friendly.

Intuitive layout

We can basically distinguish 2 types of objects in any layout:

  • containers: contain other elements, useful for grouping
  • elements: any visual (or not) element to layout on the page

Allowing these to be stacked and nested allows for an intuitive experience, simply by passing them as arguments to containers.

For positioning, we should make any object follow the HTML document flow, unless any positioning is given. In this case, the most intuitive course of action will be to position the object absolutely, relative to its parent container (which, by default, should be relatively positioned).

Simplified event management

Handling events should be simplified as much as possible to provide a low barrier of entry. To do this, we must provide some simple tools that can help start creating fun little apps, with little to no knowledge of event handling, bubbling, etc.

Handy constants

Provide some helpful constants, similar to using yes or no for true or false.

Colors

  • aqua
  • black
  • blue
  • cyan
  • fuchsia
  • gray
  • green
  • lightGray
  • lightGreen
  • lime
  • maroon
  • navy
  • olive
  • purple
  • red
  • teal
  • white
  • yellow

Fonts

  • serif
  • sansSerif
  • cursive
  • monospace

Alignments

  • left
  • right
  • center

Border styles

  • solid
  • dashed
  • dotted

About

How can we make programming simple and fun in today's web-dominated world?

Resources

License

Stars

Watchers

Forks