This post is originally posted on [GitHub](https://github.com/intersystems-ru/webterminal/issues/103).
This discussion is open to anyone who use or know about WebTerminal project. It is a result of a long story of the project development, testing and maintaining.
While WebTerminal greatly improves user experience by enhancing standard terminal with additional features, there are numerous issues (#77, #92, #81, #87 and others) showing that it performs not as expected in some cases, and does not support some very basic things (like `$ZA`/`$ZB` variables). The reason is in fact that WebTerminal project tries to **reimplement** Caché TERM behavior over Caché ObjectScript capabilities. And it turns out that it is not always possible (see, for example, #77 or #92). The "built-in" Caché TERM features like programmer mode or debugging are very hard or even impossible to re-implement either.
The one possible solution I am thinking of more and more, is to build WebTerminal **over** Caché TERM, keeping all WebTerminal's goodies (and, of course, the web part) in place. As one capable approach I see telnet (special thanks to [Stephen](https://github.com/swils024), who opened #100). I already made some tests and I can confirm that it is possible to transfer WebTerminal engine onto telnet without any changes from the user side.
**From the user point of view**, nothing will change, except of WebTerminal will start to support all terminal's basic stuff like programmer mode, debugging and correctly process F1-F12 keys as well as others.
**From the technical point of view**, I see the next workflow: terminal core class will open telnet session to local machine instead of handing all the commands using [xecute](https://github.com/intersystems-ru/webterminal/blob/75924caf75a0cd9f21220e4bd6988575d9d6fdf1/src/cls/WebTerminal/Core.cls#L347). In this case WebTerminal code will start work as a middleware between "base" terminal session and a web user interface. All the current WebTerminal features are capable to work with this scenario.
I see the next major **pros** in WebTerminal "over" telnet:
* WebTerminal will support everything that terminal session over telnet do:
* programmer mode;
* debugging;
* any programs written for Caché TERM and for the very old systems;
* etc.
* WebTerminal will support connecting to Caché instances **older than 2014.*** via telnet from the web interface.
* I think it will come as a new WebTerminal's feature, special command `/telnet host@user:pass`, for example.
But there is a one valuable **cons** I believe,
* Telnet service must be turned on.
I am always open to any suggestions and discussions. You can improve the project by sharing your thoughts here! Maybe there is a better "interface" to a Caché TERM rather than telnet, maybe you believe that re-implementing Caché TERM on Caché ObjectScript is not such a hard idea... Please, let us know!
Thank you.