In this post, I want to provide a behind-the-scenes look at Zoho Creator, a sense of what all of our engineers are doing.
First, to step back, Zoho Creator was born of an idea I had way back in 2002. I sketched out the underpinning of a programming language, with some strongly held convictions born of my own experience. In the beginning, that language had no syntax at all - it was living purely as a set of database tables. In programming language parlance, I had defined the "abstract syntax" of the language, without bothering to define a concrete syntax. In a way, the Deluge language had soul, but no body yet. I started an experimental project some time around 2003-2004. Zoho Creator itself was launched in 2006.
Unlike competing systems born at that time, Zoho Creator was not simply a form/view builder. It always had more power than that, as expressed by Deluge, which is why it has endured and thrived.
The most important aspect of evolution over the years has been in the runtime environment. Deluge has evolved from an interpreter to a just-in-time compiler, which was essential in achieving decent runtime performance. This took a fairly substantial effort, many many staff-years of R&D. We still want to speed it up much more, and there is ongoing R&D work in caching, scheduling and so on to speed things up further.
Scalability is another major area where we have spent a substantial amount of effort, consuming the majority of our team's time. Originally Deluge ran only on an SQL database. Today, it uses many different kinds of storage systems underneath, using each for what it does best. Distributed file systems, NoSQL systems, caching systems and of course SQL databases all play a role. We have also done integration with Zoho Reports, which uses is own engine underneath.
Now consider these two big items: moving from an interpreter to a just-in-time environment, and expanding beyond SQL database to multiple forms of storage. Normally these would have been highly disruptive to application developers, because we are basically doing brain surgery on the core system. The changes are essential because that was the only way we could keep the environment scaling and offering acceptable performance, while keeping our infrastructure costs reasonable so we can continue to be affordable to our growing user base.
We have pulled these off without major disruptions. I acknowledge we have had disruptions but I think the vast majority of our users, certainly any fair-minded observer, would agree they have been minor, and they were fixed fairly quickly. While any disruption is painful to our user community, and we take our responsibility of running this platform seriously, I want to emphasize that this whole cloud platform technology is still evolving rapidly, and a lot of R&D effort is going into it to make it really bullet-proof. This is true not just in Zoho, but across the industry.
Now what is ahead over the next few years? I am personally working on what I call Deluge NG - the next generation of Deluge that I hope would offer much more expressive power, while at the same time being as accessible as Deluge today. My goal is to empower the "casual programmer" or even power user to get a lot more done, without having to get a Computer Science degree. It is still early days on Deluge NG, but as it matures, I will post a series of articles on it. We will offer an experimental version of it online, running on a separate instance from the present Creator, so people can get a taste of what is coming.
For those technically inclined, the driving theme of Deluge, present in an underlying, unexposed form in the present version, but fully brought to the surface in Deluge NG, is the idea of a
fully queryable type system. Basically every type, every piece of data, in your program is fully queryable in Deluge, using a very expressive query syntax. The vision behind this queryable type system is that most of what you express in loops should really be queries on your data, and it is the lack of query power in languages that forces you to build explicit loops. For a variety of reasons that I won't get into here, explicit loops are a major design smell in my world, and I want our Deluge developers to be able to avoid them as much as possible.
I will conclude this post with one thing: Zoho Creator is the most important, most challenging piece of technology developed by Zoho. I have personally spent a decade of my technical life on it. It still has a long way to go to fulfill my original vision, but programming language platforms are hard. We have taken up this challenge because we have deeply held convictions on this subject, a near-religious belief that we can redefine the way we create world-class business applications. As with any religious belief, faith is needed; without that faith, nothing worthwhile is possible.
Sridhar
Recent Topics
Document | Files
The vendor "Partial matches" still not fixed here after years of putting up with having to select most vendors manually ! ( again, the banking "Transaction rules" would solve a lot of these issues ) Some unwanted, irrelevant pdf's also arrive. It would
books+POS+ tap to pay+ stripe
So in the UK we now have tap to pay with stripe. So we can use the stripe app as a POS terminal. Brilliant news. Can we hope that the Books App might add this feature ASAP. It would be great to have one system rather than using the not very good Square
Canvas Form View - Client Script Page on load - Url params not working
We have a custom module with a canvas page for form view. We have a button in Customers module to open this canvas page using invokeurl function. We send few parameters as in the URL as query parameters. https://crm.zoho.in/crm/orgxxxxxxxx/tab/CustomModule12/create/canvas/64333200000261xxxx?layoutId=643332000002605001&c=${Customers.Customer
Sending Recruit SMS's to Zoho Cliq - Or tracking in the Messages module in Recruit?
Is there any way to send SMS Gateway messages in Recruit to ZOho Cliq? We use 2-way SMS massages a lot in Zoho Recruit to speed up communication with Candidates. However the only way to keep track of received SMS's is by keeping a look out for the Email
This mobile number has been marked spam. Please contact support.
Hi Support, Can you tell me why number was marked as spam. I have having difficult to add my number as you keep requesting i must use it. My number is +63....163 Or is Zoho company excluding Philippines from their services?
Zohomail does not support additional fields in mailto links
Hello, I set up Zohomail as default composer in Firefox according to manual here: https://www.zoho.com/mail/help/defaultcomposer.html#alink2 Later, I wanted to use this functionality to answer in a Linux mailing list thread using mailto link: mailto:xxxxx@kernel.org?In-Reply-To=%3C727o0521-q24p-s0qq-66n0-sn436rpqqr1p@example.com%3E&Cc=xxxxx%example.org&Subject=Re%3A%20%5BPATCH%20v2%28%29
Is it possible to set a customer context variable in Zobot
Hi, I want to use a context variable to route users down different paths in my Zobot chat flow. I know I can do this when the user enters data. But I want to know if I can use a variable that is 'hard coded' on the card, that the user is unaware of. Use
Cannot change Blog Title
There is nowhere to change the blog title. You can change the blog URL but that is making no difference to the text "Enter Your Post Title" am I missing something?
Pending Sales Order Reports
Pending sale order report is available for any single customer, Individual report is available after 3-4 clicks but consolidated list is needed to know the status each item. please help me.
Manage monthly tasks with projectsf
Hi All I run a finance and operations team where we need both teams to complete monthly tasks to ensure we hit our deadlines. Can Zoho projects be used for this. There many finance focused tools but we have Zoho one so want to explore Thanks Will
Kaizen #203 - Answering Your Questions | Handling API Limits and Error Responses
Hi Everyone, Welcome back to yet another post in the Kaizen Series! We appreciate your keen participation in the 200th milestone celebration of the Kaizen series. We will continue to answer the queries we received through the feedback. When working with
How to verify website ownership with google search console
Hi, I am having a free .in domain provided by Zoho I have created a website on it now I want to verify my ownership to google webmaster. Can you please help me how to do that.
Kaizen #89 - Color Coding using Client Script
Hello everyone! Welcome back to another exciting Kaizen post. Today let us see how you can apply color codes to the List and Detail Pages of Zoho CRM using Client Script. Need for color code in Zoho CRM When you mark things with different colors as a
"SPF record exceed the allowed limit of 10"
Hi, I was wondering if there were a "universal Zoho SPF record" that would allow all my configured Zoho services that email things to meet this limitation ? or do I have to have an entry for mail, com, billing, etc?
Zoho Mail android app update: Block & reject future emails, Report phishing, Spam alerts, Suspicious URL detection
Hello everyone! In the most recent Zoho Mail Android app update, we have brought in support for the following features: Block & reject future emails Report Phishing Spam alerts in the mail details screen. Suspicious URL detection. Block & reject future
What is Resolution Time in Business Hours
HI, What is the formula used to find the total time spent by an agent on a particular ticket? How is Resolution Time in Business Hours calculated in Zohodesk? As we need to find out the time spent on the ticket's solution by an agent we seek your assistance
Animated GIF Images in Chat
I know this seems to be a small feature request but in a recent Cliq update Zoho disabled autoplay for animated GIFs posted in Cliq conversations. We think this was not a good change. In our organization, animated GIFs in a chat play a role in expressing
I can't seem to login in to Mail Apps of MacOS /IOS
Hi, i'm having trouble in signing in to mail apps from IOS. It's always come back to wrong passwords. But i already changed my password like 3 times. But still it says wrong credentials
Profile Image Showing Incorrectly in Zoho Mail
Hi everyone, I’m facing a serious issue with Zoho Mail. The profile image showing for my email address is incorrect — it’s not my image. When I send an email to my Gmail account, it displays someone else’s image. This looks very suspicious and can make
I need access to my old email
I need access to my old email bromzeman@zoho.com to verify it for forwarding. I can’t access the inbox to get the confirmation code. Please assist with recovery or forwarding. as you might already know, they made alot of the email addresses to have that
Set Defaults for Email Groups
Is there a way to set defaults for all of the groups that I establish as a moderator? For example, I want every group I establish to have the following settings: 1. Moderator is <user> 2. User is <user>, <user> 3. Notifications for new group turned
LOGS FOR RECEIVED MAIL ( READ DATE & TIME)
In Zoho mail we can extract the read logs of received mails so that we can see when we have read the mail and at what time & we have read it.
Domain verification probem
Hello, i use a domain from Namecheap with hosting from Cinfu when i try to verify my domain on zoho i get "TXT Verification failure" i even tried the HTML verification and the code appears but also giving me the verification failure error.
Switching to Cloudflare email routing from Zoho Mail
Hello, I'm currently working on migrating from Zoho Mail to Cloudflare's email routing solution. This requires changing MX and TXT records for our custom domain - when we do this, will our users still be able to log into their accounts and access an archived
Un Subscription Button
How can i Add the Un Subscription Button in Zoho mail
Documents unable view and need to downlad
I can't view .doc files in Zoho mail unless I download them, but I can view PDF files without downloading.
we encountered a problem while sending your email. please try again later.
Adding and removing people from groups
We're having problems adding people to a group. Apparently Zoho has one email address and will not recognize a different email address.
MAIL SEARCH IS NOT WORKING
THIS ISSUE HAS BEEN BUGGING ME SINCE MORNING, PLEASE RESOLVE THIS AT THE EARLIEST
URL Parameter on Help Center SIgn in link
Is it possible to add a url parameter to the sign in link on the Help Center?
migrating from HelpScout
I am attempting to import a conversation file from helpscout into desk and am receiving size errors. What is the current file size restriction. Does anyone have any tips for a successful migration?
Layout Rules Don't Apply To Blueprints
Hi Zoho the conditional layout rules for fields and making fields required don't work well with with Blueprints if those same fields are called DURING a Blueprint. Example. I have field A that is used in layout rule. If value of field A is "1" it is supposed to show and make required field B. If the value to field A is "2" it is supposed to show and make required field C. Now I have a Blueprint that says when last stage moves to "Closed," during the transition, the agent must fill out field A. Now
Article Name Sorting in Zoho Desk Knowledge Base (agent / admin side)
Dear Zoho Desk Support, We are writing to request an enhancement to the Knowledge Base management feature within Zoho Desk. Currently, there is no option to sort articles by their name, which significantly hinders efficient article management, especially
How to parse JSON data with SQL in Zoho Analytics?
Hi all, I have a column with JSON data. I want to show this column in a chart, but it is very messy, and no JSON parsing function is supported on Zoho Analytics. data example: {"id": 5, "status": "false", "date": "15/10/22"} what I want to do in SQL is
Ability to turn off "Would you like this amount to be reflected in the Payment field?" message
Team, Is there any way to turn off the message" Would you like this amount to be reflected in the Payment field?" when I make a payment? This is so annoying. This happens EVERY TIME I put an amount in the Payment Made field.
Add an Equation Field (Or update the Formula Field)
Hi, I would like to be able to have one field as a Text Field with QR Code, and then have multiple Equation/Formula Fields that then take parts of that fields data with LEFT, MID, RIGHT, REGEX, etc. Thanks Dan
How to parse column having JSON data using SQL?
We have a daily sync from a PostgreSQL database that brings data into Zoho Analytics. Some of the columns store raw JSON data. We need to build SQL queries on top to parse data from JSON and store them in discrete columns. There is no option for "Data
Enable report button based on the current user role
Greetings i have a report that contains action buttons, i want these buttons to appear as enabled only when the current logged in user has a certain role, for example only CEO role users will be able to use this button. but when setting the conditions
500 Internal Error In Mail API
I'm getting 500 Internal Error when using mail API. I'm getting this error for this one account, it works fine for other Account IDs which I have in my system.
Piss poor service in Support in Domains and email
Srijith Narayanan B contacted me today. Very pleasant fellow. Just didn't want to tell him how bad your support service is. You help the person, but you leave before we can finish the next stage. Which causes a lot of frustration. It's been 8 days now
Next Page