My Love / Hate relationship with Deluge

My Love / Hate relationship with Deluge

Ok... so I should first say that I very much have an appreciation for all of the awesome things that I can do with Deluge.  It really can be quite powerful in a variety of ways, and allows for all kinds of customization that otherwise would not be possible.

Admittedly however, I've had days (and sometimes late nights that turn into early mornings) that I end up feeling like my head is going to explode when coding in Deluge.  Now let me emphasize something here... Deluge is a terrific language... but... it suffers enormously by the glaring lack of basic functionality within the web-based IDE.

So some of my gripes include:

1.  There are several variations of Deluge running across the various Zoho applications, and with various degrees of functionality.  Some are better than others - the best of these being being almost tolerable, the worst being barely usable.

2.  Depending on context and the relevant module, I can usually enter in an item ID, or a PO ID, or whatever other ID to run a test execution of my code with.  This is great, except that I have to enter the ID in every single time I want to run my code (CRM being one notable exception).  It's not a big deal, until you're testing and making changes in your code and end up having to deal with it 100 or 500 times... so much as to the extent that I've found myself writing key macros just to automate entry of the IDs while I run test executions.

3.  Depending on the module, error reporting is frequently misleading, often without providing line numbers (or frequently the incorrect line number), or using language that's either too obscure or written such that it really is a chore to decipher what it's even saying.  AppleSoft Basic provided better errors in 1976.  Granted, there are appreciable differences, but I stand by the fact that in 2020, even the most rudimentary basic ways of developing code should always give you a line number.  Always.  Always.

4.  In addition to specifying the line number, why not just highlight the point in the code in red so that you can just go right to the problem area and get down to business.

(Feel free to pass points 3 & 4 to the Sites and Commerce Face teams as well.)

5.  How about incorporating break points to halt the code where you can evaluate variables?

And so after contemplating the various issues, thought I'd put forth one possible approach that I would see as a way that could potentially catapult Deluge into the next level and beyond, while also reducing the anxiety experienced by seasoned programmers who relentlessly find themselves pulling their hair out, wondering why this otherwise useful language is so unbearably painful to develop with. (Granted, I can't speak for others, but I know there are others who have voiced similar sentiments.)

So if I were to imagine a path for redemption for Deluge, it might be by way of using Visual Studio Code as a catalyst.  Visual Studio Code has quickly and increasingly become one of the most commonly used code editors in recent years - largely because it's a Microsoft product vetted through years of development since Visual C++ was initially launched around 30 years ago.

It's become so ubiquitous that there even already exists a very basic code formatter for Zoho's Deluge as one of the available extensions - and could provide a starting place for more substantive integration to begin to take things a step further.

What could really take Deluge to the next level in this regard would potentially incorporate the use of a "live" connector that could operate between a user's Visual Studio Code installation and the Deluge Runtime Engine.  In essence, it could serve to automatically upload the most recent versions of an edited Deluge script from VS Code into whichever relevant Zoho module is in context, as well as invoke test executions of your code directly from the VS Code IDE.  Furthermore, the DRE would subsequently be able to report back error codes (with line numbers and relevant code to be highlighted) in realtime across the link. 

Taking it even a step further, such a link could also serve as means of proving a data connector to providing context while working on your Deluge code.  In other languages (and their related development environments), an ODBC connector can often be instantiated... not only during runtime, but also "live linked" during development so that you can develop your code while contextually aware of the data and relevant data types you're coding against.  

And because the aforementioned functionality has already been previously incorporated into VS Code for other languages, the UI in VS Code is already primed to be able to handle these tasks without reinventing the wheel.  Things like breakpoints, watch variables, data connectors are already either in place, or can likely be adapted.  This of course would dramatically shorten the time and effort needed to make something of this sort feasible. 

In effect, hardware debuggers for embedded solutions (like a microcontroller in a microwave oven or a cable TV set-top box) work the same way.  The execution of code, breakpoints, uploading of code, etc, are all traversing a simple link.  Typically, such hardware debugging in this regard can even be run remotely - even across the Internet over port forwarded IP addresses.

