Search

Twitter

Domino Upgrade

VersionSupport end
5.0
6.0
6.5
7.0
8.0
8.5
Upgrade to 9.x now!
(see the full Lotus lifcyle) To make your upgrade a success use the Upgrade Cheat Sheet.
Contemplating to replace Notes? You have to read this! (also available on Slideshare)

Languages

Other languages on request.

Visitors

Useful Tools

Get Firefox
Use OpenDNS
The support for Windows XP has come to an end . Time to consider an alternative to move on.

About Me

I am the "IBM Collaboration & Productivity Advisor" for IBM Asia Pacific. I'm based in Singapore.
Reach out to me via:
Follow notessensei on Twitter
(posts)
Skype
Sametime
IBM
Facebook
LinkedIn
XING
Amazon Store
Amazon Kindle

« Little Linux GTD Gem | Main| XSLT expression when the default namespace is missing »

Server Side JavaScript - an overview

"JavaScript? Isn't that the browser thing to add useless animations to your website?" Despite all web2.0 hype this is a question corporate developers or managers still ask from time to time. When telling them about Server Side JavaScript (SSJS for short) they reply in disbelieve: "That must be some IBM thing". To some extend it is true. IBM ships three different SSJS implementations in their products:
  1. IBM's own j9 JRE/JDK 6.0 includes, following the Java JSR 223 an implementation of Mozilla's Rhino SSJS engine (try for yourself. Open a command prompt and type jrunscript. You will be greeted with an JavaScript command prompt - works also with the JVM that ships with the Notes client)
  2. The second implementation can be found in Project Zero and its commercial implementation WebSphere sMash
  3. Last not least there are XPages with its JVM based SSJS implementation.
However IBM is not alone, besides JSR 223 and Rhino there is more SSJS to be found:
  • NodeJS is based on Google's V8 JavaScript engine that also powers the Chrome browser.
  • A number of extension build on top of NodeJS:
    • node.io - distributed data scraping and processing engine
    • expressjs - High performance, high class web development
    • many more
  • Flusspferd is written in C++, uses Mozilla's SpiderMonkey JS engine and provides C++ language bindings. Will extend to newer engines when available.
  • CommonJS defines a common set of APIs for SSJS. From the description:
    "The CommonJS API will fill that gap by defining APIs that handle many common application needs, ultimately providing a standard library as rich as those of Python, Ruby and Java. The intention is that an application developer will be able to write an application using the CommonJS APIs and then run that application across different JavaScript interpreters and host environments. ".
    There is a long list of implementations including NodeJS and Apache CouchDB.
    I do not know to what extend IBM does or will support CommonJS, nevertheless it is a development to keep an eye on
  • The Jaxer application server is offered by the same team who brought us the outstanding Aptana JS IDE for Eclipse
  • Erbix Application Server, featuring an online IDE
  • ejscript from embedThis Inc
  • Mynajs application server based on Rhino
  • For brave souls: mod_js a Apache HTTP plug-in
There's a good 2011 SSJS outlook on labnotes.org. Of course Google knows even more.
So it is really time to give the curly brackets a try.
Want to know more? Visit my Lotusphere 2011 AD103 session.

Comments

Gravatar Image1 - Hi Richard,

Do you know whether node.js is available on power liinux systems? Do you know of anyone who has deployed the same?

Thanks
sandya

Gravatar Image2 - "I do not know to what extend IBM does or will support CommonJS"

If not or if they don't give a roadmap to Ecmasrcipt 5 (Dec 2009) and express intent to adopt Ecmascript Harmony down the road, we'll be left with an old dormant, rotting, scripting language while the rest of the world moves on.

IBM, please don't Lotusscript the Javascript.

node.js rox

Gravatar Image3 - Innovations in SSJS is moving so quickly that I think this is the future server language. Innovations like node.js is changing the whole dynamics of the industry.

Disclaimer

This site is in no way affiliated, endorsed, sanctioned, supported, nor enlightened by Lotus Software nor IBM Corporation. I may be an employee, but the opinions, theories, facts, etc. presented here are my own and are in now way given in any official capacity. In short, these are my words and this is my site, not IBM's - and don't even begin to think otherwise. (Disclaimer shamelessly plugged from Rocky Oliver)
© 2003 - 2014 Stephan H. Wissel - some rights reserved as listed here: Creative Commons License
Unless otherwise labeled by its originating author, the content found on this site is made available under the terms of an Attribution/NonCommercial/ShareAlike Creative Commons License, with the exception that no rights are granted -- since they are not mine to grant -- in any logo, graphic design, trademarks or trade names of any type. Code samples and code downloads on this site are, unless otherwise labeled, made available under an Apache 2.0 license. Other license models are available on written request and written confirmation.