InfoQ

Interview

   Good News: We have re-worked our video infrastructure to provide more reliable service. Please email bugs at infoq.com with any problems.

Attila Szegedi Discusses Rhino

Interview with Attila Szegedi by Floyd Marinescu on Apr 11, 2008 01:00 AM

Community
Java
Topics
Javascript
Tags
JAOO Conference,
Rhino
Summary
Attila Szegedi discusses the Rhino JavaScript engine. Topics covered include the implementation of Rhino, Rhino's featureset, continuations, usage patterns for embedding Rhino, running JavaScript on the server, scripting capabilities for Rhino, JavaScript versus Ruby, JavaScript on Rails, and future plans for Rhino.

Bio
Attila Szegedi is a Project admin and principal developer of FreeMarker, an open-source template engine in Java. He is also the current maintainer of Rhino, Mozilla's JavaScript interpreter for Java, and the founder of the Rhino in Spring, an integration of JavaScript engine with the Spring framework.
This is Floyd Marinescu at the JAOO conference with Attila Szegedi, the lead of the Rhino project. Attila, can you tell us a bit about yourself and a little bit about Rhino?
Tell us more about Rhino, as I understand it is implemented in Java.
You started mentioning about using JavaScript in your application and you said also before that you working on projects and you wanted to use JavaScript. Can you tell us a bit about what your need was and how you solved it with JavaScript in Rhino?
Why didn't you choose it in Java? Why continuations also when you could have passivation of your HTTP sessions?
If you were faced with the same choice today, would you still have chosen Rhino?
Ok, so in your opinion what are some of the best usage patterns for embedding JavaScript within Java applications?
So if I'm not developing frameworks but just developing normal, typical applications, as a developer, where would I want to use JavaScript instead of Java or other languages?
What sort of scripting of Java can you do with JavaScript and using Rhino?
Ok, so let's go into some interesting comparisons. I have heard the claim that JavaScript is the language of the web and that it would be so cool to use one language on the client and on the server. What do you think of that vision, is there any chance of being?
So what about JavaScript versus Ruby?
And what is your take on Steve Yegge porting Ruby on Rails to JavaScript on Rails? Or Rhino on Rails?
So what's on the roadmap for Rhino going forward?
What's your favorite computer book?
show all  show all

3 comments

Reply

Lapses by Attila Szegedi Posted Apr 16, 2008 5:49 AM
Why JavaScript over other scripting languages by Mirko Nasato Posted Apr 16, 2008 12:47 PM
Apache Sling does use javascript for both server-side and client-side code by Bertrand Delacretaz Posted Apr 17, 2008 11:48 AM
  1. Back to top

    Lapses

    Apr 16, 2008 5:49 AM by Attila Szegedi

    I just can't believe I said "scratch to itch"! And I also meant to say "HtmlUnit" whenever I said "HttpUnit"; the two projects just have too similar names... HtmlUnit folks are fairly active within the Rhino community; it's definitely their project I had in mind. We don't hear much from HttpUnit.

  2. Back to top

    Why JavaScript over other scripting languages

    Apr 16, 2008 12:47 PM by Mirko Nasato

    Good to see Rhino get some press. Just because e.g. Groovy and JRuby advocates are generally more vocal, it doesn't mean that JavaScript should be overlooked when choosing a scripting language for a Java application. It may in fact be the best choice in some scenarios.

    A few points from the interview:
    - Many (web) developers are already familiar with JavaScript; this makes it a good choice for making an app extensible even by non-Java programmers
    - It has its own sandbox to impose security restrictions
    - It comes bundled with Sun's Java 6 implementation

  3. Shameless plug: Apache Sling allows web applications to be developed entirely in javascript, both server-side using our Rhino-based ECMAscript Pages (ESP), client side based on JST templates using a JSP-like syntax to generate client javascript code, or using traditional client-side javascript libraries to access the RESTful Sling interface. Sling is a fairly new project, and is still evolving quite a lot, so anyone who wants to have a look at it is very welcome.

Exclusive Content

Tapestry for Nonbelievers

A new article by I. Drobiazko and R. Zubairov introduces v. 5 of the Apache Tapestry component-oriented web framework. The tutorial shows how to create a component and covers IoC in Tapestry and Ajax.

Pete Lacey on REST and Web Services

In this interview, Burton Group consultant Pete Lacey talks to Stefan Tilkov about his disillusionment with SOAP, his opinion on REST, and addresses some of the perceived shortcomings REST vs. WS-*.

Business Natural Languages Development in Ruby

Jay Fields presents his concept of Business Natural Languages - a type of Domain Specific Languages geared towards being readable by domain experts.

Distributed Version Control Systems: A Not-So-Quick Guide Through

Adoption and interest for Distributed Version Control Systems is constantly rising. We will introduce the concept of DVCS and have a look at 3 actors in the area: git, Mercurial and Bazaar.

Segundo Velasquez and Agile as Seen Through the Customer's Eyes

Deborah Hartmann interviewed Segundo Velasquez about his experience as customer with an Agile team during the initial phase of software design of a product.

Fine Grained Versioning with ClickOnce

David Cooksey shows how to fine grained versioning to a ClickOnce deployment using an HttpHandler written with ASP.NET, making partial rollouts to a test audience much easier.

Implementing Manual Activities in Windows Workflow

Windows workflow (WF) is an excellent framework for implementing business processes, but lacks support for human activities. This article describes a completely generic approach for changing this.

Markus Voelter about Software Architecture Documentation

In this interview taken during OOPSLA 2007, Markus Voelter talks about the importance of documenting the software architecture, and gives some good and also bad examples on how it could be done.