InfoQ

Interview

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

Educational Content

Bindings, Platforms, and Innovation

This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.

Orchestrating Long Running Activities with JBoss / JBPM

This article explores the use of JBoss and jBPM to implement design solutions that effectively address the issue of orchestrating long running activities.

Neo4j - The Benefits of Graph Databases

This presentation covers the use of graph databases as an optimal solution for data that is difficult to fit in static tables, rapidly evolving data or data that has a lot of optional attributes.

Realistic about Risk: Software development with Real Options

This session introduces Real Options and shows how it can help in running your project. Real Options is a decision-making process that can be used to manage risk.

Communication Flexibility Using Bindings

This article discusses the use of bindings on services and references (including the instance of non-configured bindings) as the means to implement SCA communications in a Web and SOA environment.

Writing DSLs in Groovy

After a short introduction to DSLs, Scott Davis plays with the keyboard showing how to approach the creation of a DSL by typing working snippets of Groovy code that get executed.

Scaling Agile with C/ALM (Collaborative Application Lifecycle Management)

IBM Rational and InfoQ present, Scaling Agile with C/ALM, an eBook showing organizations how to become “finely tuned software delivery machines” by enabling team integration and scaling.

Concurrent Programming with Microsoft F#

Amanda Laucher presents a real life enterprise application written in F#. She shows actual code snippets, explaining design decisions and suggesting how to use some of the F# constructs.