I did initial testing with mg_web over the weekend, it's impressive how easy you can use this module to create web pages with a Caché/IRIS instance as back-end. With the latest version, you can not only write your webpages in ObjectScript, but now also completely in JavaScript (using your data in IRIS)!

The nice thing is that this module also supports all three major webservers (Apache, Nginx and IIS).

Benchmark results look very impressive: e.g. with an IRIS db as back-end you see orders of magnitude faster performance compared to some well-known databases.

Thanks for this great article @Robert Cemper ! This brings back memories ... I did some benchmark testing as a student on a DEC MicroVAX I in 1987 in VMS (using a VT100 terminal). I didn't work with M at that time yet but our retail business run by older family members started using it in +/-1986 on a PC AT (Micronetics MSM running on top of DOS) with an ISA bus terminal multiplexer card - RS232/422 cables were installed for multiple Falco VT420 terminals. Soon after, our other retail business started using Digital Unix workstations with these VT terminals too. I started programming in M in 1997 using DTM, soon followed by Open M when we grounded our current retail business and now - 26 years later - I'm writing modern apps and api's in JavaScript/ObjectScript using a Caché/IRIS + Node.js back-end running on the same globals structure! I don't think many technologies can stay relevant/on top for that long ... 😉

Rob, this is a great addition to the JavaScript (Node.js) tech stack for IRIS because glsdb allows you to work with classes and globals as if they were simple JS arrays or objects. A JS developer has now persisted arrays/objects at his disposal in a very simple & familiar way.

This is a big step forward for creating Node.js back-end applications with IRIS as the underlying database when you combine this with any standard JS front-end framework + tools.

Front-end technology changes much faster than back-end technology. As Dmitry also suggests, for best results I can recommend you for writing web based apps to use modern front-end frameworks like Vue.js/NuxtJS, React, Angular, Svelte. These frameworks allow you to write well-structured and maintainable code, separating front-end nicely from your back-end. See also this NuxtJS tutorial article. Btw, if you're most used to HTML/CSS/JS in your pages, Vue.js will feel the most familiar to work with and it allows you too to update your existing pages gradually by including the Vue.js script in your <head> tag and start using it for parts of your existing HTML code.

To interact with you back-end IRIS/Caché server, you have two major options: using the REST application server built into IRIS/Caché (if you want to write your back-end completely in ObjectScript) or use a Node.js applications server built on the very popular Express npm module: QEWD-Up. This Node.js back-end server is both a REST & WebSockets application server. It allows you to write JavaScript both in your front-end and back-end code.

In addition, the Node.js option has the advantage you can use all existing npm modules too: for nearly every feature you can imagine, you'll find an existing npm module - you don't need to re-invent the wheel! E.g. you need Google maps in your app? There's a module for that!

WebSockets in contrast to REST give you a very efficient open connection to your IRIS/Caché back-end without the overhead of a REST call. And the most important part: QEWD-Up takes care of all setup and boilerplate code so you can focus on your application code.