Hop: a Language for Programming the Web 2.0

Hop, A Language for Programming the Web 2.0

From the abstract:

"Hop is a new higher-order language designed for programming interactive web applications such as web agendas, web galleries, music players, etc. It exposes a programming model based on two computation levels. The first one is in charge of executing the logic of an application while the second one is in charge of executing the graphical user interface. Hop separates the logic and the graphical user interface but it packages them together and it supports strong collaborations between the two engines. The two execution flows communicate through function calls and event loops. Both ends can initiate communications."

It appears to be implemented in Scheme. The Hop website has a nice demo.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

buggy in Safari

Rather buggy on OS X in Safari. I've not tried Firefox.

Windows drag well below the location of the mouse.

Can't drag windows partially offscreen.

Clicking in the content region of a window does not bring it forward - you have to find the title bar, which means moving things around, but since you can't drag windows partially offscreen sometimes getting to the titlebar of an obscured window is impossible without closing some windows.

With Rewrite and Rss open, Rewrite began drawing in Rss' window. Rss never recovered, even after closing and reopening both.

Source code browser displays a scroll bar and nothing more.

Not sure how to right click in Minesweeper since Safari uses right clicks for its own contextual menu.

Screen update extremely slow. Windows remain blank for long periods.

It works fine with Firefox

It works fine with Firefox but it does seem to be bleeding edge browsers only unfortunately.

Firefox bug

In Firefox, when dragging the Source Code Browser in front of the Rewrite window, the Rewrite window scroll bar draws on top of the Source Code Browser window.

Operatic Observations

Shift-click seems to work for Minesweeper. Sudoku doesn't seem to prevent Opera from acting on keypresses as well; for example, 8 sets the page zoom to 200%, which was a bit "exciting". And there are definite issues with window/subwindow layering.

But, having a little idea of what goes into making Web Sausage, I'm amazed that it works as well as it does.

(And, as some of the examples show, Hop can also be used for old-fashioned forms ("Web 1.0", I guess), or for less ambitious applications of client-side scripting.)

Proxy problem

It doesn't seem to work with HTTP proxies - it looks like it's using an HTTP(-like) method "HOP" which the proxy doesn't understand.

reminds me of ChimpOS

This reminds of ChimpOS. However, ChimpOS is more focused on the GUI aspect than the underlying programming model.