Ultimately my point is not to educate anyone on how debugging works, as I'm sure that Zoho's engineer's are already well versed in these concepts... but only as a means underscore that the model of debugging over IP is commonplace, and could probably easily be applied to the Deluge Runtime Engine as well.

Now I could be wrong, but if I were to guess... I'd be inclined to believe that much of the functionality that I've highlighted above is probably already in existence.  I say this not because I know of some secret codebase I've stumbled across or have some sort of secret insider knowledge that there's some stash of advanced tools lying in some hidden Zoho vault.

Rather, I say this only because so many of the aforementioned issues that I point out here would have been addressed long ago if the software engineers at Zoho were forced to use the same web-based tools as its client base.  I can't think of a single engineer that go to such lengths as to create a language like Deluge, and then not build in the most basic rudimentary means of providing error codes, debugging, and usable feedback.

Based on that assumption, it's almost a certainty IMHO that there are in-house tools in existence that provide this type of feedback, but few within Zoho's customer base have expressed enough dissatisfaction so far in order to warrant the efforts that would be required to bring such functionality to web-based Deluge IDE used by Zoho's client base. Naturally this just comes down to priorities, and would be the case in most any organization, these priorities are typically determined by the collective voice of its customer base.

Sometimes however, these needs might be a step removed from what the customer states vs what they don't know they should be asking for.  A business owner might, for example, choose one platform over another... not because of the degree of feedback provided by the web-based IDE used to implement customizations, as that's not even on their radar.

What might be on their radar however is that one platform has vastly more third partly customizations available, which might be the case if developers are much more inclined to develop for it, which can a directly impacted by the tools they have available to work from.

So all that to say... if it's the squeaky wheel that get's the most oil, "SQUEEEEEEEEEEEEEEEEK".

