{"id":9721,"date":"2020-09-17T08:00:00","date_gmt":"2020-09-17T08:00:00","guid":{"rendered":"https:\/\/www.experfy.com\/blog\/?p=9721"},"modified":"2023-11-06T17:20:37","modified_gmt":"2023-11-06T17:20:37","slug":"who-remembers-rexx","status":"publish","type":"post","link":"https:\/\/www.experfy.com\/blog\/software-ux-ui\/who-remembers-rexx\/","title":{"rendered":"Who remembers Rexx?"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"9721\" class=\"elementor elementor-9721\" data-elementor-post-type=\"post\">\n\t\t\t\t\t\t<section class=\"has_eae_slider elementor-section elementor-top-section elementor-element elementor-element-553e5661 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"553e5661\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"has_eae_slider elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-37bf1a36\" data-id=\"37bf1a36\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-6973881d elementor-widget elementor-widget-text-editor\" data-id=\"6973881d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\n<p>When I was working on VM back in the 1980s, we became aware of, and then wholeheartedly adopted this new scripting language called REXX. We started writing REXX EXECs, as everyone seemed to call them then, to do the sort of simple stuff that we had used EXEC and EXEC2 to do before. REXX was easy to read, and fairly easy to learn and write. Everyone was creating REXX EXECs. And soon MVS people wanted to use REXX as well. And at one stage, it was being ported to lots of non-IBM platforms. It was a scripting mega-star. The Python of its day. I wanted to look at its history and see where it was today.<\/p>\n\n\n\n<p>The hero of the story is Mile Cowlishaw who created Rexx in his own time as a replacement for EXEC and EXEC2. That was between 1979 and 1982. Rexx was designed as a scripting language that was easy, fast, reliable, and error-free. It was originally called Rex (Reformed Executor), but there were other products around called Rex, so it became Rexx (REstructured eXtended eXecutor). And, it was written in uppercase, as REXX, because most things (especially code) were written in caps in those days. Cowlishaw also planned for Rexx to be a simplified and easier to learn version of the PL\/I, although he did introduce some differences. It became an IBM product in 1982. I think I first started using it in 1984 \u2013 rewriting old EXECs and creating new utilities for VM.<\/p>\n\n\n\n<p>As I said, it was very popular, and IBM released versions of it for MVS TSO\/E, AS\/400, VSE\/ESA, AIX, PC DOS, and OS\/2. There were also versions of Rexx available for Novell NetWare, Windows, Java, and Linux. The PC DOS version appeared in 1984\/5. The first compiler version came out in 1987, written for CMS by Lundin and Woodruff. There were even versions for the Atari, AmigaOS, Unix (many variants), Solaris, DEC, Windows, Windows CE, Pocket PC, DOS, Palm OS, QNX, OS\/2, Linux, BeOS, EPOC32\/Symbian, AtheOS, OpenVMS, Apple Macintosh, and Mac OS X.<\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8f162fa elementor-widget elementor-widget-text-editor\" data-id=\"8f162fa\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\n<p>There was NetRexx, which compiles to Java byte-code through Java source code; this has no reserved keywords at all, and uses the Java object model, and is therefore not generally upwards-compatible with \u2018classic\u2019 Rexx, but is interesting all the same, and it was designed by Mike Cowlishaw. In its early days, it was associated with the unloved OS\/2 operating system<\/p>\n\n\n\n<p>In 2005, IBM released their Open Object Rexx (ooRexx), which contains a Windows Script Host (WSH) scripting engine. This allows users to program their Windows operating system and applications with Rexx in the same way as using Visual Basic and Jscript. Both NetRexx and ooRexx are open source now.<\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4ff8ddb elementor-widget elementor-widget-text-editor\" data-id=\"4ff8ddb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\n<p>In 1990, the first independent Rexx symposium was held, which led to the forming of the REXX Language Association. In 1996, the American National Standards Institute (ANSI) published a standard for Rexx: ANSI X3.274\u20131996 \u201cInformation Technology \u2013 Programming Language REXX\u201d. The Standard was renewed in 2006.<\/p>\n\n\n\n<p>Here\u2019s a simple dataset member:<br \/>\/* REXX *\/clearsay &#8220;hello world&#8221;exit<br \/>It can then be run from TSO using the command:<br \/>tso exec &#8216;filename (membername)&#8217;<br \/>More recently, users can run Rexx from Zowe using the CLI from a Windows, Linux, or Mac console:<br \/>zowe tso issue command &#8220;exec &#8216;filename(membername)'&#8221; \u2014 ssm<br \/>A commercial Rexx compiler can produce native object code, which is a good way of optimizing performance.<\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-78f5552 elementor-widget elementor-widget-text-editor\" data-id=\"78f5552\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\n<p>The popularity of Rexx probably peaked in the 1990s. But there is still lots of code written in Rexx that gets used every day. Even so, in 2020 there are still a lot of z\/OS (MVS) batch jobs that are using Rexx procs, although, perhaps, fewer and fewer people maintain these procs. Having said that, there are groups on LinkedIn for \u2018rexx programming\u2019 and \u2018Programming in REXX\u2019. There was a huge amount of stuff written in REXX. People used it for system user exits, or instead of CLISTs for ISPF dialogs. It was a quick way to write some code to test something out. And those people still using it are very enthusiastic about it.<\/p>\n\n\n\n<p>It&#8217;s great to see that Rexx is still alive and well. It\u2019s probably still worth learning because so many mainframe tasks can be done so quickly and easily using. It may also be worth looking at some of those older REXX routines that run in batch to see whether their performance could be improved. It\u2019s a shame to see that Rexx is in many ways being neglected at many sites. After all, it is an amazingly powerful language and it is very easy to learn and use. And, longevity isn\u2019t a bad thing in mainframe computing. So, it\u2019s still remembered at many sites, but perhaps not as well as it should be.<\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Rexx, scripting language in the 1980s, was a scripting mega-star. The Python of its day. REXX was easy to read, and fairly easy to learn and write. This article looks at its history and sees where it was today.<\/p>\n","protected":false},"author":696,"featured_media":9722,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"content-type":"","footnotes":""},"categories":[200],"tags":[637,638],"ppma_author":[3497],"class_list":["post-9721","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-software-ux-ui","tag-rexx","tag-scripting-language"],"authors":[{"term_id":3497,"user_id":696,"is_guest":0,"slug":"trevor-eddolls","display_name":"Trevor Eddolls","avatar_url":"https:\/\/www.experfy.com\/blog\/wp-content\/uploads\/2020\/04\/medium_c0bcd8d5-35e9-492d-8082-c20fbfbd588a-150x150.jpg","user_url":"https:\/\/itech-ed.com\/%20","last_name":"Eddolls","first_name":"Trevor","job_title":"","description":"Trevor Eddolls is Head at the iTech-Ed Group, which comprises the mainframe and IT consultancy. A popular speaker and blogger, he is also clinical director at iTech-Ed Hypnotherapy, head of IT for the AfSFH Exec., and director of training for SFH+. He is also editorial director for the Arcati Mainframe Yearbook, and published three mainframe-related books and six books on hypnotherapy."}],"_links":{"self":[{"href":"https:\/\/www.experfy.com\/blog\/wp-json\/wp\/v2\/posts\/9721","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.experfy.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.experfy.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.experfy.com\/blog\/wp-json\/wp\/v2\/users\/696"}],"replies":[{"embeddable":true,"href":"https:\/\/www.experfy.com\/blog\/wp-json\/wp\/v2\/comments?post=9721"}],"version-history":[{"count":4,"href":"https:\/\/www.experfy.com\/blog\/wp-json\/wp\/v2\/posts\/9721\/revisions"}],"predecessor-version":[{"id":33920,"href":"https:\/\/www.experfy.com\/blog\/wp-json\/wp\/v2\/posts\/9721\/revisions\/33920"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.experfy.com\/blog\/wp-json\/wp\/v2\/media\/9722"}],"wp:attachment":[{"href":"https:\/\/www.experfy.com\/blog\/wp-json\/wp\/v2\/media?parent=9721"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.experfy.com\/blog\/wp-json\/wp\/v2\/categories?post=9721"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.experfy.com\/blog\/wp-json\/wp\/v2\/tags?post=9721"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.experfy.com\/blog\/wp-json\/wp\/v2\/ppma_author?post=9721"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}