Softpanorama

May the source be with you, but remember the KISS principle ;-)
Contents Bulletin Scripting in shell and Perl Network troubleshooting History Humor

REXX

News

Scripting Languages

Rob van der Woude's Scripting Books Store REXX Recommended Links PL/1 The History of the Development of Programming Languages
A Slightly Skeptical View on the Object-Oriented Programming Mike Cowlishaw OS History Tips Humor Etc

Rexx is a scripting language that was invented at IBM years ago by Mike Cowlishaw.  Firs description was publishe in IBM Systems Journal in 1984. That means that REXX older then Perl (end of 1987), but younger then AWK (1977). 

What distinguishes Rexx is that it blends use of macrolanguage (and it is used in Xedit and its derivatives) with the use of OS shell. In the latter role Rexx was bundled with the Amiga OS and OS/2. Many thousands of developers and end users learned the language through these desktops of yesteryear and still remember it fondly today. Rexx has a proven track record as the driving language for major desktop systems.

Rexx's power has enabled it to be the dominant scripting language on mainframes for two decades. To this day no other scripting language challenges it on any mainframe operating system.

Languages like Perl have a unique appeal due to  ease of learning, ease of use, and user-friendliness for the desktop user or casual script writer.

Perl is way too complex even for professionals and everybody is just using small subset of it.

Python is easier to learn but suffer from way too much OO junk. New users and occasional programmers don't think in object-oriented terms. One must be taught to think this way. My friend, a high school computer science teacher, tells me that new users state their programming problem and then ponder the steps to resolve it. They don't identify the objects of a problem space and then consider the methods they need. At the end of the semester, a few advanced students love object-oriented programming and are off and coding Java. The vast majority would have been better served by having learned to script procedural solutions for common programming problems.

I have great respect for the enthusiastic Python developers who tell me that anyone can program in the language, and that ease of use is one of Python's big advantages. But I believe they are wrong in thinking that even casual users must love (or be made to love) the OO paradigm.

TCL/Tk is another great language, and one that is easy to learn and use. But Tcl/Tk doesn't offer Rexx's wide-ranging ties to other systems, from handhelds to mainframes. Tcl niche became networking. Tk was ported and now use with all major scripting language in existence so it is no longer TCL-world phenomenon.  

"Classic" Rexx is a simple procedural language. 

 


Top Visited
Switchboard
Latest
Past week
Past month

NEWS CONTENTS

Old News ;-)

[Sep 07, 2012] Rexx

