

WeScheme (web IDE) - sheffield
http://www.wescheme.org/

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

------
dexen
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-...](http://steve-yegge.blogspot.com/2008/04/xemacs-is-dead-long-live-
xemacs.html)

------
bhickey
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.

------
drblast
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.

~~~
bhickey
You're welcome! :)

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

------
alttab
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.

~~~
shriramk
Yes, we will. In the meanwhile, you can read about it here:
[http://www.cs.brown.edu/~sk/Publications/Papers/Published/ys...](http://www.cs.brown.edu/~sk/Publications/Papers/Published/yskf-
wescheme/)

------
tychoish
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...](http://www.redmonk.com/jgovernor/2011/06/24/ide-as-a-service-daas-
hawt-and-some-enterprise-opensocial-thawt/>);

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.

------
jeeve
Ping pong game [http://augreduvent.limewebs.com/Informatique/ping-
pong/ping-...](http://augreduvent.limewebs.com/Informatique/ping-pong/ping-
pong.htm)

Source code :

[http://www.wescheme.org/openEditor?publicId=screw-salon-
ciga...](http://www.wescheme.org/openEditor?publicId=screw-salon-cigar-liter-
biped)

------
djm
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.

~~~
djm
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...](http://planet.racket-lang.org/package-
source/dyoo/moby.plt/3/10/planet-docs/manual/index.html)

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

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

------
TeMPOraL
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.

------
matthiasf
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.

------
rynop
How is this different than <http://cloud9ide.com/> ? Cloud9 seems to be much
more mature and feature rich as well.

~~~
djm
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.

~~~
shriramk
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...](http://www.cs.brown.edu/~sk/Publications/Papers/Published/fffk-
functional-io/) A fun exercise for hackers is to guess the consequences of
this for running atop JavaScript.

------
supersillyus
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?

~~~
djm
It's not you, I get the same error.

~~~
dyoo
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.

