Aurelain/Exo

This still being developed?

lukecfairchild opened this issue · 10 comments

Is this project still being developed?

Not exactly developed, but very much used.
It has successfully replaced all my AHKScripts.

About its development: there are a few items on the todo list, but in the past year none of them has presented urgency. Only one thing not commited: FileAppend() needs the encoding explicitly mentioned if you want UTF-8.

joedf commented

I personally think that Exo is already quite "mature". Like Aurelain mentioned, it's mainly just a few things here and there.

Although it is true that the project is very mature, stuff like:
ComObjCreate, VarSetCapacity, NumPut etc. would be really handy. I wonder, what was the issue with their implementation when Exo was being made?

Was JavaScript's Proxy available for use back then? If not, then this is likely the way to go when it comes to implementing COM Objects at least...

joedf commented

COM would definitely open up a lot of possiblities... I am not sure what the limitation is...

I don't quite remember the limitations to COM. I suspect it was just the lack of time that forced me to mark it as Cannot use yet.

Exo is indeed not actively developed anymore, but I still use it, in a manner of speaking:
I „polyfilled” some frequent AHK functions as global NodeJS functions.
So, I still write AHK in JS, just that it's interpreted by NodeJS instead of IE.

@Aurelain By that do you mean you recreated AHK functions/commands with NodeJS? OR are you communicating directly with AHK from NodeJS?

I've been trying to do the latter for some time. Or at least trying to implement COM, .NET and DLL programming into NodeJS, by wrapping AHK libraries.

My NodeJS approach was to recreate AHK functions with NodeJS. Reasons:
● familiarity with AHK names
● compatibility with older Exo scripts
● the sorry state of default file libraries in NodeJS

Your approach is interesting, but I think I would go the Electron route for more power. Not the same thing, I know, but depends on the use-case.

That's exactly the reason why I built DynaCLR, and why I was planning on bringing COM and DLLs into the mix also. I've been building an application for some time using electron but there is only so much integration you can do in the windows environment without COM and Win32 api.

With NodeJS we can easily interact with the file system, but imo a good application interacts with the platform's environment as well. E.G. One thing I wanted for LaunchMenu, was to check the active window before LaunchMenu's window is shown. On Mac you can use applescript/JXA with NodeJS out of the box. There are similar libraries for Unix directly accessible from the command line. However everything on Windows is locked behind Win32, COM and .NET... I did initially look into EdgeJS however everything I've tried so far with node-gyp has also resulted in massive compatibility issues...

Anyway it would be cool to see your NodeJS library sometime :)

I too wish there was a nodejs implementation of AHK. All the closest choices I have seen are extremely limited sadly.

joedf commented

Yes a NodeJS-AHK would be 🎉 🍰 !!!