(It's probably obvious, but if you want an accurate value on or around the actual birthday, then it's a lot more complex than dividing by 365.25. You have to go down to splitting and comparing months and days, especially in a leap year.)
Hello. I'm afraid objectscript does not have the exact equivalent of the Java/C# LOCK command.
As far as re-entrant in the same process goes: there is no need, as objectscript has no ability to parallel process in one process. It's a "simple", interpreted language with effectively one thread (though the interpreter itself is another matter).
What is worse (maybe) is the way programmers prevent problems with concurrency is "by convention only". Our lock command puts entries in a shared "lock table", and that is then available for other processors to read to see if something else is using it. But it can be ignored, unlike in Java. See https://docs.intersystems.com/iris20251/csp/docbook/DocBook.UI.Page.cls?KEY=GCOS_lockbasics#GCOS_lockbasics_uses_activity_blocking
(By the way, I personally think there's no need to use "device opening" these days as modern systems usually make a good job of cleaning up the lock table when something goes wrong.)
Hi,
You don't really need to deal with the files holding the workspace settings (I've never looked at them). The most useful commands are under the "File" menu, e.g. "Save Workspace As..." and "Open Workspace from File...". You are already using a default workspace, so just set it up as you want, and then save it "As...".
After that it also appears in the list of "recent folders and workspaces" when you right click the VS Code icon on the task bar. I have two: one for a local namespace, and one for remote. I can open both as separate windows. They each open exactly as I left them - folders, files, projects, etc. (opening without selection assumes you want the last one closed).