IBM Open Enterprise SDK for Go is an industry-standard Go compiler optimized for the z/OS® platform. The Go compiler leverages the latest z/Architecture® instructions to provide an exceptional implementation on the z/OS platform.
The rich Go ecosystem of packages enables clients to develop and run new applications, especially those that enable the cloud on z/OS. Because of the ecosystem of Go modules and the small size of the language's syntax, application developers typically can deliver Go applications in a shorter time and with fewer new lines of code, resulting in lower costs.
Summary of features and enhancements for Open Enterprise SDK for Go
Use Go, one of the most popular programming languages, to enable Z clients to develop applications with Go on z/OS.
Streamline automation operations for multicloud, hybrid IT and DevOps environment.
Convert your Go source code for applications into machine-level code that can be executed directly by z/OS, rather than through an interpreter.
Support scalability, with goroutines and channels to raise concurrency to true parallel programming.
Learn the language quickly as Go combines the best features of other programming language into one easy-to-understand language.
Perform garbage collection, or automatic memory management, with extensive control over memory allocation.
Use native Go compiler to enable new and existing applications written in Go to run on z/OS.
Bring a powerful framework for building fast and scalable applications to z/OS and write applications in support of cloud infrastructures. Increase throughput and reduce response time by colocating data and existing applications. You can control which data will be exposed externally, while keeping all of your proprietary data secure inside the IBM Z platform.
Use the extensive set of standard libraries and additional third-party packages. It includes highly used programming tasks in areas like string operations, cryptology, archiving, mail operations, Unicode encoding and decoding, math routines, networking, error manipulation, operating system interfaces and other popular functions. These packages encourage code reuse.
Get the growing collection of freely available packages from the Go community. These modules are accessible from the Golang community website, and developers can make reuse of them to fulfill common programming tasks, shorten development times and reduce costs. The continued contribution of modules from the community ensures a steady stream of new libraries and tools.
Leverage this open-source language that is continually being improved by the open-source community. Go boasts an ever increasing and passionate community of coders and enthusiasts who have driven its development and support. Its ongoing refinement helps ensure that Go solutions are as mature as possible. This community also contributes numerous additional modules to the Go collection of packages.
Take advantage of the value unit-based pricing. It is available under eligible IBM Z International Program License Agreement programs to enable a lower cost of incremental growth and enterprise aggregation, with resulting price benefits for you.
The support for the Go recordio module provides capability of direct access to VSAM data sets so that you can access their existing VSAM record data more easily. Operations are implemented through the z/OS Language Environment interfaces without any requirement to call C from Go. Inputs and outputs from these operations are uniform byte slices, which eliminates the need for error-prone size specifications.
Open Enterprise SDK for Go provides extensive support for a wide variety of cryptographic algorithms, which are crucial for modern applications to secure data and communications.
The PAX download format is popular in UNIX environments, including z/OS UNIX System Services, and offers a DIY installation experience. SMP/E installable images and their fix packs can be managed in the convenient SMP/E tracking tool. The SMP/E Bill of Materials include an Entitlement memo to access Go container image available to download on IBM Cloud Container Registry.
Upgrade to world-class IBM support to open service requests, which are addressed in documented turnaround times.
PAX archive installable format for a DIY installation. Use your existing IBMid for access or create one upon registration.
SMP/E (CBPDO, ServerPac) installable format can easily manage updates. Recommended for production deployments. Available through Shopz.
No license charge
Run your own applications
Full functionality
Includes Go on z/OS container image
IBM Software Subscription and Support (S&S)
No
Optional
Discover how Go recordio module is used to establish an employee database with a command line interface using key-sequenced data set (KSDS).
Discover how to run popular Go applications on IBM Z hardware by porting applications to z/OS for greater reliability and resiliency.
Use the cgo functionality to execute a COBOL function. Explore how this can be achieved for a simple COBOL procedure, which is almost identical to PL/I.
Co-locate Go applications with critical assets on z/OS, for reduced response times and increased throughput.
Get direct access to VSAM database with Go recordio module on z/OS without using cgo.
Use Go to call an outside script or binary program to achieve program interoperability.
Use Go packages to create a RESTful server and localize your package with no access to the internet.
Use Protocol Buffers to serialize data and run a client-server application with gRPC in Go.
Experience measurable performance improvements, when compared with a REST counterpart, with a GraphQL implementation.
Hardware requirements
Software requirements
Open Enterprise SDK for Go is available in three installation formats, SMP/E, PAX, and the container image. Select the installation format that applies to you:
Learn how to use Go-based utilities to achieve faster execution and lower cost for customers.
Use IBM Open Enterprise SDK for Go to accelerate the code for the crypto algorithms to make it run multiple times faster and maintain security for crypto operations.
Use the Wharf tool to automatically port Go modules to z/OS, making it much easier to use the thousands of open-source modules available from the community.
Learn how to use the core debug functionality of z/OS debugger to debug Go applications.
Learn how to debug a program compiled with IBM Open Enterprise SDK for Go using z/OS debugger.
Get an overview of the features and benefits of the Go programming language on the z/OS platform.
Check out the latest Terminal Talk Podcast featuring the popular Go language and its powerful framework on z/OS.
Learn the difference between the two editions that Open Enterprise SDK for Go offers: PAX and SMP/E. Also, find out about the IBM Z Xplore bonus that provides a free opportunity to explore and learn more about Open Enterprise SDK for Go.
Explore the organization behind Go (or Golang), which supports and facilitates the growth of a diverse and international Go community.
Several tools written in Go have been upstreamed to zOpen Tools. Some of the top tools include Github CLI, Github runner and more.
It is available with no license charge. Optional Subscription and Support (S&S) is available.
Go applications are not IBM z Integrated Information Processor (zIIP)-eligible. Clients may be eligible for Tailored Fit Pricing under New Application Solution pricing model for new production workloads to isolate Go on z/OS workloads without impacting overall costs of existing workloads. Talk to your IBM account representative.
One of the fastest growing programming languages natively on the platform and take advantage of Python’s rich ecosystem of modules to develop new applications.
At no charge, provides a security-rich, module-driven and highly scalable approach to accelerate digital transformation on IBM Z.
A solution that enables cloud-native development and testing for z/OS on IBM Cloud as your own protected space with the security of a private cloud and the agility of a publish cloud.
Industry-standard cloud technology that enable you to build your z/OS UNIX applications in container images.