Thanks for consideration of the aforementioned issues.,
Bryan

    Nederlandse Hulpbronnen


      • Recent Topics

      • search and Smart Bar both missing in Mail

        One of the users on my account does not have the search bar at the top right or the Smart Bar at the bottom left of the desktop Mail app. Any ideas how to get those back?
      • Let us add Lookup fields in the Blueprint Transitions

        We are unable to add Lookup Fields in the blueprint transitions in Zoho Desk, we wanted to make it a requirement for our workflow but since it's not available in the transition we cannot. The lookup field exists in the Layout: But it cannot be added/selected
      • Zoho Projects API Scope for Issue Attachments

        I try to download issue attachments via the API, unfortunately I always get the following error code when trying to download the file from the supplied URL: {"ERROR_MESSAGE":"INVALID_OAUTHSCOPE","ERROR_CODE":401} indicating an auth scope error. I've tried
      • How to fetch custom fields for time entries in Zoho Project API v3

        In the previous Zoho Projects REST API, we were able to retrieve custom field details for time entries, including picklist options, using the endpoint: GET /restapi/portal/[PORTAL_ID]/timesheetcustomfields In the new Zoho Projects API v3, we tried using
      • Zoho Survey Enhancements

        We love Survey. We use it a ton. It needs some enhancements. Maybe some of these are already on the roadmap? API - this is crucial. We have some complex surveys that take place and need to update records, trigger other functions/automations, etc. I would
      • Images Don't Display on Blog

        Hi, I've just posted a new blog entry, but regardless of format (png or jpeg) Images that display in Preview mode do not display on any browser in the published post.  I've not done anything different with this post than others regarding images, please advice. Thanks! Edit:  I've discovered that moving the image files from a my sub directory folder "Pics for Blog" to the top level of the "Files" folder on my site allows the images to display live.  This, even though my other blog posts are correctly
      • Checkbox Field Mapping Zoho Forms to Zoho Sign

        I have an application that will be filled out via Forms that I am mapping into a PDF Filler on Zoho Sign. I need to have a series of checkboxes mapped to the corresponding fields in Sign and I only see single checkboxes available via the mapping, though
      • Books P&L by Customer

        Lately, we have found that the Customer field filter for the Profit & Loss report in Zoho Books is no longer available. We have several projects with the same customer and look at the P&Ls by project AND by Customer (overall). Can you please add back in this field selection alongside the Project field to the P&L report filter? Thanks! -Gina
      • Sent mail sort by date disappeared

        Hello, We used to be able to sort the emails by date in the sent folder, but this feature has recently disappeared. Can we bring it back?
      • I cannot check out to Zoho People.

        When I tried to check out today, there's prompt that inhibits me to check out: To add entry in Attendance, log time for any of your jobs
      • Pricing Strategies: #2 Plan your Service Offerings using Plans

        Meet Harvey & Mia, hailing from the same Tech school, carrying the dream of setting up their own IT maintenance firm in their location. They drew up a clear business plan and put their business in motion on New Year's Eve. They had great reception right
      • Open a record to edit based on another form being edited

        Hi all, I am trying to edit a record based on another record being edited. It works out like this: When I create a Monthly_Update and then submit I open the Monthly_Levels form and pass the ID from the Monthly_Update to a field called mu. I want it to
      • Problem with signature on zoho survey

        Hello, I'm trying to export individual responses with signatures on zoho survey. But the signatures on some of my surveys are not exported as the original image, but as a generic image, same for all (screen joins). Is there a solution to have the signatures
      • Change in Zoho CRM API?

        Hello, I am using the Zoho API trough the PHP SDK v2.1 Since few days, I noticed that I have to change the way I pass the data to the API when I create, update, or upsert a record. Dates Before I was passing a PHP date object to "$record->addKeyValue(...)",
      • MTA - BAD IP reputation by outlook/hotmail

        Messages to Microsoft email servers are bouncing back due to poor reputation. Message: 4.7.650 The mail server [136.143.188.206] has been temporarily rate limited due to IP reputation. For e-mail delivery information see https://postmaster.live.com (S775)
      • QuickBooks Extension for Zoho CRM - Advanced Features -2025

        Hello Everyone, We’re happy to announce the latest version of our QuickBooks Extension for Zoho CRM, now officially live on the Zoho Marketplace! This release introduces one-click data sync, a user-friendly UI, enhanced performance, and a powerful set
      • Changing Department often causes the Firefox tab to freeze

        Title, it doesn't seem to happen with neither Opera nor Chrome. And even in Firefox, sometimes it just lets me change the department I'm in no problem, even to All Departments which is probably the most, like, resource heavy? But most of the time, the
      • Need to integrate Zoho Mail Mobile app with Zoho Meeting Mobile App for Android and Apple

        Hello Zoho Team, Please bring integration of Zoho Mail Mobile app with Zoho Meeting for Android and Apple Thanks
      • ¡Muchas gracias por participar a los Meetups de Usuarios de Zoho! Y Novedades del ecosistema Zoho

        ¡Hola Comunidad de Zoho en Español! 👋 Después de un breve lapso de tiempo, volvemos con una nueva edición de nuestro Community Digest, donde te contamos las novedades de los productos de Zoho en los últimos meses. Estas mejoras se centran en nuestros
      • Anyway to move mail from one account to another yet?

        Hello, Is there any way to move email from one mailbox account to another mailbox account in zoho yet? Thanks, Ryan.
      • Using a CRM Client Script Button to create a Books Invoice

        Hello, I need help handling error messages returned to my client script from a function. The scenario I have setup a client script button which is available from each Deal. This CS executes a crm function, which in turn creates an invoice based on the
      • Building Toppings #2 - Learn how to use Bigin's Developer Console to build toppings

        Hey Biginners, In our last post, we discussed what toppings are, why they're essential to extending Bigin's capabilities, and how the Bigin Developer Center serves as the starting point for building them. As a cloud platform, the Developer Center empowers
      • Links are incorrect when sent out

        I'm adding in hyperlinks into my eDM. When I send a test email, it's all correct. However, when I send out the eDM, all the hyperlinks jump up one space so none of the links are opening to the correct page. Why is this happening and how can I fix it?
      • Tip of the week #16 - Search and filter threads based on criteria

        Zoho TeamInbox lets you search and filter threads with any information that you have about the thread. You just have to input the criteria and Zoho TeamInbox will list all the threads that match the condition.   Firstly, there is a global search you can
      • Introducing recipient authentication via Stripe Identity in Zoho Sign

        Hi everyone! It's important to authenticate your recipient's identity before they access and sign important documents to ensure the highest level of compliance. Zoho Sign already helps businesses do this with various authentication methods: SMS OTP Email
      • Keep Converted Leads

        How do I keep the converted leads in the Leads Module after conversion (converting it to account, contact, deal). I want to add it in a converted stage in the leads module in order to get a report or dashboard and see all converted leads from my pip
      • Customizing Global Search Settings for All Users

        Hi Our team use the brilliant global search functionality within CRM many many times daily. But, we struggle with the out-of-the box columns that CRM gives you. We are always telling users to customize this look to more suit our business, to show the
      • Introducing Formula Fields for performing dynamic calculations

        Greetings, With the Formula Field, you can generate numerical calculations using provided functions and available fields, enabling you to derive dynamic data. You can utilize mathematical formulas to populate results based on the provided inputs. This
      • Tip of the Week #77– Stay informed of the activities happening in your organization

        Whenever a message is handled in Zoho TeamInbox, every action is recorded in the Activity Log. This ensures you always know what’s happening across your teams and inboxes. To access it, simply click the Audits icon on the left pane’s top bar after logging
      • Zoho Logs - Not seeing logs since 30 Nov

        Hi, we have a few functions running, I am testing some new ones and noticed that although I can see executions, I cannot see any logs, even when the first line on the functions is a log. I reviewed some existing functions, one of which is invoked on a
      • Workdrive MS Office integration

        Have installed subscribed version of Zoho WorkDrive VSTO runtime not found is the error when I try to install Zoho_WorkDrive_For_Office Unable to open work files in Excel and Word Urgent, since I have migrated all my OneDrive files to work drive already
      • How to change Zoho Vault password

        I am searching where I can change the Vault Password after having changed the Zoho account password. I don't see this option anywhere in my account. It should be simple and accessible! Please help. Thanks!
      • Zoho Workdrive - Communication / Chat Bar

        Hi Team, Please consider adding an option to allow admins to turn on or off the Zoho Communication Bar. Example of what I mean by Communication Bar: It's such a pain sometimes when I'm in WorkDrive and I want to share a link to a file with a colleague
      • When Marking a Multiple Choice Answer Exclusive - Not Following My Survey Disqualification Logic

        Using a multiple choice (many answers) question and I created survey disqualification logic that was working as intended. My question: Disqualification page logic is: If (QUESTION) is "any one of the following" then (OPTIONS) - a custom message populates
      • Where to Add Machines as Products to Map with Assets in Zoho FSM?

        implementing Zoho FSM for a clinical equipment supply company. The business sells and installs clinical machines in hospitals and clinics, and they also handle service requests, scheduled maintenance, calibration visits, and general machine upkeep. In
      • Show Zoom Link in Recipient's Calendar

        We set up meetings within a record, selecting the "Make this an online meeting".  We use Zoom. Most of the recipients go to their calendar (usually Gmail or Outlook, corporate) to join the Zoom meeting, but there is no Zoom link in the calendar. Can this
      • Zoho Bigin - should be able to link a "contact" to multiple "companies"

        Hello Support, I called into telephone support and was told that a contact can only be linked to one company. We have situations were director are contacts of and directors of multiple companies so that seems a basic weakness in Bigin. When go to add
      • Does Thrive work with Zoho Billing (Subscriptions)?

        I would like to use Thrive with Zoho Billing Subscriptions but don't see a way to do so. Can someone point me in the right direction? Thank you
      • Radio button data won't update

        Wondering if anyone is experiencing the same problem. I tried bulk updating our data on Zoho Creator using API and noticed that the radio button field wasn't updated. I have tried updating it manually, it didn't work. When I tried updating a text field
      • Introducing Global Sets for easy management of similar picklists in CRM

        Latest update (December 2025): You can now apply color coding to the values inside a global set, the same way you color code values in regular picklist fields. Update (Sep 2024): We've increased the maximum count limit for global sets. These new limits
      • Next Page