Skip to content

Instantly share code, notes, and snippets.

@dethe
Last active December 29, 2015 12:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dethe/7670897 to your computer and use it in GitHub Desktop.
Save dethe/7670897 to your computer and use it in GitHub Desktop.
Waterbear Project Description

Waterbear Project Description

Waterbear (http://waterbearlang.com/) is a toolkit for creating visual block-based programming languages for the web. Its blocks are inspired by Scratch (http://scratch.mit.edu/), but where Scratch is a full-fledged language, Waterbear is a family of languages and the tool for making them. Waterbear has been used to create visual languages which produce code for Javascript, Java, Arduino, Minecraft, and Processing. Where the code can be compiled and run in the browser it has capabilities for doing that safely.

Waterbear is primarily a learning environment where coding can be guided without having to worry about syntax errors. The goal is for it to be useful for casual programming by non-programmers in a variety of domains. We still have a ways to go before it is easy and intuitive to start coding with Waterbear, especially in guiding new users through their first scripts.

Overview

There are several components to Waterbear

  • Block creation syntax and parsing
  • Block runtime for building scripts
  • The block-based IDE
  • Existing language wrappers
  • Browser-based runtime for scripts
  • Example scripts
  • Integration with external systems like Gists

Objectives

Ideally students will be able to contribute to Waterbear in a variety of ways. By diving into it an creating scripts they help to test the system and can suggest and implement improvements. In addition to extending the existing components listed above, there are several areas where we are looking to improve or extend Waterbear

And there are several key areas for improvement and extension:

  • Better documentation
  • A tutorial system that integrates with block IDE
  • Ability to pull in external libraries
  • Support for multiple simultaneous scripts
  • Additional language wrappers (Python, Regex, HTML, CSS, WebGL, etc.)
  • Additional blocks for existing languages
  • A differencing system for block scripts (visual diffs)
  • Round-tripping code (taking existing code and converting it to blocks)
  • Scaling the IDE to mobile devices
  • Integration with online systems like Facebook, Twitter, Twillio, etc.
  • Integration with open data and examples of using it
  • Higher-level components that can be block scripted: drawing tools, text editor, etc.
  • Making blocks localizable
  • User testing of various block alternatives to find which are easiest to learn and most intuitive
  • Improving the core IDE for an improved user experience

Last year's experiences

Last year was my first with the UCOSP and I wasn't sure what to expect. I was very happy with how fast the students were able to get up to speed with the system and the work they were able to produce. Each student was able to

  • Find and report bugs
  • Fix bugs
  • Extend the Javascript wrapper with new functionality
  • Contribute new documentation
  • Create a complete example program (mostly games)
  • Help to improve the IDE

Requirements

Students should be familiar with version control and issue tracking systems, ideally with Git and Github. The Waterbear system is written with Javascript, CSS, and HTML, so existing knowledge of those is a plus, although not strictly required. The build system uses Node.js, so the students will need to be able to install that. Any experience with building webapps and with using the Chrome or Firefox developer tools is also helpful.

Evaluation

Students will have weekly team meetings (over IRC, with notes in Etherpad) to discuss what they have accomplished each week, what they are expecting to accomplish in the following week, and any problems they have encountered. This is an opportunity for the students to share knowledge and discoveries with each other as well as with the mentor. Each student will be expected to

  • Complete at least one writing project
  • Contribute bug reports and fixes
  • One substantial project for extending Waterbear itself
  • Write a complete program using Waterbear to use as example code
  • Communicate well with their mentor and each other

Contact

dethe at mozillafoundation.org

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment