continuations

Wee

October 28, 2004 12:50:15.622

I've been helping Mike Neumann with his new Wee web framework, by explaining Seaside's solutions to the various problems he's coming across. I think I can count Mike among my oldest fans, because years ago he wrote a chapter in a Ruby book about using IOWA, my first attempt at a Seaside-style (or, as I thought of it then, WebObjects-style) web framework. I've learned a lot since then, and it's been great fun bringing Mike up to speed on my latest thoughts on the problem of web development - especially since he seems to agree with most of them ;).

The result is interesting on a couple levels: first, it's a reimplementation in Ruby of many of the core concepts of Seaside, but without (as far as I know) Mike looking at a single line of Seaside code - it's all just been email conversations at the design level. This is in stark contrast with Borges, which started out as a line-by-line translation of the Seaside codebase into Ruby, and I have to confess that I think Mike's is the better approach. It's been a nice chance for me to think about the various "tricks" (patterns?) that make up the framework, and how to generalize them to other languages and other implementation constraints. I've always meant to write those up, and this may be the trigger to start me on doing that. Given my record with regular posts to this blog so far, however, I shouldn't be too optimistic...

The second way in which Wee is interesting is that it doesn't use continuations. Mike wanted to be able to serialize the session state, and although Ruby does support call/cc, it can't marshal continuations, so Wee doesn't use them. Given that continuations are the aspect of Seaside that I spend, by far, the most time talking about, it's very interesting to be reminded of everything else that's going on by seeing a framework that leaves them out and yet is still instantly recognizable as Seaside-influenced.

Comments

call/answer without continuations

[Leslie Hensley] October 28, 2004 13:48:15.117

I've also been working on a Seaside like web framework (in Java) that doesn't use continuations called Lakeshore. It uses threads and semaphores to handle call/answer across requests. This technique would run into the same problem serializing session state as continuations. How does Wee handle call/answer, Mike?

Tasks in Wee

[Leslie Hensley] October 28, 2004 14:16:55.841

I answered my own question by digging further into Mike's blog. Which of course just raised more questions. Is there any way to do something like Seaside Tasks in Wee? Can you have code in an action "with" block after a call? Is that what the return_method is used for?

Wee

[ Vincent Foley] October 28, 2004 21:35:10.852

Comment by Vincent Foley

As an ex-Ruby programmer, and a reference on web frameworks, what is your opinion of Rails? As you must know, Rails is not in the same league as Wee or Seaside, it's more about connecting web pages and databases, but you must have some opinion on it?

Any thoughts on Wee vs IOWA too?

Wee vs IOWA

[Kirk Haines] October 29, 2004 16:33:39.823

Mike Neuman and I have traded a few emails about IOWA and the things that he doesn't like about it, and I've taken a quick look at Wee. I think Wee is going to be an interesting framework, and one that I hope I can learn some things from as I continue to use and improve IOWA. IOWA today is a lot different from what it was when Mike wrote the book chapter on it. Well, that's not exactly true. The core of it still feels the same, but it has a lot more scaffolding around it to make it pragmatic for, at the least, my needs in a framework. I don't know if Mike is developing Wee because it's a fun thing to do, or because of work related needs, so that might be a telling difference, too, since almost all of my IOWA work has been driven by the need to have something that would do X, and not having a better alternative. Thus, for the most part, development has been driven by a simple pragmatic need to get stuff done.

Oh, While I Am Here....Rails

[Kirk Haines] October 29, 2004 16:52:40.884

Since I am here, and you are a captive audience, and since you are wondering what Avi thinks about Rails, I'll tell you what I think.

  • David is fantastic at marketting, and that is getting a lot of people to dip their fingers into Ruby as a way to get things done. I think that is a good thing. He's managed to bring a lot of exposure to Ruby.
  • Rails is _very_ different from Seaside/Borges/Wee and even IOWA. Very. Extremely. It's a "framework" that is actually a set of policies with supporting code. It achieves it's development ease by describing specific ways of doing things, and then making those ways easy. It is an interesting approach, but is certainly not for some people, and despite the existence of BaseCamp, it's still pretty young and untested and is still very much a moving target. My hunch is that it is going to experience some explosive growth and draw a lot of people to Ruby, then settle down, leaving room for some of the other frameworks to do their thing and pick up some mindshare. There are certain people, such as developers with a lot of experience in PHP/ASP/JSP, who are going to flock to Rails more than others.

IOWA, Wee... Rails

[Michael Neumann] October 29, 2004 19:00:43.420

Kirk: Sure, Wee is mostly a fun thing. It's very interesting to see what are the design decisions behind this and that. What I'd like to see is an implementation of the IOWA templating stuff on-top of the Wee kernel. Don't know if that makes sense, but indeed both would benefit.

I got now the continuations implemented, and it seem that there's no memory leak anymore (at least, the stress test over the last 5 hours with 25 sessions and around 3 million hits does not show an anormality... it stays below the 20 MB mark).

Rails? I never really got it to work on my machine... maybe I'm too stupid... or I tried a too early version... it's probably very elegant, but I think it's completely different... and what I want is a framework that I understand to 100%... that's probably why I wrote my own ;-)

オンラインカジノ

[オンラインカジノ] February 15, 2005 17:47:58.741