Home : Rebol Business Programming
Rebol Programming for Owners, Managers, Office Workers and Other "Non-Programmer" Business People

Rebol Programming for Owners, Managers, Office Workers and Other "Non-Programmer" Business People


1. About Productivity, Boxed Software, and Spreadsheets
2. Custom Software
3. Hiring Developers
4. A Better Solution
5. Rebol Features and Benefits
6. Improved Productivity is The Goal

1. About Productivity, Boxed Software, and Spreadsheets

We spend decades of our lives learning to better manage time, resources, people, and all the various little processes which make up our daily work. It makes sense to prioritize efforts which help us to better solve those overwhelmingly common daily workflow challenges. Rebol is a uniquely powerful tool which enables us to do that effectively and efficiently.

Computer technology improves productivity, and that saves money. Simple software solutions can improve operations in every area of business. Boxed software products and services can be found to immediately address common scheduling, accounting, communications, payroll, inventory management, marketing, manufacturing, point of sale, billing, collections, project management, and other critical processes, but those products are rarely (really never) a perfect fit for the exact use any business requires.

Spreadsheets are one of the most common general computing tools used to supplement boxed software. They're great at manipulating columns of data, and it's expected that everyone in a typical office setting knows how to use them. But because spreadsheets are ubiquitous and relatively powerful, they end up being overused in ways which are error prone and ultimately counter-productive. Spreadsheets are not suited to applications which involve multi-user input, protected data fields, large data sets, complex algorithmic formulas, special searching, sorting and reporting capabilities, parsing operations, etc. Spreadsheets also encourage independent workflows, which is a troublesome practice because data tends to get scattered and lost in obscure personal files and never integrated into codified patterns which are developed into well architected systems. Spreadsheets are also severely limited in their ability to handle other forms of useful data (workflows that involve image manipulations, hardware control, etc.), which can be critically useful in the operation of all varieties of business. For more about problems with spreadsheets see:

  1. Are spreadsheets running your business?
  2. Excel errors costing business billions
  3. How the most important software application of all time is ruining the world (fortune.com)
  4. Spreadsheet addiction
  5. Databases versus spreadsheets - do you know where your data is?
  6. Excel to R
  7. Google search

2. Custom Software

A better way to create successful business systems is to develop custom software solutions, engineered from the ground up to satisfy the specific data management needs of a business' unique operations. Streamlined user interfaces in custom software help to speed use, ease data input and output, provide form validation (eliminate errors), restrict access to protected fields of data, and enforce prescribed workflow procedures. When comparing spreadsheets to custom software, even the simple addition of a database system enables powerful features such as multi-user access, increased capacity for larger data sets, and enhanced reporting abilities.

Other simple capabilities of custom software, which can't be mimicked easily with generic "office" software, include basic access to:

  • a computer's file system
  • any hardware connected to a computer system or device
  • image and sound processing capabilities
  • network socket connectivity and communication capabilities
  • connectivity to web servers, email, or other high level online services which make use of any various protocols, data formats, etc.
  • potentially ANY other resource or capability attached to, or accessible by a computer system, which involves taking advantage of the algorithmic control capabilities that are provided by a general purpose language.

For example, it's an easy task for a developer to create a program which searches for matching data patterns in files, performs multiple conditional evaluations upon values that match those patterns, and sends form emails to appropriate users based on computed results. Such a simple process can't be easily accomplished using mainstream office software, but it's quite simple using custom developed software code. It's also an easy process, for example, to assign coordinate locations in a floor plan image to any of a million+ inventory items. As another example, this tutorial demonstrates how easy it is to manage/automate an Etsy account using a simple code API. You can't do that with a spreadsheet (and even beyond that, the code examples can be naturally extended, to any degree, to tie in with your own personal in-house operations, in any way you can imagine...). In the end, ANY such routine or goal which is difficult or time consuming (expensive) for a human to accomplish, can be simplified by using computing systems and the pieces of software/hardware which they can potentially connect to and control. Software development is the key to enabling such capabilities.

But that's not where the benefits of software development end. Custom software allows the full spectrum of specific tasks encountered in a business to be engineered to work together within a larger design. Such end-to-end solutions add equity value to any business:

  • software creates sellable/leaseable intellectual property, by materializing the procedures and experiences acquired while operating a business, into a tangible product.
  • software enables operations to be more easily expanded, scaled up, franchised, sold, etc.
  • software improves the operating model which defines the business itself, by clarifying and codifying fundamental business processes encountered daily, and implementing/asserting repeatable models of operation based on those routines, and ensuring that operational guidelines are followed consistently.

