> On 19 Mar 2024, at 9:08 am, Andrew Rowley <and...@blackhillsoftware.com> 
> wrote:
> 
> On 19/03/2024 11:05 am, David Crayford wrote:
>> If you’re care so much about Java catching errors at compile time then why 
>> don’t you use Kotlin instead? NPE’s are one of the most common form of Java 
>> runtime errors that can be eliminated using Kotlins null safety.
> 
> Java's not perfect, but it is powerful and it is pretty much universally 
> available on z/OS. I'm writing functions for others to build on e.g.:
> 
> https://static.blackhillsoftware.com/easysmf-rti/javadoc/com.blackhillsoftware.smf.realtime/com/blackhillsoftware/smf/realtime/package-summary.html
> 
> So using/targeting the language that is most available makes sense.
> 
> But my question was: Why Python? What are the reasons for using Python rather 
> than e.g. Java?


We utilize both languages, selecting the most suitable for each task at hand. 
Our primary application runs on Java using the Spring Boot framework. We 
orchestrate records originating from various z/OS data sources, transforming 
them into JSON or other pluggable formats, and dispatch them to analytics 
platforms, AI engines, or serve Prometheus metrics. We've developed numerous 
Java record mapping classes generated by our tooling, which is crafted in 
Python using Jinja2 templates and YAML schemas. Opting for Java in this context 
wouldn't be pragmatic. Employing SnakeYAML and utilizing a map-like interface 
for traversing the object graph, or even resorting to POJO classes and beans, 
would entail significantly more effort. Python serves as our go-to choice for 
tooling, encompassing DevOps pipelines, and managing artifactory processes.

With AI technology already a reality, Python stands as the prevailing 
programming language of the moment. While much buzz surrounds the new Telum 
chip in the z16, the question remains: How do we leverage its potential? For 
this, we require Python libraries—either TensorFlow or PyTorch—running on s390x 
architecture (for now). Our AI products process mainframe data, including SMF, 
exclusively in Python. Noteworthy examples like ChatGPT and the Autopilot AI 
model training for Tesla automobiles are also Python-based. Additionally, 
automation tools like Red Hat Ansible, written in Python, are gaining traction 
on z/OS.

Concerns about uninitialized variables and similar issues need not weigh 
heavily on our minds. Modern IDEs catch such errors in real-time, offering 
robust support akin to Java, especially when configured to block commits if 
there are outstanding liniting warnings. While I personally use the enterprise 
versions of the IntelliJ suite, VS Code stands as a commendable and cost-free 
alternative.

Though the conversation initially compared REXX to Python, it's clear they are 
fundamentally different beasts and different ends of the spectrum. Python is a 
powerful and widely-used programming language with applications across various 
industries. It underpins critical systems like the backend of Instagram's 
photo-sharing platform, and is utilized by major players such as Tesla, 
Spotify, Uber, Amazon, NASA, Netflix, and Facebook. Notably, IBM is investing 
in Python for z/OS, with the ability to run on a zIIP with a 70% generosity 
factor and libraries facilitating integration with RACF, enabling the use of 
RACF keyrings with micro web frameworks like Flask. Certainly, IBM's investment 
in Java is crucial for the future sustainability of z/OS. On the other hand, 
REXX is likely supported as cheaply as possible by a very small team, along 
with TSO.


> 
> -- 
> Andrew Rowley
> Black Hill Software
> 
> ----------------------------------------------------------------------
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

Reply via email to