Development via text editor

  • 29 September 2023
  • 2 replies

Badge +3

Hi, I am a backend developer (Java/Moqui) and i was tasked to develop the bots at my company.

As a developer i find it nonsensical to use the online tool to do any development for the bots.

You lose too much. Git diff is one of the things i miss.

Also, a lot of inconveniences pop up, Any undo (ctrl+z) is done silently. I can’t see where it is happening in the code or if it even happened. Same goes for accidental drag-and-drops.

Most of all, I hate that all variables are global, lack of methods (yes, i know that bots are supposed to be the methods). The cherry on top is that i can’t write complex expressions in a single line. no lambdas…. Drag and drop assignments. The fact that my work is lost if i let the session timeout for any reason.

In all it is a bad experience for me.

My question is: Is there a way to write bots directly in an IDE?

A VSCode plugin for example….

And why is it not exposed in the first place. The result of the bot clearly has to be compiled/interpreted into intermediary language to be executed on the machine by the client.

2 replies

Userlevel 3
Badge +12

Why is it not exposed? Because it is a low-code platform and masks much of the underlying code. This is not unique to any low-code/no-code platform. You’re either going to have to operate within the constraints of the system or find another development platform.  

Badge +3

It is not possible for me to move to another platform because of legacy bots and an investment in a costly license.

Also, from a technical side, you can have a DSL (domain specific language) to expose the product in a text format of your choice. The executable on the local machine and the web interface (server) are already talking through APIs, through the chrome extension, or, more logically, both. There is absolutely no limitation to provide a more direct text approach. In addition, all “actions”, and “Variable types” in the bots can be easily expressed in Java code (which the logs show as the used language) using the built in classes and a simple “builder pattern”.

All that is besides the point. I asked for whether it is possible and how, and not for your “gate-keeping” opinion of whether i should be doing so.