verse

🌲 A programming environment in an HTML page

GPL-3.0 License

Stars
3

Verse

Verse is a browser-based coding tool that makes it simple to create programs and games and share them with others.

Verse is designed with beginners in mind. It's a great way to start learning to code. But even professional programmers will find it useful for sketching ideas, performing code katas, or bringing their side projects to life.

Try it out! Here's a simple program you can copy-paste to get started.

define({
  *run() {
    let name = yield waitForInput("Hello! What's your name?")
    yield log('Nice to meet you, ' + name + '!')
    yield wait(1)
    yield retry(run())
  }
})

Downloads

In addition to accessing Verse online, you can download past versions from the releases page. Just click the link for the verse.html file of the version you want.

To use the file, open it in a web browser. On most systems, you can double-click the file to open it.

Once you've downloaded a copy of Verse, you can use it anywhere—even without an Internet connection!

Documentation

You can find the Verse Documentation, including "getting started" tutorials and a reference manual, here.

Guiding Principles

We value simplicity, speed, beauty, and openness. The principles Verse uses to support these values are described below.

  • Just Code. Verse apps don't use HTML or CSS,
    so you only have to learn one language: JavaScript.
  • Immediate Feedback. Many programming tools make you
    wait a lot—for programs to start, tests to run, webpages
    to load. This makes it harder to know whether the code you
    just wrote is going to work, and harder to debug when you
    have a problem. We believe the best amount of time to
    spend waiting is zero, and Verse gets as close as humanly
    possible to that goal.
  • Room to Grow. It's easy to write toy programs in
    Verse, but it's just as easy to grow them into real,
    useful software. Verse is designed to scale seamlessly
    from 10 lines of code to 10,000.
  • Open Source. The code powering Verse is free for
    anyone to inspect, use, and remix, and its history is
    saved on Github. Verse will always remain free for anyone
    to use. It will grow and change, but you'll always be able
    to use an older version of it if you really want to.
  • Private. We take data privacy seriously.
    There's no sneaky code in Verse phoning home with data
    about you. Your code is stored only on your
    device, until you choose to share it with the world.
  • Works Offline. Not everyone has access to fast
    Internet all the time. Once you've accessed the Verse site,
    it's stored on your device so you can use it even without
    an Internet connection.
  • Non Nova, sed Nove.
    That's Latin for "not new things, but new ways." Verse
    doesn't try to make up new programming languages or
    syntax. The patterns you'll learn from using Verse are
    inspired by state-of-the-art programming tools like
    React and
    Redux. Verse simply turns up
    the good

    in these existing technologies. As a result, the things
    you learn from Verse will be useful for the rest of your
    programming career.

And, perhaps most importantly...

  • Fun. Writing code and making stuff work should be fun.
    Verse aims to maximize the joy of programming while
    minimizing its frustrations.

Credits

Thanks to JS.ORG for providing the verse.js.org domain!


Technical Stuff

The rest of this document is intended for programmers who work on the code for Verse itself.

Contributing

What to work on

Thanks for your interest in contributing to Verse! At this point, what Verse really needs is not more code but more users.

I would greatly value your feedback on what works or doesn't work for you as you use Verse. Send me code, bug reports, and general frustrations. If you'd like to collaborate with me on some code over Skype or whatever, let me know via a Github issue.

If you really really want to work on something in this repo, the documentation is a good place to get started.

How

To work on the code for Verse itself, do the following:

  1. Fork and clone this repo.
  2. Install Yarn if you don't have it yet.
  3. Run yarn to install dependencies.
  4. yarn run start to open a development version of the
    app in your browser (it will live-update as you change the code!)
  5. In another terminal window, yarn run test to start the
    tests (they'll re-run automatically when you change code).
  6. Commit your changes and submit a pull request.

Forking

Verse is monolithic and lacks affordances for plugins. That's by design. Verse is intended to provide a self-contained programming experience that's consistent across time, space, operating systems, and browsers.

Of course, there is no one-size-fits-all approach to programming, and you will likely want to add things to Verse that reflect your own philosophy. We encourage you to do so by forking this repository and making whatever changes you want.

Forking follows much the same process as contributing, but instead of making a pull request for your changes, you'll want to distribute your version of Verse. Here's how to do that:

  1. Run the ./build-standalone-html script. This generates
    a build/index.html file.
  2. Open build/index.html in a browser to make sure it works.
  3. Share your build/index.html with the world. If you want
    to host it on the web, I recommend GitHub Pages.

The GNU General Public License requires you to make source code available for any copies of Verse (modified or unmodified) that you distribute. This can be as simple as providing a link to your GitHub repository.

License

Copyright © 2018, Ben Christel

Verse is distributed under the GNU General Public License, Version 3.

This goes without saying, but to clarify: you may distribute code you write using Verse under any license you choose. Verse imposes no restrictions on what you can do with code that you write. For more information, please see the license clarification.

Related Projects