This is the CLASSIC way of prototyping and fast data /  bug fixing for over 40 years !!
And I know my customers well. It's their style.
Especially if you don't have fast connections to your server.
As Caché / IRIS still don't support SSH and just TELNET
WebTerminal over HTTPS could have been a secure access with similar functionality.

BTW.  did you mean having an IDE and WebTermial  open in parallel ?

@Nikita Savchenko 

17:45 Intermediate data   each run stand alone
Total lines in MgmtPortal / Explorer = 388947    $ZH shows seconds 

Command:    s h=$zh zw ^SYS s h=$zh-h w !! zw h
Terminal:      h=187.786676
PuTTY:       h=11.962381
WebTerminal:    *** to be supplied once finished ***       
18:10 *** 1st run ended with no result no new sessions, browser restart required. ***
                   

19:59  *** not completed *** ~60% done terminates with "See you!" 

Additional: test for HTTP influence.

A small CSP page (next reply) does it with

h=9.835974
even faster than PuTTY  

                   

¡ Hola Salva ! ( @Jose Tomas Salvador 

You motivated me to give it a try.
And  with a little bit of tweaking the scripts my contribution for the contest 
WebSocket Client JS with IRIS Native API as Docker Micro Server  
is also running with no issues on Docker Desktop for Windows !
A very positive experience that I didn't expect at first sight.
¡ Gracias !

Typically all strings are UTF encoded.
The average text often consist of  single-byte characters  (a subset of UTF-8)   
As soon as a multibyte character joins the string the whole string just uses WIDE characters

example:

USER>set txt="cher ami j'ai besoin de 100 eur"
USER>zw txt
txt="cher ami j'ai besoin de 100 eur"
 
USER>zzdump txt
0000: 63 68 65 72 20 61 6D 69 20 6A 27 61 69 20 62 65         cher ami j'ai be
0010: 73 6F 69 6E 20 64 65 20 31 30 30 20 65 75 72            soin de 100 eur

USER>set txt="cher ami j'ai besoin de 100 €"
USER>zw txt
txt="cher ami j'ai besoin de 100 €"
 
USER>zzdump txt
0000: 0063 0068 0065 0072 0020 0061 006D 0069                 cher ami
0008: 0020 006A 0027 0061 0069 0020 0062 0065                  j'ai be
0010: 0073 006F 0069 006E 0020 0064 0065 0020                 soin de
0018: 0031 0030 0030 0020 20AC                                100 €

 

The conversion happens totally internal.
depending on your needs you can select the national language table.
different languages sort differently.   e.g German äöü vs. aou