- DelphiTools - https://www.delphitools.info -

From OP4JS to Smart Mobile Studio

With the SmartMS release [1] a deal has also been concluded between Creative IT [2] and Optimale Systemer AS [3], to safeguard their investments and ensure future evolutions, the JavaScript CodeGen portion of DWScript will no longer be developed as open-source, but will be exclusive to Optimale Systemer AS. Sales permitting, this should allow to dedicate more time to improving JavaScript code generation, optimizations and debugging support 🙂

Note that the core of DWScript [4] (compiler and interpreter), as an evolution of the old DWSII project will not only stay open-source (as MPL), but will still be actively developed, as it will constitute the front-end of the compiler, and thus should benefit from the above deal with upcoming language enhancements and ever improving unit tests.

Flashback

Almost exactly one year ago [5], as I was throwing around some benchmark and musing on the performance [6] of modern JS engines, Jon Lennart Aasenden was investigating an “Object Pascal For JavaScript”, and asked if DWScript [4] could be used for that purpose. At the time, I had only dabbled with compiling to asm [7] from DWScript and was contemplating possible Code Generation options using LLVM.

Then a chord was struck, angel chanted (well maybe not that last bit), and the CodeGen was re-tasked to spit out JavaScript instead. Optimale Systemer [3] allocated time for Lennart to work on RTL, IDE, testing and investigating what  is now SmartMobileStudio [8]. A tool that takes Object Pascal and can compile to native JavaScript applications, that can run server-less.

There are already dozens of working samples for SmartMS. Beyond the samples that come with SmartMS, see Primoz’s demos [9], or (shameless plugs), my two experimental games that were done with it: Nickel-Iron [10], a shooter for iOS, Android and modern browsers, WarTrail [11], a tower defense game, for iPad and all major browsers. And more things are coming: database connectivity, Node.js [12] support, WebGL [13]