Link Details

Link 945291 thumbnail
User 281543 avatar

By ciurana
via eugeneciurana.com
Published: Mar 26 2013 / 12:15

Only four scripting languages are available out-of-the-box in Mule and Spring. It's a good design and support decision: all four have large user bases, good documentation, and popularity across many problem domains. There may be cases, however, where a non-supported language is desired because: * The implementers want to leverage an existing code base; or * Problem domain expertise is available in a different language (e.g. Scheme) that the app server developers lack; or * There is a definite time-to-market advantage when using a language that isn't available in Mule/Spring This need to deploy a new, different scripting language in the app server requires understanding all the nuances of JSR-223 and 3rd-party language integration. Just dropping the new language run-time in the class path isn't enough. This guide shows what to do and what to avoid using SISC Scheme as an extreme integration example. Though the article examples are from Mule and MuleStudio, the content applies to Spring 3 (the foundation under Mule) and any other non-trivial Java app container.
  • 8
  • 0
  • 806
  • 816

Comments

Add your comment
User 830327 avatar

sbalmos replied ago:

0 votes Vote down Vote up Reply

Definitely looks like Scheme was a painful clusterf* to get integrated into the JVM. Not so much the fact it's a 3rd-party language, but the JVM-to-functional type mapping. A new variant on Ted's infamous comments on ORM impedance mismatch being the Vietnam of CS.

User 281543 avatar

ciurana replied ago:

0 votes Vote down Vote up Reply

The JSR-223 sample code itself was a problem. It barely works, so it needs a lot of debugging before it can be trusted. For example, it couldn't find the class path, thus it couldn't find the standard libraries or the Scheme heap file, so I had to fix that. Other bugs and minor annoyances. The code from dev.java.net for JSR-223 sucks, both stylistically, in terms of maintenance, and in several cases in how it does its work. That's why this became a HOWNOT -- there's just too much grief in implementing a non-mainstream language for actual work. That's why the article explains the conditions when this is desired and why.

Add your comment


Html tags not supported. Reply is editable for 5 minutes. Use [code lang="java|ruby|sql|css|xml"][/code] to post code snippets.

Voters For This Link (7)



Voters Against This Link (0)



    Spring Integration
    Written by: Soby Chacko
    Featured Refcardz: Top Refcardz:
    1. Search Patterns
    2. Python
    3. C++
    4. Design Patterns
    5. OO JS
    1. PhoneGap
    2. Spring Integration
    3. Regex
    4. Git
    5. Java