OpenEdge Text Database and 4GL Electronic Docs Vignette
One late 80's morning in Billerica, Massachusetts the amber plasma screen of my Compaq Portable III booted in the sunlit office of Chip Ziering, CTO, VP of Development and one of the founders of Progress Software, then known as Data Language Corporation.
Ever witty, Chip was poking good fun at all 20+ pounds of Compaq's lunchbox "transportable" design. Heavy and ugly as this 12MHz Intel 80286 box was, SCO Unix booted up quickly enough from the 40MB hard drive and his eyes were soon focused on a free text field.
"Chip, pick a keyword any keyword" in carnival magician style. "...UPDATE."
A few taps and the screen below was dynamically filling with text search results as I typed. A cursor to the right and "UPDATE" was auto-completed. Then a spacebar press and "WITH" was typed. The search results automatically refreshed with weighted results in an independently scrollable list. Selecting the top result using an independent concurrent navigation and the documentation showed up, search terms highlighted.
"Okay, you got me. How!?" "Multi-threading and the text database I spoke to you about." "Multi-threading?" "Yeah, I couldn't talk you guys into adding multi-threaded language capabilities so we built a subset for this text database UI." "We?" "Yes, 'we'. If you as VP of Development in public meetings can call yourself a member of the development team, I can say 'we'". "Fair enough. Mary, I've got something for you to see." And soon in pops Mary Szekely, deep in other thought. "You're onsite today." "Yes, Mark. What's this?. Chip explains better than I did to him moments ago. "Neat!"
"Let's setup some meetings. How much longer are you here." And so a meeting was setup with someone that I'll call "D".
Time came for the meeting, and went. Then D arrives and ushers me into a side room, and with an air of being rushed is half sitting half standing against a table, ...not a good sign. As I look for a place to plug in, "Why would any database need a text search?" he interrupts. I reply, "Users with structured and unstructured data can benefit greatly from text search to access data swiftly without pre-determined indexes." (Yeah, I know, I thought of dozens of better replies on my trip home.)
But I had no opportunity to elaborate as all further discussion of the text database capability was abruptly halted, eclipsed by what I happened to choose to use for the demo, the Progress 4GL documentation. "Our documentation is for copy protection. One buys a license to get documentation. Why would we distribute it for free?" I replied, "Because the company's overall value should be measured by the sum of all developers knowledgeable in the 4GL and using it to build solutions that then require licenses. Besides, printed documentation will be replaced by electronic distribution soon enough." To which he replied, "Well, there are people waiting for me in another meeting. Good seeing you Mark" Meeting over. I didn't even get a chance to power it up.
Now, D was no dummy and his contribution to Progress was huge. He was over tasked from the word "Go" and successfully presided over many critical infrastructure and support areas of Progress for years. I chalked it up to him having a bad day but in follow-ups couldn't overcome his objections much as I tried.
Flash forward thirty years. Progress has long since been making its documentation available for free, online. (Though the first time you search for "UPDATE WITH" it can take a quarter minute or so, yikes.) It still boggles the mind to contemplate the increase to Progress' market share had this transition to free documentation come sooner.
If you're wondering what happened to that technology, the 4GL techniques used in the demo including auto-complete and multi-threading in various forms have used by Solvepoint customers all these years, and are still in production. In this last decade we've integrated various leading text search systems on the super-large scale for our clients, as well as used Progress's word indexes.
Progress still hasn't added multi-threading capabilities to its language. But that hasn't stopped us from making multi-threaded technology available to help our OpenEdge clients build high performance super-scale Progress applications with advanced capabilities, the last fifteen years using EagleIQ for Progress 4GL, of course.