Skip to main content

What's up with Scripting support on Glassfish?

Posted by vivekp on January 26, 2008 at 10:04 PM PST

Scripting is becoming ever popular among web application developers. Glassfish
already

supports
Ruby on Rails with JRuby,
Phobos brings in solid support for
JavaScript on Glassfish and AJAX framework
jMaki
and all of these with excellent NetBeans tooling. There are other
scripting languages such as PHP and Python, which are very popular among
developers too. How nice would it be to deploy your PHP or Python based web
applications on Glassfish? Well, we know that marrying Java and scripting
languages has it's own challenges.

JSR-223 let you execute dynamic languages from inside Java. However the
interpreters for such languages are written in Java and generate bytecodes and
at runtime deal with all the dynamic types and method dispatching and what not.
This is because JVM is designed to be used for statically typed language such as
Java where you know the types at the compile time and to take care of 
types at the runtime the dynamic language interpreters use complex mechanism,
which results in to uses of more memory, performance etc. JRuby overcomes these
by doing JIT ahead of time, but then this poses limitation specially on the
server side considering Rails which is single threaded.

The

good news
is that there are efforts in place in JVM to support Dynamic
Languages, such as JSR -292 is
going to add a new bytecode,

invokedynamic
, that supports efficient and flexible execution of method
invocations in the absence of static type information. There is also a new
project Da Vinci Machine
that is going to bring in support for dynamic languages (or any other language)
to JVM.

You might wonder why I am talking about all the scripting stuff! Well, I have
taken up the role of Scripting Lead in
Glassfish
. I will ensure that Glassfish is home to many of the popular
scripting languages out there and in fact will try to bring best of both worlds
to Glassfish. JAX-WS will be lead by very capable
Jitu.

I am working on wrapping up implementing some new features for upcoming Metro
1.2 or JAX-WS RI 2.1.4 and starting to take on Scripting Lead. Stay tuned, you
will be hearing more form me in coming days...

Related Topics >>

Comments

Hi James,
Thanks for the link! It will be good to know how their deployment went.
We are investigating Quercus and also other Java based PHP solutions, such as JavaBridge etc. and trying to see what it means when put together with GlassFish. Such as GF is GPL 2 and CDDL and Quercus being GPL etc. Stay tuned and let us know if you have your own experience with trying PHP or any other scripting language on GlassFish.
-vivek.

Just FYI - there's some talk archived at the link below about running PHP programs in glassfish using Quercus. http://www.uwyn.com/drone/log/bevinbot/glassfish/20080128 -james.

Hi guillaumelaforge,
My blog was certainly not trying to enumerate all of the popular scripting languages/frameworks and yes Groovy look very interesting and as Eduardo commented we would welcome more contributions and more data on it. Groovy/Grails, Jython/Django and others are in our radar and will be investigating, looking at community for more data and how we should be approaching this going forward.
-vivek.

Hi guillaume, I agree that Groovy is also very interesting. Do you guys have any data on how often Groovy is used with GlassFish? We (GF) do not yet have a Groovy page at our GlassFish wiki - just lack of cycles. We would welcome a contribution from somebody from the Groovy community :-) - eduard/o

Speaking of dynamic languages and web frameworks that work on GlassFish, you forget to mention Groovy and the Grails web framework Groovy compiles down to JVM bytecode, and Grails web apps are painless to deploy as WARs.

hi vivek, congrats!! we look forward to seeing more scripting support. BR, ~A