InfoQ

InfoQ

News

My Bookmarks

Login or Register to enable bookmarks for unlimited time.

The content has been bookmarked!

There was an error bookmarking this content! Please retry.

Java Scripting Wish List

Posted by Ian Roughley on Jan 17, 2008

Sections
Development,
Architecture & Design
Topics
Scripting ,
Java ,
Interop
Tags
Java SE
With the release of Java 6 and JSR 223, developers now have the option of being able to have inter-operability between Java and any of the supported scripting language.  If your scripting language of choice is not supported, making it available is as simple as implementing the necessary connector API.

Mark Fortner has been exploring the capabilities of the Bean Scripting Framework (BSF) with JSR 223, and has found a number of items that could be improved. These include:
  • Universal Scripting Host API - the JRunscript scripting host and the BSF Main class that serves a scripting host provide uneven support for Global functions.  JRunscript has functions for listing directories, copying files etc.  BSF does not.  It would be really useful if we could have a single, open source scripting host with a number of global functions that could be called from any language.

  • Support for XPath & XQuery functions within the scripting host.  There needs to be universal way of fetching and extracting parts of XML-based documents. 
  • Jar/Tar/Bzip/Zip support.  These functions should be similar to the support that Apache Commons VFS provides.  You can enter URLs like tar:gz:http://anyhost/dir/mytar.tar.gz!/mytar.tar!/path/in/tar/README.txt to extract a file from a tarball.  Notice the multiprotocol support at the beginning of the URL (in bold).

  • Mail function within Scripting Host - it would be useful to send files from the scripting host or send email messages.

  • Basic ImageIO capabilities including affine transforms, and file transcoding.  We can currently use the ImageIO classes static methods as a starting point. If someone gets ambitious they could recreate the functionality found in ImageMagick.

  • IDE support in Eclipse -- Currently Tkl and JRuby are supported but there needs to be more all-around support for scripting languages in Eclipse.  The Javascript support seems limited to the browser compatible subset of the language.  Since a lot of people will be trying to get their hands around scripting languages now, having code lookup capabilities will be essential to helping people learn the languages.
Whether these items are necessary in the scripting host, or whether the scripting languages own implementation should be used is debatable.
Perspective by Geoffrey Wiseman Posted
  1. Back to top

    Perspective

    by Geoffrey Wiseman

    It's an interesting perspective - personally, I'd rather see them focus on getting a good selection of languages available, well-supported, and solve some of the barriers to entry than work on universal functionality (other than that provided by the Java libraries).

Educational Content

New-age Transactional Systems - Not Your Grandpa's OLTP

John Hugg discusses high volume transaction processing applications with high and low frequency profiles, and how VoltDB can be used for that purpose.

Cool Code

Kevlin Henney examines code samples to see what can be learned from them starting from the premise that one won’t write great code unless he knows how to read it.

Collaboration: At the Extremities of Extreme

Jason Ayers share the observations he made watching a team of developers collaborating in real time on the same code base, pushing XP, pair programming and continuous integration to their extremes.

Yesod Web Framework

Michael Snoyman presents Yesod, a web framework written in Haskell and containing a web server, templating, ORM, libraries (templating, gravatar, etc.).

Transactions without Transactions

Richard Kreuter and Kyle Banker on how to avoid classical RDBMS transactional systems by using compensation mechanisms, transactional messaging or transactional procedures.

Attila Szegedi on JVM and GC Performance Tuning at Twitter

Attila Szegedi talks about performance tuning Java and Scala programs at Twitter: how to approach GC problems, the importance of asynchronous I/O, when to use MySQL/Cassandra/Redis, and much more.

10 tips on how to prevent business value risk

One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.

Interview: Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives

InfoQ spoke to the authors of Software Systems Architecture on a couple of new topics, the System Context viewpoint and Agile, which have been added to the second edition.