Rexx examples
During the last couple of years I created some useful - and some less-than-useful - tools and other programs that I will share here.
Start any of these commands without parameters or with /? as the only parameter to get a help screen.
Most of my Rexx scripts use RexxUtil (native in OS/2, Windows version can be downloaded from Patrick McPhee's site), and many Windows Rexx scripts use W32Funcs as well (also available at Patrick McPhee's site).
Rexx tools for OS/2 LAN Server administrators
These scripts are intended -- surprise -- for OS/2, OS/2 LAN Server, OS/2 Warp Server and eCS (OS/2 Warp 4.5*) only.
Unlike most of the other scripts, they cannot be ported to Windows easily because they depend heavily on IBM's LSRexxUtil library.
Rexx tools and other scripts for Windows NT and Citrix WinFrame administrators
Most of the Rexx scripts on this page were created during my years as OS/2 LAN Server/Windows NT 4 Terminal Server Edition administrator at a small Dutch bank.
I added other scripts, some in other scripting languages, that I guessed might be useful for Windows administrators.
With the current version of RegUtil (Patrick McPhee's Windows port of RexxUtil) many scripts that were originally written for OS/2 may now require little or no modification at all to run on Windows systems.
Rexx books
Several titles on Rexx.
Rexx bookmarks
Find more Rexx related information by following these links.

Using Rexx for easy Desktop Linux scripting

by Howard Fosdick (May 28, 2005)
Foreword: This article by Howard Fosdick, author of the Rexx: Programmer's Reference, tells you everything you need to know to get started using Rexx on your Linux desktop. Linux features powerful scripting languages like Bash and Perl, but these may not be suitable for end user scripting. Rexx, on the other hand, has proven ideal for desktop Linux users, according to Fosdick, yet it combines both ease of use and power, and is available in a three basic forms including procedural ("classic" Rexx), object-oriented, and Java-compatible versions.

Using Rexx for easy Desktop Linux scripting

by Howard Fosdick


Linux runs a plethora of free shell languages. These include Bash, the KornShell, the C shell, and their supporting tools such as awk, sed, and yacc. Linux also offers an exceptional selection of powerful free scripting languages such as Perl, Python, and Ruby.

Linux developers dwell in hog heaven. Who wouldn't love this set of powerful scripting tools?

The answer, of course, is the desktop user. This person is not a professional developer. He doesn't have the time or inclination to learn an advanced language like Bash or Perl. Nor does he program full-time. This person might be an IT professional who is employed somewhere other than in desktop development. Or she might be a "sophisticated user" -- a professional employed outside of IT, such as a business person or administrator or engineer or scientist.

Users script to tailor their systems, automate repetitive tasks, or solve simple programming problems. Languages that base their power on complex syntax, such as Bash or Perl, are difficult for them to learn, master, and remember. Users require a language they can script from memory, since they don't program every day. They like languages with minimal syntax, forgiving formatting, and easy interactive debugging. Their language has to be designed for quick learning and ease of use while still supplying power.

Rexx fulfills this role. Rexx was bundled with both OS/2 and the Amiga OS based on its exceptional ease of learning and ease of use. But Rexx yields power: the language drives mainframes, where it has been the default scripting language for over twenty years.

Ease of use and power conflict. Rexx reconciles them through its tiny instruction set surrounded by a large set of built-in functions. As in C language, this design allows users to quickly code in the language while expanding their knowledge into the function set at their own pace. But Rexx differs from C in that scripts contain almost no punctuation or syntax. Rexx instructions and functions are high-level.

Rexx is a glue language. Scripts easily stitch together existing programs, scripts, operating system commands, APIs, DLLs, shared libraries, objects, widgets, components, and the like. Rexx supplies power through easy extensibility: external functions are coded just like internal ones (after a statement sets up access to the external library). Scripts leverage existing code to increase productivity and give power to casual programmers.

Rexx capitalizes on its interpreted nature to avoid the programming restrictions that frustrate non-professionals. Take data typing and storage allocation, for example. Rexx does not type variables; all variables contain variable-length strings. Variables containing valid numbers may be used in computations, while the others are simply character, bit, or hex strings. Variables may either defined by use or declared in advance. Rexx automatically manages all aspects of variable sizing and storage allocation.

Consider how this applies to arrays. An array does not have to be declared. Its size automatically expands and contracts as required. Arrays can contain like or varied data elements. They can be homogeneous or heterogeneous, sparse or dense, indexed by numbers or arbitrary strings or variables, and subscripted to any degree.

This flexibility yields power. Yet it is all based on the simple syntax of variable names separated by periods, such as: my_array.1 or my_array.1.4.

Arrays may be indexed by variables and arbitrary character strings as well as numbers, as in my_array.my_subscript. This allows users to create any imaginable data structure with them, including lists, key-value pairs, look-up tables, trees, balanced trees, linked lists, doubly-linked lists, and more. All this is achieved with the simple "dot notation" of arrays. No other syntax is necessary. The result is power without complexity.

Rexx varieties

Rexx comes in three basic varieties: Procedural or Classic Rexx; Object-oriented Rexx; and NetRexx.

Rexx For Desktop Linux?

With its very different personality, Rexx nicely complements Linux's power scripting languages. Rexx offers ease of use and ease of learning while supplying power and flexibility. It is especially suitable for end user programming and for use by computer professionals who script only on occasion. Rexx addresses the needs of the desktop Linux user.

Rexx has hundreds of thousands of users world-wide. Yet it's little-known within the American Linux community because its heaviest use has been on other platforms. Rexx earned itself a role as the bundled language of operating systems like the Amiga OS and OS/2. It fulfills a real need for desktop Linux users.

Learn More

This short article omits the most important item in your understanding of Rexx -- example scripts. You can download several dozen example scripts in a single compressed file. These examples run under Linux and/or Windows. They include a half-dozen Open Object Rexx scripts for Linux.

My new book Rexx Programmer's Reference covers everything about free Rexx. It starts with a simple tutorial, then progresses into advanced scripting, tools and interpreters, and a complete language reference.

What about support? The Rexx Language Association is an international organization devoted to Rexx. Along with the web sites above for specific interpreters, it's a great source of tools and information. Rexx forums offer support in a half dozen languages. Check them out in English, French, German, Russian, and Japanese. An international platform like desktop Linux needs international support -- and Rexx provides it.


About the Author: Howard Fosdick is an independent DBA contractor who's worked with most major scripting languages. His book Rexx: Programmer's Reference is the complete tutorial and reference for Rexx. It covers all aspects of the language, its tools and interfaces -- in 700 pages for under $30.

[ May 28, 2005] Slashdot O'Reilly on the Virtues of Rexx

yagu some issues....

Okay, I'm probably dating myself here (illegal in Nebraska, btw), but I remember REXX when it emerged as a replacement for EXEC which I had coded extensively in (written entire app systems) on IBM mainframes. There were a lot of benefits to REXX back then, notably it cleaned up and made transparent a lot of garbage and system management chores required to write clean EXEC code (e.g., strings tokenized at 8 chars, awkward variable interpolation)... I used REXX for a while on the mainframe and can't remember why I abandoned it.

Fast forward 2 or 3 hundred years, and I found myself dropped into a Unix universe, and quickly self taught myself the ins and outs of shell. Haven't looked back since. Now, I'm looking back and am intrigued... REXX really does have some interesting features. And, since I have a little free time on my hands, maybe I'll re-visit REXX, but from userland out there, any feedback would be useful:

Anonymous Coward Re:some issues....

RetroGeek, you are a little too retro. Windows has had a central, language-independant scripting system for many years now. Look up Windows Script Host. (IBM even sells a REXX that will plug into it.)

Foz (17040)

Re:some issues.... (Score:3, Interesting)
by on Saturday May 28, @10:59AM (#12663946)

I can't name a single other programmer I've known who writes/has written REXX applications.

*raises hand* I used to use REXX extensively when I worked at Toyota. I used it on the OS/2 machines as well as the mainframe. I even used Visual REXX occasionally.

I loved REXX. Gave it up when I moved to perl though. It is a very nice scripting language with a rich feature set.

-- Gary F.

RetroGeek (206522) Re:some issues....

I also used REXX a lot, along with Visual REXX.

REXX has a wonderful String parsing capability.

And as for OS/2, as Rexx was the official scripting language, many applications came with REXX aware libraries. You could script directly for the application.

For instance you could write a script for an email program to manage incoming mail. Or for a FAX program, etc.

Yes other programs in the Windows (and Linux) world have macro languages, but each syntax is different. With OS/2 and REXX you only needed to learn ONE syntax, then use the libraries.

It was a great idea.

BiloxiGeek (872377)

GTIrc had hooks in it for REXX scripts to handle inbound and outbound IRC commands. PMMail was REXX aware as well. I wrote some scripts for both of those way back in the OS/2 3.x and Warp days. It was my first dive into scripting languages and I found it to be very useful.

Recommended Links

Softpanorama hot topic of the month

Softpanorama Recommended

Top articles

Sites

Sample Scripts -- Download scripts for Linux and/or Windows plus Open Object Rexx scripts for Linux. The interpreters below also come loaded with sample scripts.

Books -- The Rexx Programmers Reference covers all aspects of free Rexx and its tools in 690 pages for $25. Rexx books are available in dozens of languages.

Free Rexx interpreters For Linux

Regina: Highly portable, professional, runs everywhere.

Open Object Rexx: Fully object-oriented superset of classic procedural Rexx.

BRexx: Fastest Rexx with the smallest footprint.

Rexx/imc: Proven interpreter with a track record extending back a decade for support.

NetRexx: A "Rexx-like" language for Java environments. Use NetRexx to develop Java-compatible applications, applets, servlets, beans and components.

Free Rexx interpreters for other platforms

Reginald: Offers a high degree of Windows integration with Windows hooks and access to all DLLs.

r4: Adds tools for Windows programming from the command line.

Rexx for Palm OS: Standard Rexx for the Palm OS.

roo!: Fully object-oriented superset of classic procedural Rexx for Windows only.

Users Group -- Rexx Language Association

Forums -- In English, French, German, Russian, and Japanese. For Windows users and for mainframe users.



Etc

FAIR USE NOTICE This site contains copyrighted material the use of which has not always been specifically authorized by the copyright owner. We are making such material available in our efforts to advance understanding of environmental, political, human rights, economic, democracy, scientific, and social justice issues, etc. We believe this constitutes a 'fair use' of any such copyrighted material as provided for in section 107 of the US Copyright Law. In accordance with Title 17 U.S.C. Section 107, the material on this site is distributed without profit exclusivly for research and educational purposes.   If you wish to use copyrighted material from this site for purposes of your own that go beyond 'fair use', you must obtain permission from the copyright owner. 

ABUSE: IPs or network segments from which we detect a stream of probes might be blocked for no less then 90 days. Multiple types of probes increase this period.  

Society

Groupthink : Two Party System as Polyarchy : Corruption of Regulators : Bureaucracies : Understanding Micromanagers and Control Freaks : Toxic Managers :   Harvard Mafia : Diplomatic Communication : Surviving a Bad Performance Review : Insufficient Retirement Funds as Immanent Problem of Neoliberal Regime : PseudoScience : Who Rules America : Neoliberalism  : The Iron Law of Oligarchy : Libertarian Philosophy

Quotes

War and Peace : Skeptical Finance : John Kenneth Galbraith :Talleyrand : Oscar Wilde : Otto Von Bismarck : Keynes : George Carlin : Skeptics : Propaganda  : SE quotes : Language Design and Programming Quotes : Random IT-related quotesSomerset Maugham : Marcus Aurelius : Kurt Vonnegut : Eric Hoffer : Winston Churchill : Napoleon Bonaparte : Ambrose BierceBernard Shaw : Mark Twain Quotes

Bulletin:

Vol 25, No.12 (December, 2013) Rational Fools vs. Efficient Crooks The efficient markets hypothesis : Political Skeptic Bulletin, 2013 : Unemployment Bulletin, 2010 :  Vol 23, No.10 (October, 2011) An observation about corporate security departments : Slightly Skeptical Euromaydan Chronicles, June 2014 : Greenspan legacy bulletin, 2008 : Vol 25, No.10 (October, 2013) Cryptolocker Trojan (Win32/Crilock.A) : Vol 25, No.08 (August, 2013) Cloud providers as intelligence collection hubs : Financial Humor Bulletin, 2010 : Inequality Bulletin, 2009 : Financial Humor Bulletin, 2008 : Copyleft Problems Bulletin, 2004 : Financial Humor Bulletin, 2011 : Energy Bulletin, 2010 : Malware Protection Bulletin, 2010 : Vol 26, No.1 (January, 2013) Object-Oriented Cult : Political Skeptic Bulletin, 2011 : Vol 23, No.11 (November, 2011) Softpanorama classification of sysadmin horror stories : Vol 25, No.05 (May, 2013) Corporate bullshit as a communication method  : Vol 25, No.06 (June, 2013) A Note on the Relationship of Brooks Law and Conway Law

History:

Fifty glorious years (1950-2000): the triumph of the US computer engineering : Donald Knuth : TAoCP and its Influence of Computer Science : Richard Stallman : Linus Torvalds  : Larry Wall  : John K. Ousterhout : CTSS : Multix OS Unix History : Unix shell history : VI editor : History of pipes concept : Solaris : MS DOSProgramming Languages History : PL/1 : Simula 67 : C : History of GCC developmentScripting Languages : Perl history   : OS History : Mail : DNS : SSH : CPU Instruction Sets : SPARC systems 1987-2006 : Norton Commander : Norton Utilities : Norton Ghost : Frontpage history : Malware Defense History : GNU Screen : OSS early history

Classic books:

The Peter Principle : Parkinson Law : 1984 : The Mythical Man-MonthHow to Solve It by George Polya : The Art of Computer Programming : The Elements of Programming Style : The Unix Haterís Handbook : The Jargon file : The True Believer : Programming Pearls : The Good Soldier Svejk : The Power Elite

Most popular humor pages:

Manifest of the Softpanorama IT Slacker Society : Ten Commandments of the IT Slackers Society : Computer Humor Collection : BSD Logo Story : The Cuckoo's Egg : IT Slang : C++ Humor : ARE YOU A BBS ADDICT? : The Perl Purity Test : Object oriented programmers of all nations : Financial Humor : Financial Humor Bulletin, 2008 : Financial Humor Bulletin, 2010 : The Most Comprehensive Collection of Editor-related Humor : Programming Language Humor : Goldman Sachs related humor : Greenspan humor : C Humor : Scripting Humor : Real Programmers Humor : Web Humor : GPL-related Humor : OFM Humor : Politically Incorrect Humor : IDS Humor : "Linux Sucks" Humor : Russian Musical Humor : Best Russian Programmer Humor : Microsoft plans to buy Catholic Church : Richard Stallman Related Humor : Admin Humor : Perl-related Humor : Linus Torvalds Related humor : PseudoScience Related Humor : Networking Humor : Shell Humor : Financial Humor Bulletin, 2011 : Financial Humor Bulletin, 2012 : Financial Humor Bulletin, 2013 : Java Humor : Software Engineering Humor : Sun Solaris Related Humor : Education Humor : IBM Humor : Assembler-related Humor : VIM Humor : Computer Viruses Humor : Bright tomorrow is rescheduled to a day after tomorrow : Classic Computer Humor

The Last but not Least


Copyright © 1996-2016 by Dr. Nikolai Bezroukov. www.softpanorama.org was created as a service to the UN Sustainable Development Networking Programme (SDNP) in the author free time. This document is an industrial compilation designed and created exclusively for educational use and is distributed under the Softpanorama Content License.

The site uses AdSense so you need to be aware of Google privacy policy. You you do not want to be tracked by Google please disable Javascript for this site. This site is perfectly usable without Javascript.

Original materials copyright belong to respective owners. Quotes are made for educational purposes only in compliance with the fair use doctrine.

FAIR USE NOTICE This site contains copyrighted material the use of which has not always been specifically authorized by the copyright owner. We are making such material available to advance understanding of computer science, IT technology, economic, scientific, and social issues. We believe this constitutes a 'fair use' of any such copyrighted material as provided by section 107 of the US Copyright Law according to which such material can be distributed without profit exclusively for research and educational purposes.

This is a Spartan WHYFF (We Help You For Free) site written by people for whom English is not a native language. Grammar and spelling errors should be expected. The site contain some broken links as it develops like a living tree...

You can use PayPal to make a contribution, supporting development of this site and speed up access. In case softpanorama.org is down you can use the at softpanorama.info

Disclaimer:

The statements, views and opinions presented on this web page are those of the author (or referenced source) and are not endorsed by, nor do they necessarily reflect, the opinions of the author present and former employers, SDNP or any other organization the author may be associated with. We do not warrant the correctness of the information provided or its fitness for any purpose.

Last modified: September, 12, 2017