Home   Archive   Permalink



Why Rebol is Relevant

<rant>
    
On Thursday I went to the bank. I have a little R3 script on my phone which I use to calculate the cash, check, and grand total deposit amounts. While in the counting room, I received a message from a student who wanted to reschedule an appointment. My teaching schedule is managed entirely by some Rebol scripts running on my web server. Students can see my available reschedule times, and make a new appointment without ever having to speak with anyone. I confirmed the appointment using a little R3 script that runs on my phone. While driving home, I received a phone call from a client who wanted help with the Merchants' Village software (she's already used it to sell 10's of thousands of dollars worth of items in a few weeks). I had given her a Rebol script to upload files to a folder on my web server. I edited the code she needed using a little R3 GUI script on my phone, while pulled off the side of the road, and let her know it was done. Later that day I taught several guitar lessons using my guitar-chords.r script to print out chord diagrams for students (there is no other guitar chord program anywhere which teaches chord construction in that exact way). While in lessons, I use a sign-in script that alerts me when my next student arrives - it also keeps a full lesson history for billing purposes (the other Rockfactory teachers use all these software tools and more to handle every facet of lesson operations). During the day, 2 students signed up for a recital using a Rebol CGI script on the Rockfactory web site, which lets them input all their information, song lists, band requirements, etc. (that script saves me hours organizing each event). During my day, I also put together a web site for a student, using my sitebuilder.cgi script: http://velekaallen.com . It took less than 1/2 hour to buy her domain name, install the sitebuilder script, find a suitable open source HTML page layout template, edit it, and enter content into her pages - and now she can edit her site whenever she wants (it took all of 2 minutes to show her how to use the script). I also taught a two hour long Rebol programming lesson to one of my students who's become curious about how I wrote all the cool little music lesson apps he's seen. In the evening, I received a message from a client who uses an inventory system I wrote to manage items in his big retail store. We have an update system set up (less than a page of Rebol code), so that I can make requested changes to his program quickly, on my home computer, or wherever I happen to be. I used an Android tablet to do that quick update. While doing my work at home that evening I used Rebol to create an image that will appear in my next Valpak advertising mailer, and I wrote a quick throw-away script to help sort and compare the schedule requests for the next jam session at Rockfactory. That night, before putting the boys to bed, we played a few games of tric-trac on their netbook PC (a tiny new game that I wrote in a few minutes, for a student who's learning about Rebol) - they love playing that game! Before bed, I helped Danielle compute sales tax totals for her Etsy business accounts, with a short script we created last year, and we edited a marketing web page that she hopes will help increase sales (I use a souped up version of the Rebol text editor to make all those sorts of edits, because it has built-in FTP access). We also added a few pictures to a private family blog written entirely in Rebol (all the images are resized and uploaded with a Rebol script, and the web site content is added with a Rebol CGI script).
    
Every once in a while, I look around and think about how useful Rebol has been in so many areas of my life. From new little scripts on my Android phone and one-off scripts that organize info in my daily life, to big commercial applications that have dominated enormous operations for me and for clients, I rely on Rebol to handle real life activities, from entertainment, personal interests, and trivial little routines, to critical business operations that enable livelihoods for many people. Because Rebol runs everywhere, and is just so incredibly productive, it's become a critically important tool in my life. I very rarely use any other development tool these days - but Rebol isn't just a "development" tool - it's really more of a malleable general purpose "computing" tool. It has enabled me to use computers in just about every area of my life. It's been every bit as important to me as a web browser - really much more important, because it enables fast and efficient creation of incredibly useful custom apps. I have no desire as a developer to ever be involved in the creation of a new operating system, a new web browser, or to build the next Google... I'm just grateful to have an incomparably simple software tool that lets me use the power of all the computers, phones, and devices around me, the Internet and my web servers, etc, to "compute" in ways that are meaningful and functional in my life - to create applications that map my thoughts and activities to code, in such a clean and straightforward way. This is why I think Rebol really shines - it turns all the connected machines in my world into completely customizable systems, able to handle data and activities in my life and my businesses, in exactly the ways I want and need, in the most direct way possible, with so little code. For me, Rebol has been fantastically successful at it's goal of reducing computing complexity. The dramatic productivity benefits of Rebol, which are incomparable to any other tool I've ever used, mean that the trivial amount of time needed to create useful custom applications is negligible, compared to the benefits that come from creating them. There have been very few practical, useful, beneficial, and even life changing applications which I haven't been able to create using Rebol (a few multimedia apps and a video conferencing system, for which I had to resort to Flash). In every purpose, for which there isn't a pre-existing software solution, such as "core" computing apps like web browsers, Rebol has allowed me to build solutions. I think this is the space where Rebol can and should exist with the greatest relevance - there is a potential place for it in any person's life. Not just the techies who work in IT, or the developers who build business systems, but every average computer user. Everyone uses computing devices, and their presence affects our lives in powerful ways. The ability to really control their capabilities, and to enable them to organize our own personal and business information is such a powerful prospect. Java, C, and those sorts of complex tools have their permanent place in large scale development efforts. Python and other scripting languages are powerful in ways that professional developers can appreciate. But Rebol is special. It's the only tool easy enough to be truly accessible by anyone, and it satisfies a potential need to use computers to manage data, in customized ways that can't be handled with software applications pre-built to satisfy particular specifications. I wonder why this community hasn't focused on promoting Rebol in that way - as a generic computing tool that anyone can use, to fill the gaps which "apps" and other "development tools" can't. To me, that gray area has meant a world of satisfied potential which would have otherwise gone unfulfilled. I can't help imagine that there's a large population which could use Rebol in the same way and benefit from it tremendously in the same way.    
    
