It is interesting that you are asking this as we have tried, for well over a year, via various mediums, at various levels within Intersystems, to get an answer as to the future of IDE's given that previous announcements and responses from WRC state that both Atelier and Studio are end-of-life.

We have never received a response even after Evgeny pinged such a request to John fried and others after some posts.

Your statements seem to indicate that Studio is not end-of-life so it would be nice to have some clarification as even WRC are saying non-critical fixes or changes will not be done.  You also indicate work being done on VSCode integration, again any details would be appreciated.

The reason for wanting to know is that is difficult to commit to a particular toolset or plan changes to DevOps etc... if the future of the tools to be used is unknown, the actual answer and whether it is an individuals or companies preference is immaterial, it is simply that an answer is required but everyone has been reluctant for a long time now to commit to anything.

Coming back to your questions, we use Studio with our own version control based on StudioHooks and some use of Serenji for debugging.

We have tried Atelier but noone liked using it and we have worked in VSCode via Dmitry's plugin and have also tried the Serenji plugin both of which were generally a good experience but migration would require changes to development processes and version control. 

We are likely to move to a GIT based Version control and whether this is intergrated with Studio or VSCode will likely depend on Intersystems commitment to the IDE though I suspect there would be a preference to stick with Studio as it is familiar and has integration to Cube etc... though as we continue to do more Web based development in VSCode this may change.

As you are talking about locks and transactions, and as others have noted, you can nest transactions it might be worth warning people about locks inside transactions and the fact that the unlock will not take place until the tcommit.

These can cause issues, especially where this is a method using transactions and locks which calls another that does the same.

Open devices for a process can be seen in the Processes section of the portal.  The initial process list shows the principal or current device and in the individual process page it shows all open devices, this can also be found using the %SYS.ProcessQuery OpenDevices
 method so you could write code that goes through all processes checking.

What these show may depend on how you open the device in the first place.

I am in the same position as you, only selectively using full commands or function names, being too much in the habit of MUMPs abbrevations.  Like you though I tend to extend when iterating or using something less usual in the code, I have also found curly braces to be much better for readability than the old block structure.

I also agree that I find it faster to read and write abbrevated code for things like sets and do's and especially for functions such as $p and $g.  Hopefully I can get into the habit of less abreviation as I do notice the new programmers finding this harder.

Probably the biggest habit I have broken is also shown in the bad examples given and shows how long I have been using MUMPS, yes it's entering everything in UPPERCASE.  I finally use camel case and also more meaningful/longer routine and variable names.

Just a quick note.

I found that when creating a new database it was best to initially use SYS.Database so you can specifiy max size etc..

db=##class(SYS.Database).%New()
db.Directory=directory
db.Size=initialSize
db.MaxSize=maxSize
db.GlobalJournalState=3
Status=db.%Save()

Then finalise with Config.Database

Properties("Directory")=directory
Status=##Class(Config.Databases).Create(name,.Properties)
Obj=##Class(Config.Databases).Open(name)
Obj.MountRequired=1
Status=Obj.%Save()

This might not be the best way to do it, I'm open to improvements.

Hello Dmitry,

I have used the extension and am very impressed but obviously any change in toolset has to be agreed accross the business and will require changes to the development and version control process, hence a reluctance until we know what Intersystems have planned.

Apologies if I have missed a feature post but does the extension replicate the Studio Add-Ins such as the SOAP Wizard as these are very useful to us.

Regards

David

Hello Evgeny,

Thanks for the response, of course I am aware of the various plugins hence my question of relying on 3rd party tools.

That old post does not really answer the question on what Intersystems future plans for development tools are, it just confirms effective end of life for the current ones.   Also, only fixing critical issues means reported problems will generally not be fixed anymore as they are pretty stable, something I have already experienced.

I don't have a particular problem with moving to VSCode supported by 3rd parties but some confirmation of this from Intersystems so developers can plan to move in that direction would be appreciated but noone seeems to want to commit to any answers.  It also starts the question of how will Intersystems provide the ability for these 3rd party tools to replicate and extend the functionality available already, again there are no answers.

Regards

David