In my project iris-vector, there are a few things, which make it impossible to make it ObjectScriptLess, at least for now. 

  • I've already mentioned the issues of running Python based SQL functions, in my article, so, I had to add ObjectScript realization too.
  • And any new DataType in IRIS, which implements custom serialization based on methods like DisplayToStorage, at the moment accepts only ObjectScript, due to tied implementation to SQL Compilation engine.

A bunch of services with their InboundAdapters, such as FTP, Email, SQL, Kafka, and so on, connects to external server using this InboundAdapter directly, collect data and use it in Service. 

And only for TCP, HTTP, SOAP, REST by some reason decided that InboundAdapter now should start our own server, so, external services should connect to us. It's useful for sure, but the why we can't use it the other way too, is it somehow completely different? The logic in the workflow is still the same, it's Input data, which have to start the workflow. 

And the same class through VSCode, outputs always the same

Compilation started on 09/11/2023 19:15:59 with qualifiers 'c-uk'
Compilation finished successfully in 0.059s.

Compilation started on 09/11/2023 19:16:00 with qualifiers 'c-uk'
Compilation finished successfully in 0.056s.

Compilation started on 09/11/2023 19:16:22 with qualifiers 'c-uk'
Compilation finished successfully in 0.056s.

Compilation started on 09/11/2023 19:16:27 with qualifiers 'c-uk'
Compilation finished successfully in 0.050s.

Compilation started on 09/11/2023 19:16:30 with qualifiers 'c-uk'
Compilation finished successfully in 0.052s.

Compilation started on 09/11/2023 19:16:33 with qualifiers 'c-uk'
Compilation finished successfully in 0.056s.

Compilation started on 09/11/2023 19:16:35 with qualifiers 'c-uk'
Compilation finished successfully in 0.053s.

In terminal, I managed to get expected log, on each third compile, but it's still insane

Compilation started on 09/11/2023 19:13:27 with qualifiers 'ck-u'
Compiling class User.demo
Compiling table SQLUser.demo
Compiling routine User.demo.1
Compilation finished successfully in 0.081s.

USER>do $system.OBJ.Compile("User.demo","ck-u")

Compilation started on 09/11/2023 19:13:28 with qualifiers 'ck-u'
Compilation finished successfully in 0.071s.

USER>do $system.OBJ.Compile("User.demo","ck-u")

Compilation started on 09/11/2023 19:13:29 with qualifiers 'ck-u'
Compilation finished successfully in 0.064s.

USER>do $system.OBJ.Compile("User.demo","ck-u")

Compilation started on 09/11/2023 19:13:30 with qualifiers 'ck-u'
Compiling class User.demo
Compiling table SQLUser.demo
Compiling routine User.demo.1
Compilation finished successfully in 0.087s.

Unfortunately, this is not the case, all transactions have to be closed anyway. 

In example below, I changed only one value and then used rollback, so, it changed it back and committed 

Missing TCOMMIT, would only mean, that transaction is still open, and it's a bad sign, which will be logged in messages.log, for a long opened transactions.