I'm always looking for alternatives to AutoHotkey and small C WINAPI programs I've written. Rust doesn't quite cut it, even with Microsoft's windows-rs library using the WinAPI functions is worse than it was with plain C. This is because you have to hunt the right libraries and features to import, it's surprisingly time-consuming.
Excited to look how LuaRT exposes WinAPI, my ideal would be one global namespace where you can easily auto-import all the normal functions. Microsoft has made it somewhat easy for library authors to generate the externs with their relatively new Win32metadata package: https://github.com/microsoft/win32metadata
It's not just the syntax. Powershell is just ridiculously slow for doing things like iterating through text files.
Don't get me wrong... powershell is really nice for some kinds of IT work, but I've had lots of trouble with it. I love the succinct nature, but it takes a lot of effort to get a line of code to do what you need it to do...even after you've spent a LOT of time with the language.
A COM client will let you control Office desktop applications, and use those to open and edit Office files. You need them installed first.
(Contrast with Doug Finke’s Import-Excel module for PowerShell which can work with Excel files without Excel installed, and Przemysław Kłys‘s PSWriteWord module that can write Word files without Word. They can’t do as much as full Excel and Word can).
Thanks this is very clear. I use COM objects through PowerShell too, not the Import-Excel module, because I cannot install anything (except Office) on my client's work machine. But I can copy binaries so working with Lua might relieve my headaches from working with PowerShell :)
From the PowerShell Github releases page[1] you can expand 'assets' and 'show more assets' and find a ZIP distribution which doesn't need installing, unzip it. e.g. PowerShell-7.4.2-win-x64.zip . Then from PowerShell 7 somewhere, run
Save-Module ImportExcel -Path C:\Whatever\
and copy that module folder along with the PowerShell folder to the remote machine, and you can import modules from a full path:
Import-Module C:\Whatever\ImportExcel
and do a no-install copy-paste deployment of powershell 7 and modules. (I'm not saying you should do this instead of using Lua, just that you can).
TekUI integration with a builder might be an interesting feature. It's a bit dated but the latest release compiles just fine and examples work. Years ago I tried it also on a small Allwinner ARM board with output to the framebuffer (no Xorg) and it worked fine.
I wonder why it is still semi-unknown.
It's an IDE, but it allows building full GUI apps. It's itself written in Lua using wxlua/wxwidgets toolkit, so has access to the majority of the modules availables in wxwidgets. The binaries are also bundled with the IDE for all supported platforms, so you can develop and package your own application in the same way.
One major missing element on the GUI page is some kind of table widget that can display tabular data. A lot of GUI needs involve needing to display data, but many widget toolkits just have things like buttons, radio buttons, message boxes, and tree/hierarchy things.
Lua is a great little language and I see this has an object system with mixins. Will give it a try to see how it compares to my current tool for writing Windows desktop apps - Dolphin Smalltalk
Excited to look how LuaRT exposes WinAPI, my ideal would be one global namespace where you can easily auto-import all the normal functions. Microsoft has made it somewhat easy for library authors to generate the externs with their relatively new Win32metadata package: https://github.com/microsoft/win32metadata