Any thoughts?
    
</rant>

posted by:   Nick       11-Nov-2013/12:40:34-8:00



(... and I submitted that rant using my rebolforum script - that's just one more example of how Rebol has been used regularly in my daily life)

posted by:   Nick       11-Nov-2013/12:43:26-8:00



Here's another example. Today I wrote this in a few minutes:
    
R E B O L [title: "Simple File Sharer"]
login: request-text/default "ftp://user:pass@site.com/public_html/files/"
filename: request-text/default "links.html"
html: copy {}
foreach f request-file [
     print file: last split-path f
     write to-url join login file read f
     append html rejoin [
         {<a href="} file {">} file {</a><br>} newline
     ]
]
write html-file: to-url join login filename html
editor html-file ; sometimes I re-arrange the order of the links
    
I use it to send lists of files to clients' phones. I can text them the single short personal html file link, and they click the contained file links to download all their files. It's a stupid simple script and setup which requires only a single unstructured folder on any web server, to handle all the files for any number of potential clients, but it's a huge time saver that I can use for so many different practical purposes, with so many people, in so many situations. There's no single "app" in a market which would satisfy that purpose so simply and perfectly, and I certainly don't need any complex development environment to accomplish such a useful goal. It's much more universally usable and straightforward than a service such as Dropbox (it renders those sorts of complex services totally unnecessary), and anyone can learn to create this sort of script the first day they begin to learn Rebol. I have hundreds of little scripts like this which get used constantly.

posted by:   Nick       11-Nov-2013/22:19:34-8:00



The things you do with REBOL are so "small-time" that you would not be able to find some commercial program to do them. There is no money in it for anyone to write them. Your specific applications are important only to you. But even if you could, the program probably would be so "feature-rich" that you would get 80 percent of your work done with 20 percent of the features, and you would have to go through hundreds of pages of reference material to find those useful features. Your data would be locked up in a proprietary format, and if something corrupted the application in some way to make it unusable, your data would go down with it.    That category of events would include an "upgrade" (possibly even a forced upgrade if the old version became unsupported) that might be incompatible with the data format of the previous version. And then you would have to deal with installing this application, which is not always flawless, and you probably would be locked into one kind of computer (Windows, Mac).    
    
But if you could not find a commercial product, then you would try what many others seem to try, which would be to muscle your application into what seems to be the tool of choice for just about everything, namely Microsoft EXCEL. You would force EXCEL to do stuff it was not designed for, and you eventually feel very productive because you were doing in half an hour what would take all day if you had to do it manually. It would not occur to you that with a truly custom application for your own specific needs, you could do all that work in a matter of minutes.    
    
I am having fun at work with just such an application. I recently had contact with a lawyer and discovered that he bills by the hour, to the nearest tenth of an hour. I wondered how he kept track of that. I also wanted to track my own work hours a bit better since the annual review is approaching. So I wrote a REBOL program with three activity timers I can start and stop for various projects in progress. With the program up on my screen all the time, I started to think of other things I could put on it as long as it's there, and it is growing into a general personal control panel. It has "indicator lights" for the results of various overnight jobs, buttons to activate little utility programs, links to commonly-used documentation, link to servers I have to access regularly. It took a while to get the program stared, but now that it has reached a "critical mass" so to speak, if I want to add a feature it takes just a few minutes.    
    
Carl wrote an essay about putting the "personal" back into personal computing. I don't know if it has a permanent home anywhere, but I just found it here.
    
http://www.eskimo.com/~goody/links/back.to.prsnl.cmptng.html
    
I hope that those who are working on R3 can hold on to that vision of cross-platform simplicity. I saw recently a video about Steve Jobs from the time when he was starting NEXT. He commented on the importance of having someone in a development effort who can hold on to the vision, and keep reminding everyone else about it. With Carl out of the picture, the REBOL community has that as an additional challenge.

posted by:   Steven White       12-Nov-2013/10:50:34-8:00



Thanks for the response steve. "There is no money in it for anyone to write them." - I disagree with that. One of my favorite (well known) articles describes a lot more about why that's not true:
    
http://www.kalzumeus.com/2011/10/28/dont-call-yourself-a-programmer/
    
"Most software is not sold in boxes, available on the Internet, or downloaded from the App Store. Most software is boring one-off applications in corporations, under-girding every imaginable facet of the global economy. It tracks expenses, it optimizes shipping costs, it assists the accounting department in preparing projections, it helps design new widgets, it prices insurance policies, it flags orders for manual review by the fraud department, etc etc. Software solves business problems. Software often solves business problems despite being soul-crushingly boring and of minimal technical complexity. For example, consider an internal travel expense reporting form. Across a company with 2,000 employees, that might save 5,000 man-hours a year (at an average fully-loaded cost of $50 an hour) versus handling expenses on paper, for a savings of $250,000 a year. It does not matter to the company that the reporting form is the world’s simplest CRUD app, it only matters that it either saves the company costs or generates additional revenue."

posted by:   Nick       12-Nov-2013/21:47:56-8:00



Thank you for the link. I am going to have to read that a couple times. "Career management" has not been one of my strengths.
    
The comment about "no money in it" was not well-stated. I meant that one is not likely to find a packaged solution for sale for some simple applications. The example in my head is something I wrote for my employer, a program to run a summer tennis ladder. The program is used for three months of the year and has been in use since 1982. It is "mission critical" to the people who use it, but until recently I have not seen too many sources for purchasing such a program, probably because summer tennis ladders is not a large market.

posted by:   Steven White       12-Nov-2013/22:07-8:00