> 1. Python programmers are more plentiful > While REXX is easy to learn, it is not easy to find REXX programmers outside > of the z/OS world.
Just as it is not easy to find Python programmers inside the z/OS and z/VM worlds. > Face it, there are some esoteric ways to use REXX that would confuse a newbie. Every language has its ideosyncrasies. 2. Python’s structures make it more readable Both are easy to read once you know them. I would consider REXX's control structures to be more obvious to the neophyte; certainly Python's use of "|" is highly unintuitive. Also, why Python rather than, e.g., Go, Lua, Perl, Ruby, Rust? > the rules for coding in Python makes the code more legible. That's debateable. > If you are using a workstation editor like VSCode or Atom, they provide > formatters to make writing code easier. Available for REXX. > 3. Python is easily extendable As is REXX > Most of the world relies on C code as its system interface language. You can write REXX-callable routines in C, with access to REXX variables. AFAIK, a C routine doesn't have access to Python variables. 4. Python has more supporting functions True, but fewer supporting functions fo z operating systems and applications. There is a plethora of packages in Python making it easy to take advantage of functionality that someone else has created. Not only does this allow people to take advantage of cool Python functions, but it also allows us to create packages that abstract some of the particularly esoteric z/OS components to make it easy for future sysprogs to use. There is already work in this space. In addition to packages that support simple connections to the HMC, or 3270 data streams, there is an Open Source repository for Python base building blocks at https://github.com/ambitus/pyzkiln. Look at the programmers working together instead reading this article!1. Python programmers are more plentiful While REXX is easy to learn, it is not easy to find REXX programmers outside of the z/OS world. When bringing new people into the company, it is much easier to find people who understand Python. Job listings with Python as the language will probably be less overlooked than REXX. Sure, those people will have to learn z/OS constructs, but they won’t also have to learn a new language. While REXX is easy to learn, you still must learn it. A tyro trying to pick up the language while they debug or change existing REXX code is challenging. Face it, there are some esoteric ways to use REXX that would confuse a newbie. 2. Python’s structures make it more readable Python code forces a more readable code pattern. While it would take a bit of work for someone who is new to the Python language to get right all the language intricacies (especially if they are writing their code in ISPF), the rules for coding in Python makes the code more legible. If you are using a workstation editor like VSCode or Atom, they provide formatters to make writing code easier. In addition to the fact that Python code itself tends to be simpler to understand, these editors along with its formatters help enforce Pythonic style. Pythonic is a coding style that makes code concise, clear, and less complex. Overall, the entire Python community drives code that is easier to follow. This is going to be critical for new people trying to learn not only what you are trying to do, but also how the system works. 3. Python is easily extendable Most of the world relies on C code as its system interface language. Platforms like Linux are mostly written in C. Even the z/OS world can leverage the C language as an access language to Assembler functionality. Python is easily extendable with C. Most of the IBM Z Open Automation Utilities are written in C and provides Python modules that leverage the C infrastructure to make use of lower system capabilities. This will only grow in the future as the open-source community takes advantage of such extensions. It is not hard to foresee a world where Python modules interface to z/OS assembler macros making the system much more approachable to new people interested in the platform. 4. Python has more supporting functions > 5. Python vulnerability checking Do you know of any REXX vulnerabilities? > 6. Python is used to manage automated activities on all other systems So are a plethera of other languages, including REXX. > Not a knock on REXX Certainly damning with fain praise. REXX has things that Python lacks, which you failed to mention. 7. Python has tools to aid in documentation Agreed. 8. Python is the language of AI LISP? Prolog? -- Shmuel (Seymour J.) Metz http://mason.gmu.edu/~smetz3 ________________________________________ From: IBM Mainframe Discussion List [[email protected]] on behalf of Mark Regan [[email protected]] Sent: Saturday, December 18, 2021 8:32 AM To: [email protected] Subject: Fwd: Top 8 Reasons for using Python instead of REXX for z/OS Some of you may have already seen this since it was also shared on LinkedIn, which is where I saw it. https://secure-web.cisco.com/1PyIIB0zpqeJLOtHjaEzD1ysf4h_PYPo4cs9HwJdswk4mJd2aRbhiohKPR9C8Jbs1GQKBbRSeXe0aegB5BaWRwU2fidk8mXrVUbb9Zywljd0HJWXA22qvHLZh-F7hKefh3hU5t71LDWryCHlwh6QC9wX66k-NoK3TUIEEYdpneUXIVHnDxpINZ4eeZ_b3C712YqWXRVO292vbPe6QDkfKjlXcj8uMnO0QwBYaKB9wMaTXLZieda5n0W_v_TldvQBAhN41pLuO6FhXuW6nOvKPf2gRKLi2H9ELIY6nauiw3TaFr8FIbnTVWx4ApZOqRux90IJVdEmPgJVNI5VnoOA_0VU4b9oa0XcwW-COBYoZnVg8cXemmJEI6gtPq9I52LX93PARhUh3kierPz77pqVX1k-pANI9wzJkQx5gvsVGmrGMRdRculQxOhvzmhnut-TavXNxySqkBSJh7wSRZbZ1Qw/https%3A%2F%2Fmedium.com%2Ftheropod%2Ftop-8-reasons-for-using-python-instead-of-rexx-for-z-os-a6b67f8210a6 Regards, Mark Regan, K8MTR, EN80tg CTO1 USNR-Retired (1969-1979 active; 1979-1991, reserves; including two years with the Ohio Air National Guard) Nationwide Insurance, Retired, 1986-2017 (z/OS Network Software Consultant) Email: [email protected] LinkedIn: https://www.linkedin.com/in/mark-t-regan ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [email protected] with the message: INFO IBM-MAIN ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [email protected] with the message: INFO IBM-MAIN