If custom software development were somehow available for free, there would be virtually no reason not to use it to help improve the efficiency of any business operation. Of course, custom software development is not free, and "learning to program" is generally considered far too time consuming (expensive) and complicated an endeavor to be included in the work load of office personnel, managers, or other workers. One can learn to crunch numbers with Excel in a DAY - but that's not even remotely true of traditional "programming" skills. Years of study and experience are required to achieve even modest goals, using even the most "productive" mainstream software development technologies.

3. Hiring Developers

Hiring professional developers appears to be the only possible solution for creating custom software.

But software developers' time is extremely expensive, and their ability to create the software you need is limited by their own understanding of the industry in which the software is used, their work load and schedule (...as well as the schedules of their other clients!), the limits of their creative and technical abilities, the limits of their ability to communicate and question about the actual requirements of your software, etc. Contracted developers live apart from the usage environment and conditions, and never see first hand how operational stresses impact the way your software is used. Software developed by a group of coders working in cubicles in a foreign location, who've probably never experienced anything like your work environment or the human challenges imposed by your day to day operations, is absolutely unlikely to work exactly according to your needs. This often leads to severe usability problems, ongoing upgrade, re-implementation, and re-training difficulties, and of course, all the associated expenses and limits imposed upon your ongoing business operations which rely on imperfectly implemented, system-critical software.

So, how is it possible to come up with a better solution to these common difficulties?

4. A Better Solution

A solution does exist with the Rebol programming language. Rebol can be successfully learned and applied by "non-programmers", and for those who have the foresight, it provides a fantastic outlook and solution to every facet of business problem solving.

Broad capabilities in Rebol require even less learning than advanced spreadsheet scripting and other common office skills. As a simple example, imagine downloading and performing a calculation upon some data from a Paypal account. Using a spreadsheet typically involves potentially error prone manual manipulation of the data and formulas, and requires a complete download/import/run cycle every time the data source changes. The short Rebol code below takes less time to write, and only needs to be created once, then can be executed any time the data source changes:

sum: $0
foreach line at read/lines http://re-bol.com/Download.csv 2 [
    sum: sum + to-money pick (parse/all line ",") 8
alert join "Total Gross Sales: " sum

The tiny example above can also be changed or expanded to perform much more complex and/or specific algorithmic evaluations with just a few lines of code:

foreach line at read/lines http://re-bol.com/Download.csv 2 [
    time: to-time second row: parse/all line ","
    if (time >= 0:00am) and (time <= 12:00pm) [print row/8]

Training employees to copy, paste, and run such short bits of code is easy. In fact, it requires less effort than training users to deal with the complexities of various spreadsheet creations, patched together boxed applications, various email interfaces, or even how to use some custom applications to handle a variety of imported data formats. Learning to edit and extend the capability of such simple scripts typically requires learning just a few lines of Rebol code.

See many more simple Rebol code examples here:


5. Rebol Features and Benefits

As you can see, with Rebol, coding barriers are lowered to a *critically low* point of simplicity. That critically low point of simplicity is far below any other software development tool, and is in fact easy enough for anyone willing to learn. Simple skills which correlate to the use of a spreadsheet can be learned in a day. Here are just a handful of goals which are trivial to accomplish with Rebol:

  • User interface creation. Visual forms can be implemented immediately, to accept text and requested input from users, in controlled ways.
  • List and table data processing. Searching, sorting, and performing computations upon all types of data values commonly found in the real world is dramatically easy. Rebol even eliminates the need to choose or use a third party database system, to learn SQL, etc.
  • Powerful conditional evaluation operations, based upon search results and value comparisons, for example, any number of levels deep, are simple to structure in Rebol code.
  • Parsing complex structured and unstructured data, and performing math and other computations on that data (i.e., columns of log data, for example, from web or financial applications, etc.) is easier than with any other general purpose programming language. Rebol's powerful "parse" dialect elegantly replaces regular expressions, to enable easy extraction of data from both structured and unstructured sources. This is a feature which is totally unique to Rebol.
  • Network connectivity and web server programming is trivially simple, all using the exact same data manipulation functions and syntax used to handle basic list and data table processing operations.
  • Graphic plots and full screen presentations of all types of info are trivially easy to lay out, using the same dialect employed to create user interfaces. The ability to easily include LIVE data computations in presentations (using data from any source, including network connected services) is unmatched by any office application.
  • Mathematical analysis and reporting is simple to accomplish, and unlimited in its capability, because Rebol is a full featured, powerful programming language.

