I’m planning a mini resurrection of former DelphiWebScript (by Matthias Ackermann) which has been dormant for a few years already.
DWS is a 100% Delphi-based Delphi-language script engines, that supports a fairly large subset of the Delphi language (including objects), with a performance high enough for use in real-time scenarios (simulators, game engine scripting…).
We’ve been making use of the library at work for years now, with it receiving updates covering a variety of things from Delphi compatibility, to language enhancements to speed or memory usage optimizations. On the other hand, the parts we didn’t use fell significantly behind (to the point of deprecation), and wouldn’t be part of the revival (unless some extra hands join in for the update).
However, most emails and websites from back then have gone the way of the Dodo, so this post is mostly a call to former DWS2 maintainers, contributors and users to make themselves known if they are interested… if they are still using DWS2 in some form or another, or if they are merely just still around to share memories of a bygone era 😉
I’m using DWS2 in some of my apps. It’s great.
But I found out some memory leaks in my apps, related to DWS (perhaps because I didn’t use it right – the problem may be in my code, not in DWS).
But we use RemObjects Pascal Script now. We found it more reliable for newer apps. DWS execution is stack-based, whereas Pascal Script use faster rolled execution. And Pascal Script better handles memory and native types (like integer), it’s also much more updated.
But DWS revival could be great, especially in a “Delphi on Rails” framework or such…
The question of “Why DWS when we now have PascalScript?” occured to me also.
Having said that, we use PascalScript and there are some serious limitations in that which we keep running into ourselves, so any alternatives would definitely be of interest.
Having worked on stack based script implementations in the past I may even be able to contribute something to DWS (the PascalScript implementation is bewildering to me – I am a bear of very little brain).
The reasons for sticking with DWS for me revolved mostly around maintenance: DWS code was simple enough to figure out and keep in a working condition without any external help, something which is important when integrating 3rd party products (paid or not).
Performance-wise, I haven’t tested recently, but a few years back our branch of DWS was running circles around Pascal Script on the cases that mattered to us, so that pretty much sealed the deal. I’ll have another look to see how things evolved since then. What was holding vanilla DWS back wasn’t it being stack-based, as much as the widespread reliance on variants as return values, along with the use of exceptions for break/continue.
I used dws in an old project. Would be great to get it running in current IDEs with a new DWS
Hey, nice to know that DWS is still useful to some of you! I have not the slighest objections to the revival of DWS, of course. But other than my benevolence 😉 I will not be able to contribute anything to this project. I haven’t had a look at Delphi code for several years and wouldn’t be able to make heads or tails of my code. I have left Delphi at version 7 and are now using C#/.NET.