Hop is a programming language designed for the Web 2.0. It is a
higher-order language for programming interactive web applications
such as web agendas, web galleries, music players, etc. Hop can be
viewed as a replacement for traditional graphical toolkits. HOP is
implemented as a Web broker, i.e., a Web server that may act
indifferently as a regular Web server or Web proxy.
HOP features:
* a versatile Web server supporting HTTP/1.0 and HTTP/1.1,
* an optimizing native code compiler for server code,
* an on-the-fly Javascript compiler for client code,
* an extensive set of widgets for programming fancy and portable
Web GUIs,
* a native multimedia support for enabling ubiquitous Web multimedia
applications.
* fast WebDAV level 1 support,
* an extensive set of libraries for the mail, calendars, databases,
Web technologies, ...
HOP is available at:
http://hop.inria.fr
The release 1.9.0 is a major release. It highlights are:
* new linguistic forms (e.g., "comet" server events).
* new APIs (e.g., multimedia, cryptography, ...).
* new implementations (e.g., new fast Web server scheduling,
new support for keep-alive connections, new compilation
techniques, ...).
Announce of previous Hop release (1.8.6):
-----------------------------------------
The release 1.8.6 is a minor release that fixes minor installation bugs.
* Minor bug fixes.
Announce of previous Hop release (1.8.5):
-----------------------------------------
The release 1.8.5 is a minor release that fixes minor installation bugs.
* It mostly contains fixes that enable packaging Hop is standard
Linux distributions.
Announce of previous Hop release (1.8.4):
-----------------------------------------
The release 1.8.4 is a minor release that fixes two important problems:
1- Hz timeout was expressed in micro-seconds instead of
milli-seconds. Hence, synchronizations and installations where
frequently failing because of timeouts.
2 Server events response text was not correct (although the
value of server events was).
It also adds a new feature to WEBLETS (the weblet in charge of making
weblets easily available on Web) which is now able to automatically generate
web pages.
Announce of previous Hop release (1.8.3):
-----------------------------------------
The release 1.8.3 is a minor release. It mostly fixes small glitches
such as:
* Eliminate multiple file authentications.
* Bad support of inlined resources.
* Broken proxy error messages.
* ...
It also adds a new feature to WEBLETS (the weblet in charge of making
weblets easily available on Web) which is now able to automatically generate
web pages.
Announce of previous Hop release (1.8.0):
-----------------------------------------
1- A new packaging system (Hz) that allows end users to
run and install Hop programs with a single click.
2- Support for MathML (with an extension that allows users to use
TeX syntax).
3- Support for SVG (with an extension that allows users to inline
SVG external images inside Hop documents).
4- Pre-compiled JVM version is now fully compatible with the native
version.
Announce of previous Hop release (1.7.0):
-----------------------------------------
1- Fast WebDAV level 1 support.
2- Various new APIs (such as audio support).
3- Support for fast server events (server-to-client communications).
Announce of previous Hop release (1.6.0):
-----------------------------------------
1- Support for history and bookmarking.
2- MacOS X port (single-threaded).
Announce of previous Hop release (1.5.0):
-----------------------------------------
The version 1.5.0 improves the former version 1.4.0 in many directions.
The three major improvements are:
1- Support all major browsers (Firefox, Safari, IE7, ...).
2- Add new widgets.
3- Improved authentication mechanisms.
Whoa! How have I missed this?! It's frakking amazing!
http://hop.inria.fr/#home-notepad=np:1
A web2.0 virtual desktop complete with games and a Scheme REPL! :)
On Sep 26, 9:27 am, Manuel Serrano <··············@Inria.fr> wrote:
> Hop is a programming language designed for the Web 2.0. It is a
> higher-order language for programming interactive web applications
> such as web agendas, web galleries, music players, etc. Hop can be
> viewed as a replacement for traditional graphical toolkits. HOP is
> implemented as a Web broker, i.e., a Web server that may act
> indifferently as a regular Web server or Web proxy.
>
> HOP features:
>
> * a versatile Web server supporting HTTP/1.0 and HTTP/1.1,
> * an optimizing native code compiler for server code,
> * an on-the-fly Javascript compiler for client code,
> * an extensive set of widgets for programming fancy and portable
> Web GUIs,
> * a native multimedia support for enabling ubiquitous Web multimedia
> applications.
> * fast WebDAV level 1 support,
> * an extensive set of libraries for the mail, calendars, databases,
> Web technologies, ...
>
> HOP is available at:
>
> http://hop.inria.fr
>
> The release 1.9.0 is a major release. It highlights are:
>
> * new linguistic forms (e.g., "comet" server events).
>
> * new APIs (e.g., multimedia, cryptography, ...).
>
> * new implementations (e.g., new fast Web server scheduling,
> new support for keep-alive connections, new compilation
> techniques, ...).
>
> Announce of previous Hop release (1.8.6):
> -----------------------------------------
>
> The release 1.8.6 is a minor release that fixes minor installation bugs.
>
> * Minor bug fixes.
>
> Announce of previous Hop release (1.8.5):
> -----------------------------------------
>
> The release 1.8.5 is a minor release that fixes minor installation bugs.
>
> * It mostly contains fixes that enable packaging Hop is standard
> Linux distributions.
>
> Announce of previous Hop release (1.8.4):
> -----------------------------------------
>
> The release 1.8.4 is a minor release that fixes two important problems:
>
> 1- Hz timeout was expressed in micro-seconds instead of
> milli-seconds. Hence, synchronizations and installations where
> frequently failing because of timeouts.
>
> 2 Server events response text was not correct (although the
> value of server events was).
>
> It also adds a new feature to WEBLETS (the weblet in charge of making
> weblets easily available on Web) which is now able to automatically generate
> web pages.
>
> Announce of previous Hop release (1.8.3):
> -----------------------------------------
>
> The release 1.8.3 is a minor release. It mostly fixes small glitches
> such as:
>
> * Eliminate multiple file authentications.
> * Bad support of inlined resources.
> * Broken proxy error messages.
> * ...
>
> It also adds a new feature to WEBLETS (the weblet in charge of making
> weblets easily available on Web) which is now able to automatically generate
> web pages.
>
> Announce of previous Hop release (1.8.0):
> -----------------------------------------
>
> 1- A new packaging system (Hz) that allows end users to
> run and install Hop programs with a single click.
> 2- Support for MathML (with an extension that allows users to use
> TeX syntax).
> 3- Support for SVG (with an extension that allows users to inline
> SVG external images inside Hop documents).
> 4- Pre-compiled JVM version is now fully compatible with the native
> version.
>
> Announce of previous Hop release (1.7.0):
> -----------------------------------------
>
> 1- Fast WebDAV level 1 support.
> 2- Various new APIs (such as audio support).
> 3- Support for fast server events (server-to-client communications).
>
> Announce of previous Hop release (1.6.0):
> -----------------------------------------
>
> 1- Support for history and bookmarking.
> 2- MacOS X port (single-threaded).
>
> Announce of previous Hop release (1.5.0):
> -----------------------------------------
>
> The version 1.5.0 improves the former version 1.4.0 in many directions.
> The three major improvements are:
>
> 1- Support all major browsers (Firefox, Safari, IE7, ...).
> 2- Add new widgets.
> 3- Improved authentication mechanisms.
What am I missing?
From the REPL:
:=> (define factorial2
(lambda (n)
(if (= n 0) 1
(* n (factorial2 (- n 1))))))
#<procedure hash-3>
:=> (factorial2 5)
*** [object Error]
:=>
On Sep 26, 2:46 pm, Steve Graham <···················@gmail.com>
wrote:
> On Sep 26, 9:27 am, Manuel Serrano <··············@Inria.fr> wrote:
>
>
>
> > Hop is a programming language designed for the Web 2.0. It is a
> > higher-order language for programming interactive web applications
> > such as web agendas, web galleries, music players, etc. Hop can be
> > viewed as a replacement for traditional graphical toolkits. HOP is
> > implemented as a Web broker, i.e., a Web server that may act
> > indifferently as a regular Web server or Web proxy.
>
> > HOP features:
>
> > * a versatile Web server supporting HTTP/1.0 and HTTP/1.1,
> > * an optimizing native code compiler for server code,
> > * an on-the-fly Javascript compiler for client code,
> > * an extensive set of widgets for programming fancy and portable
> > Web GUIs,
> > * a native multimedia support for enabling ubiquitous Web multimedia
> > applications.
> > * fast WebDAV level 1 support,
> > * an extensive set of libraries for the mail, calendars, databases,
> > Web technologies, ...
>
> > HOP is available at:
>
> > http://hop.inria.fr
>
> > The release 1.9.0 is a major release. It highlights are:
>
> > * new linguistic forms (e.g., "comet" server events).
>
> > * new APIs (e.g., multimedia, cryptography, ...).
>
> > * new implementations (e.g., new fast Web server scheduling,
> > new support for keep-alive connections, new compilation
> > techniques, ...).
>
> > Announce of previous Hop release (1.8.6):
> > -----------------------------------------
>
> > The release 1.8.6 is a minor release that fixes minor installation bugs.
>
> > * Minor bug fixes.
>
> > Announce of previous Hop release (1.8.5):
> > -----------------------------------------
>
> > The release 1.8.5 is a minor release that fixes minor installation bugs.
>
> > * It mostly contains fixes that enable packaging Hop is standard
> > Linux distributions.
>
> > Announce of previous Hop release (1.8.4):
> > -----------------------------------------
>
> > The release 1.8.4 is a minor release that fixes two important problems:
>
> > 1- Hz timeout was expressed in micro-seconds instead of
> > milli-seconds. Hence, synchronizations and installations where
> > frequently failing because of timeouts.
>
> > 2 Server events response text was not correct (although the
> > value of server events was).
>
> > It also adds a new feature to WEBLETS (the weblet in charge of making
> > weblets easily available on Web) which is now able to automatically generate
> > web pages.
>
> > Announce of previous Hop release (1.8.3):
> > -----------------------------------------
>
> > The release 1.8.3 is a minor release. It mostly fixes small glitches
> > such as:
>
> > * Eliminate multiple file authentications.
> > * Bad support of inlined resources.
> > * Broken proxy error messages.
> > * ...
>
> > It also adds a new feature to WEBLETS (the weblet in charge of making
> > weblets easily available on Web) which is now able to automatically generate
> > web pages.
>
> > Announce of previous Hop release (1.8.0):
> > -----------------------------------------
>
> > 1- A new packaging system (Hz) that allows end users to
> > run and install Hop programs with a single click.
> > 2- Support for MathML (with an extension that allows users to use
> > TeX syntax).
> > 3- Support for SVG (with an extension that allows users to inline
> > SVG external images inside Hop documents).
> > 4- Pre-compiled JVM version is now fully compatible with the native
> > version.
>
> > Announce of previous Hop release (1.7.0):
> > -----------------------------------------
>
> > 1- Fast WebDAV level 1 support.
> > 2- Various new APIs (such as audio support).
> > 3- Support for fast server events (server-to-client communications).
>
> > Announce of previous Hop release (1.6.0):
> > -----------------------------------------
>
> > 1- Support for history and bookmarking.
> > 2- MacOS X port (single-threaded).
>
> > Announce of previous Hop release (1.5.0):
> > -----------------------------------------
>
> > The version 1.5.0 improves the former version 1.4.0 in many directions.
> > The three major improvements are:
>
> > 1- Support all major browsers (Firefox, Safari, IE7, ...).
> > 2- Add new widgets.
> > 3- Improved authentication mechanisms.
>
> What am I missing?
>
> From the REPL:
> :=> (define factorial2
> (lambda (n)
> (if (= n 0) 1
> (* n (factorial2 (- n 1))))))
>
> #<procedure hash-3>
> :=> (factorial2 5)
> *** [object Error]
> :=>
It seems the REPL is limited, you can't define globally, just inside
lets.
Anyway, it looks like a very good web framework for creating fluid
web2.0 rich interfaces by means of server-side compiled Scheme.