All those things take just a few minutes to learn how to accomplish in Rebol, and often in ways which are simpler than can be accomplished by using traditional office software. Rebol can replace routines and specialized tasks which are typically handled using spreadsheets and other common office software tools, quickly and easily, and with very little training.

In Rebol, the simplest possible syntax (or no syntax at all) is used to:

  • add/subtract time, date, money, coordinates, and other common values automatically
  • manipulate CSV, XML, HTML and other formats natively
  • display and apply effects to images and graphics, play sounds, etc.
  • read and write data values directly to/from files, web servers, email accounts, the system clipboard, network ports, databases, and many other sources

All without any complex formatting or any external library code.

Rebol costs $0.00 to install. It's distributed as a tiny free single-file multi-platform interpreter (that weighs only about 1/2 a megabyte!). It can be downloaded, installed, and used on any operating system, with or without installation, in less than a minute. It's instantly transportable, even by email. You can send complex Rebol scripts, along with ALL the Rebol interpreters for Windows, Mac, and Linux (applications, runtime environment, and the entire development system), in attachments smaller than a single photograph. The Rebol interpreter does not need to be installed to run on any system. It comes as a single executable file, with all necessary libraries built in (graphics, GUI, network, sound, database, math, compression, email, CGI, security, etc.).

Rebol is portable across nearly 40 modern and legacy platforms and requires no other software installation dependencies, operating system or version updates, data conversion or reformatting tools, code libraries, DBMS installations, etc.

Rebol is a powerful, industrial strength, general purpose programming language, proven by more than 16 years of use in a wide variety of demanding commercial production environments. It's a deep and powerful tool which encompasses solutions to nearly any diverse set of problems, using a single unified paradigm, which requires less total time than learning multiple varied tools of all sorts. Learning a single small tool with the simplest programming language possible, enables the ability to COMPOSE solutions to problems, from simple components which all integrate together much more easily than the common disparate solutions employed in most business environments (boxed software, spreadsheets, online services and "office" tools, etc.).

In addition to creating applications, Rebol can be used out of the box, as a lightweight:

  • file manager
  • text editor
  • powerful calculator
  • database manager
  • email client
  • ftp client
  • image viewer/editor
  • news reader
  • OS shell
  • a simple utility program with a familiar interface to common computing activities on just about any computer, even for users who are unfamiliar with a given operating system. This enables workers to move data and activities between different platforms and to inter-operate easily with others who choose another OS to do their work.

6. Improved Productivity is The Goal

If your business and life goals include improving overall productivity and capability, then the time/money saved by implemented software solutions must be greater than the total time/money invested in studying/writing code. It's simply not possible to accomplish that goal in any practical way, by learning to use conventional mainstream development tools. No other tool but Rebol is both simple enough and broadly capable enough, at the same time, to increase productivity for non-programmers. Rebol is easy enough for "average computer users" to learn, and much quicker to begin with than any other general purpose software development tool, yet it's far more versatile than spreadsheets and office software. Learning to manipulate rows and columns of data with Rebol requires approximately the same amount of time as learning to use a spreadsheet to accomplish the same goals, but the skills gained by learning Rebol enable far greater capability in the end.

And there are even more advantages to learning Rebol. Even a basic understanding of software development helps owners, managers, and workers envision, evaluate, and commission software solutions to improve operations. It enables those involved to make better informed choices about choosing or creating software which handles daily activities. When custom software needs to be commissioned, an understanding of the development process makes it easier to communicate specification details. An understanding of coding, even simple prototyping, helps to improve the development process, and the outcome, even when managers (owners, workers, or other in-house personnel) write 0 lines of production code. But even more important than that, it becomes much more likely that the *very possibility* of using custom software solutions to handle certain routines will be considered at all, and software solutions are much more likely to be imagined, to handle repeated problems, in the first place.

Given the enormous portion of our lives which gets spent learning to better manage time, resources, people, and activities, it should be considered a priority that any active business person learn to better envision and create solutions which handle those common workflow activities more efficiently and effectively. Learning and using Rebol is a uniquely simple and broadly powerful solution which can help in a profound way to achieve that goal.

Copyright 2000-2015 Nick Antonaccio. All rights reserved.