Skip to content

WeScheme (web IDE)

wescheme.org
64 pointssheffield21 comments
On HN

Comments

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"))))))

Strangely reminds me of the prediction Steve Yegge, that web-based environment is rising to status of serious competitor to {X,}Emacs.

http://steve-yegge.blogspot.com/2008/04/xemacs-is-dead-long-...

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.

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.

You're welcome! :)

Much of the credit goes to Danny Yoo for Moby -- http://github.com/dyoo

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.

Yes, we will. In the meanwhile, you can read about it here: http://www.cs.brown.edu/~sk/Publications/Papers/Published/ys...

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.

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.

OK, couldn't wait. require doesn't seem to work but that's as expected since they don't know what I might load.

moby documentation: http://planet.racket-lang.org/package-source/dyoo/moby.plt/3...

World: http://world.cs.brown.edu/1/htdw-v1.pdf

I'm playing now. Will post some code when I have it working.

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.

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.

You can hear more about Danny Yoo's new compiler at RacketCon (http://con.racket-lang.org/), taking place at Northeastern on July 23 & 24.

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.

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?

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.

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.

AboutSource Built by g1lg1l

Hackerly is an independent reader for Hacker News, built on the public HN API. Not affiliated with Y Combinator.