[Clev-jug] April '08 Cleveland Java Users Group Meeting
Scott Seighman
Scott.Seighman at Sun.COM
Wed Apr 2 13:34:09 CST 2008
Hi All,
Just a reminder, our monthly scheduled meeting will be held *next
Wednesday, April 9th at 5:30PM* (pizza and drinks) with the discussion
beginning at 6:00PM (see map for meeting location:
http://www.clevelandjava.org/map.htm
<http://www.clevelandjava.org/map.html>l
<http://www.clevelandjava.org/map.html>).
David Caldwell (bio below) will be presenting *Patterns for Integrating
Java^(TM) and JavaScript^(TM) Technology: Tales from the Front Lines.*
Dynamic (or "scripting") languages are growing enormously in mind share
and popularity. The combined use of Java and dynamic languages on the
Java platform can boost developer productivity considerably. In this
session, David examines several patterns for including dynamic languages
in a Java technology-based project (see detailed abstract below).
David will be presenting this topic during *JavaOne*
<http://java.sun.com/javaone/sf/index.jsp> in May so I'm certain he
would appreciate feedback from the group as he prepares for the conference.
The agenda:
* *Eat, Drink, Network (5:30-6:00 PM)*
* *March Meeting Recap (6:00-6:20 PM)
*
* *News Items (6:20-6:30 PM)
*
* *Patterns for Integrating Java^(TM) and JavaScript^(TM)
Technology: Tales from the Front Lines** (6:30-8:00 PM)
*
Hope to see you there!
Scott*
David's Bio*
David Caldwell is a Java consultant with over 10 years of experience
building and architecting Java technology applications, mostly for large
corporate clients. He is also an active participant in the Mozilla Rhino
project. Rhino is a JavaScript interpreter which runs on the Java
platform, and provides the basis for the bundled JavaScript
implementation included in JDK 6. David is the primary author of its
support for the E4X (or ECMA-357) standard. E4X is a JavaScript language
extension which adds XML types to JavaScript's native type system and
provides a powerful, terse syntax for manipulating and processing XML
values.
David is an experienced speaker and trainer, having taught Java classes
in corporate and academic settings and conducted political skills
training for activist organizations around the United States.
*Abstract *
One of the hottest trends in the Java^(TM) community is the exploding
use of scripting languages as a way to add more development options to
the Java technology ecosystem. A series of dynamic languages is
available for the Java platform, including ports of languages such as
Python and Ruby (Jython and JRuby) and new languages for the Java
platform such as Groovy and Scala. These dynamic languages run in the
Java virtual machine and typically allow access to the underlying Java
technology-based runtime and Java platform APIs along with a looser type
system, runtime interpretation, and the ability to embed a language
interpreter inside a larger application so that scripting can be used to
add dynamism to a Java platform or Java technology-based application.
JSR 223 (Scripting for the Java Platform) standardized a set of bindings
and an API that scripting engines could implement to let Java
technology-based programs discover their capabilities and execute them
at runtime.
Arguably the granddaddy of the JVM^(TM) machine dynamic language
implementations is the Mozilla Foundation's Rhino JavaScript^(TM)
technology-based interpreter. A version of Rhino is bundled with
JDK^(TM) release 6 as the only preinstalled scripting engine. Rhino is
used in many other projects, including Project Phobos, an initiative
that lets developers leverage JavaScript technology from within the
GlassFish^(TM) project's Java Platform, Enterprise Edition (Java EE
platform) environment.
For adding scripting languages to the toolbox, what is the best way to
integrate them into the development process? Most developers probably
start using scripting languages because they allow "exploratory
programming," executing individual lines of code that create and invoke
methods on Java technology-based objects with instant feedback. But
more-complex uses of scripting technologies raise questions about how
exactly to draw the line between Java language code and scripting
language code and how to get the most out of both tools while minimizing
the impedance mismatch a multilanguage application creates.
This session's speaker, David Caldwell, is one of the developers on the
Rhino project and has been using Rhino in various ways to add more
agility and dynamic behavior to several Java technology-based projects.
In this session, he examines several patterns for including dynamic
languages in a Java technology-based project:
* Using the JavaScript programming language as the primary
programming language and creating Java technology-based objects on
demand to leverage the underlying platform
* Using a peer-based architecture, in which objects from the
scripting language add dynamic behavior to a Java technology-based
"peer" instance
* Using the Java programming language as the primary programming
language and the JavaScript programming language to extend
abstract Java classes
* Creating a script per operation and generating a unique scope for
each operation, with access to the appropriate Java
technology-based objects and methods
Attendees who are inexperienced with scripting languages for the Java
platform will likely be very surprised by how closely Java and
JavaScript programming language code can be integrated. Architects with
some exposure to Rhino or one of the other JVM machine dynamic languages
should come away with a deeper appreciation for the various integration
strategies available between Java and non-Java programming languages
running on the JVM machine and which approach(es) might work best on
their own projects. Developers already using an environment that
includes an embedded scripting language will learn more techniques for
using scripts in their embedding and gain insight into the interaction
model defined by their embedding. And attendees who think Java
technology is always the answer--or that it is passé and destined to be
replaced by new tools--will hear thought-provoking critique
--
Scott Seighman
Systems Engineer
Sun Microsystems
877.450.8885
scott.seighman at sun.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.urbancode.com/pipermail/clev-jug/attachments/20080402/9b78be09/attachment.htm
More information about the Clev-jug
mailing list