26 comments

[ 6.1 ms ] story [ 64.0 ms ] thread
Try this Hello world:

    (js-big-bang 0                ;; initial world
                 (on-draw ;; the dom tree renderer
                          (lambda (w)
                            (list (js-p '(("id" "myPara")))
                                  (list (js-text "hello world"))))

                          ;; the css renderer
                          (lambda (w)
                            '(("myPara" ("font-size" "30"))))))
Originally we had planned to include a structured editor, along the lives of DivaScheme and Scratch. This was shortly before widespread support of HTML5, so working with what we had I implemented it on top of `contenteditable`. In the end it just wasn't polished enough to ship.
I haven't had a chance to look at this properly yet but maybe somebody can clarify a few things.

This lets me do scheme->js in the browser using moby, which is implemented in racket. So my code gets converted to js on the server hosting this site. Does this mean I can (require ...) other racket libraries as well?

Bookmarked for later.

require is currently not working in WeScheme. We'll revisit the design of this in a few weeks. In the context of WeScheme, it would be very cool to be able to treat other people's programs as libraries and be able to require them.
Thank you so much for doing this. I've been hoping someone would write a decent online REPL for a long time; hooking it into Google Docs sweetens the deal.
Michael Cote at redmonk has brought this up a few times this year. Most recently, <http://www.redmonk.com/jgovernor/2011/06/24/ide-as-a-service...;

Truthfully, I don't know that it's going to kill conventional editor or editing habits (and by the time it does, I suspect that web-based IDEs will look significantly less like today's web-apps than they do today) and more that this technology will find a niche in code review, or version control interfaces, or something like that, but it's a nifty idea.

How is this different than http://cloud9ide.com/ ? Cloud9 seems to be much more mature and feature rich as well.
this is for writing scheme and compiling to js for running client-side. Cloud9ide seems to be an ide for writing directly in js or php/ruby etc.
Also, WeScheme goes to great pains to implement the "world" computing model, rather than only exposing the underlying computational model. Implementing this atop JavaScript is a fair bit of effort. That's where our resources have gone; Cloud9 has spent its effort elsewhere.

You can read about the model here: http://www.cs.brown.edu/~sk/Publications/Papers/Published/ff... A fun exercise for hackers is to guess the consequences of this for running atop JavaScript.

Regarding comments about Web IDEs replacing Emacs, I don't see how this could happen with current editing capabilities of those IDEs. While they might be better at storing your sources safely, their editing capabilities just suck compared to Emacs or Vim. Working with code isn't only about entering text.
Very cool. I tried to run the form example in the API documentation, and it complains that js-bidirectional-input is undefined. Am I doing something wrong?
It's not you, I get the same error.
Apologies; some of the documentation is outdated.

I'm in the middle of a revamping of the runtime and its libraries, which will hopefully be released in a few weeks.

My apologies! I had to rip out js-bidirectional-input out, and didn't update the documentation to reflect that. The documentation linked from the "API" link there is unfortunately stale, and I haven't had the time to update it. (Most of my time right now is dedicated to a new version of the evaluator, discussed at the bottom of this post.)

The Wescheme environment is meant to pair with the curriculum of the Bootstrap project (http://www.bootstrapworld.org/)

Here are some examples that highlight the features in WeScheme. Each includes both a runner and a live editor link to the source code.

A simple game:

    http://www.wescheme.org/view?publicId=messy-humor-truck-adopt-outdo

A sierpenski triangle program:

    http://www.wescheme.org/view?publicId=pasty-brawl-frank-vomit-would

A more substantial demo of the image libraries:

    http://www.wescheme.org/view?publicId=haste-foggy-grief-hatch-gloom

A simple 1-tick-per-section counter that resets when you press the button:

    http://www.wescheme.org/view?publicId=queer-decay-slush-speck-stage


I'm in the middle of a rewrite of the underlying evaluator and libraries during this summer (http://hashcollision.org/whalesong), and hope to deliver in the next few weeks so that people can play with it.
To gain any sort of traction, I suggest allowing more choices than code, log-in, or watch a video.

For someone who doesn't necessarily want to code scheme right away, log-in with their account, or put headphones in to watch a video - you've lost them immediately. Never to come back.

The option that is missing - let me read about it.

(comment deleted)
(comment deleted)
(comment deleted)
(comment deleted)
(comment deleted)