Leverage Existing Business Developers' Skills with EGL

Development Tools
  • Smaller Small Medium Big Bigger
  • Default Helvetica Segoe Georgia Times

In the i community, EGL's biggest strength may be simply that EGL does i better than anyone, and that makes it the integration technology of choice.


Over the past couple of years, I've talked quite a bit about Enterprise Generation Language (EGL) and its capabilities as a business development language. I started out as a skeptic, but I gradually came to admire the philosophy of the tool: let the business application developer focus on the business, not the technical minutiae. In today's article, I'll explain how that philosophy allows you to leverage your most important and valuable asset: your business developers.

A Quick Review of EGL

Let me first give a 30,000 foot view of EGL. And even at that level, I need to narrow the focus a little bit to specifically hone in on how EGL works with the IBM i community, because EGL is a huge tool. Since at its core EGL is built on a base of Java, EGL targets just about every platform on the planet, and that's just the server-side code. The other side, the rich client tooling, is built on JavaScript, so it runs in almost every browser. This combination makes EGL one of the most universal languages available today.


But that's not really the strength of the tool, especially within the context of this article. Other languages have a similar breadth of implementation; Java can run nearly anywhere and, with the addition of the Google Web Toolkit, you can even write Java code that is converted to JavaScript that can then run in your browser. Microsoft's .NET tooling can work on both the client and the server, albeit within the confines of the Microsoft environment. And both Java and .NET provide support for thick client programming, which is an area that EGL doesn't really concentrate on. So while EGL is indeed a broadly targeted tool, that alone doesn't make it unique.


Instead, where EGL really stands out is in its integration with other technologies. Java integrates very well with other Java and to a minor degree can work and play reasonably well with other technologies, at least at a very low level. Unfortunately, as the Java application development stack becomes more complex, reaching on up to things like portals, Java is less an integration environment than a predefined architecture. And of course the Microsoft strategy is almost the antithesis of technological cooperation. It's very much the .NET way or the highway.


EGL is different. EGL takes a page from its underlying foundation, Eclipse, in that it is first and foremost a framework meant to be extended. It is this extensibility and the tooling that enables it that gives EGL a substantial advantage over every other technology. In fact, the parallels to Eclipse are so strong that it makes sense to take a look at that now-venerable package. You may remember that when Eclipse first came on the scene, there were a number of competing tool sets, including the nascent Visual Studio suite, NetBeans, and even Eclipse's direct predecessor, VisualAge for Java. Most grew organically from preceding tools, which gave them an advantage in features and familiarity. The new Eclipse platform was a completely new environment, although fortunately the folks that built it were some really bright folks with no small knowledge of the IDE concept, having already created the VisualAge products.


But how in the world would this small, upstart tool actually compete with the established players? Why would someone want to throw away years of experience with another tool to use this little-known newcomer? Perhaps because it allows people to enhance the package themselves and build upon their own knowledge to extend the Integrated Development Environment (IDE) and make it ever more powerful. To be honest, I don't think even the original developers had any idea that this novel idea would take off and transform the IDE industry, but that's exactly what it did. Eclipse gave developers the ability to work "outside the box" and to integrate their own abilities with the tool rather than be limited by only what the tool provided.


One point needs to be made here about code generation. In a noble effort to help programmers be more productive, many IDEs provided pre-fabricated pieces of code via features with names like "snippets" or "wizards", or even worse as libraries included in the product's runtime, usually without source. These snippets made it very easy for even novice programmers to cobble together relatively complex applications in record time. However, the development time was rarely eliminated, it was simply postponed. It is a maxim among developers that the hard part of building an application is not the initial programming but the subsequent modification and debugging, and the programmers who relied heavily on tool-generated code without understanding the underlying architecture often found themselves in charge of an application without the skill required to maintain it. It was this gap between what could be built and what could be maintained that ultimately led to the demise of the code generator as a tool in many development shops.


Applying the Lessons of Eclipse to Application Development

Fast forward to the middle of this decade. The World Wide Web was fast becoming an integral focal point of business application development, and in turn the browser was quickly becoming the default interface to that new world. Advances in user interface design were fast and furious, and it seemed that a whole new generation of applications was just around the corner. However, that corner seemed to stay just out of reach, and the most common complaint from the development community was that the technology was just too complex. Just to create a "simple" application, one needed to have substantial if not expert skills in a multitude of technologies. Even in a homogeneous environment like Java, you still needed to know at a minimum Java, HTML, XML, and JavaScript--and at more than just an introductory level. This sort of knowledge made subfiles look relatively easy in comparison. And this was just the user interface; add into that advanced database knowledge, including SQL and its Java-enabling technology, JDBC, and finally that gave you enough knowledge to create relatively rudimentary applications.


This is the chaotic environment that business application developers found themselves in. RPG programmers in particular were hard-pressed to become conversant in all of this new technology; they had enough on their plates just trying to learn ILE and free-format RPG, all the while trying to address a backlog of user demands. Throw in the requirement of learning not one but multiple new programming languages and the task become overwhelming.


Some of the new tools made matters even worse. Through mechanisms such as coding by convention or more extensive wizards, specialty environments like Ruby on Rails or the venerable Visual Studio tools allowed even relatively inexperienced programmers (and in some cases, even end users!) to quickly knock out visually exciting applications in almost no time. PC-based with nimble interfaces, these "application generators" quickly became popular, especially in IBM i shops, where they offered a respite to the change-deluged developers. But just like code generators of yore, most application generators usually created code that was rigid in nature and inflexible in the face of changing requirements and technologies. Many a company found out about those limitations only after they were so far down the development path that the pain of switching to a new tool was greater than the pain of staying with the one they currently had.


EGL addressed this task a little differently. Rather than attempt to provide pre-designed applications in a sort of "fill in the blanks" approach, EGL instead focuses on eliminating the more tedious and error-prone aspects of today's architectures, using a simple, easy-to-understand syntax. While it does have some built-in application generation capabilities, I frankly never use them. But a large part of that decision is because I prefer to use RPG for all my business logic, and for that it's much easier to simply roll up my EGL sleeves and write the few lines of interface code required to call my existing business logic.


The beauty of EGL is that it understands traditional procedural programmers like me. With a few clicks, I can quickly identify an RPG program to call on a host. I can pass any sort of data to it, including most importantly "records," which in the RPG world are simply externally described data structures. EGL takes care of all of the data transformations, and I can focus on simply writing the call, a call that looks as simple as this:


     CALL ORDSVR(dsControl, dsData);


What you see is a simple call to a program with two records, each of which shows up in the RPG program as a data structure. What you don't see is all the technical machinations required in other languages to create a connection and convert the data and call the program and convert the returned data and so on. More importantly, though, is that once I've written that call, I can then wrapper it inside a function. In that function, I might call the program in a loop and build an array of records. EGL makes that very easy because I can define an array of any record, and the array will extend itself as I need it. Not only that, but business programmers will appreciate the fact that the first element in an array is index 1, not index 0! Any language that has a zero-th element and no primitive for fixed precision decimal numbers is not a business language. But I digress.


The important thing is that the idea of a record is fundamental to EGL. I'm not talking about an "object," although records do have some object-like characteristics. What I'm talking about here is the fact that an aggregation of data can be fundamentally created, changed, and passed from place to place without any low-level technical theatrics. This is what makes EGL a business language and what allows it to leverage your existing developers' skills. As long as you can make your business logic programs callable, you don't have to write a single line of business logic in anything other than the RPG (or COBOL) your current developers are comfortable with. They don't have to learn Java or PHP or any other language, and you don't have to rewrite (and re-test and re-debug) your applications.

So Why Is This So Important?

Ah finally, getting around to the point! And an important point it is. This record-centric nature of EGL is what makes it so easy to create not just pretty applications, but applications that are both pretty and functional as well. Take a look at Figure 1.



Figure 1: This thin client application uses an RPG server and took about ten minutes to create. (Click image to enlarge.)


First, I wrote the function that wrapped the call to the RPG program. The function was a dozen or so lines that simply retrieved the order header and then all of the lines and put them into an array. EGL allowed me to create a record that included both the header and the array of lines, and it was this complex record that the function returned to the user interface. It was then literally the work of 10 minutes to drag and drop the components of that complex structure onto the WYSIWYG editor to make the screen above.


Had I decided to stay with the thin client, I would then have turned the page over to someone with good Web skills to turn it into a pretty page using a Cascading Style Sheet. Hopefully, the corporation has a standard one, and the designer can use that.


That, however, isn't the half of it. I can also create a rich client using the exact same EGL function. The user interface design is a bit more complex, but the logic is still written in RPG! The underlying plumbing is pretty intense. The rich client is written in JavaScript and uses AJAX calls to invoke the RPG program on the host using an intermediate Web service. The beauty, though, is that you don't need to know any of that. A click here, a call there, and you're done. The EGL record type and indeed all the same EGL syntax is just as valid in the rich client as it is in the thin client and of course the RPG code is exactly the same. Talk about leveraging your assets!



Figure 2: This rich client uses the same business logic as the thin client.


The takeaway from this is simple: no matter what your user interface requirements, you can use EGL to develop them, but you don't have to rewrite a single line of business logic. If your logic isn't callable, you'll need to make it callable, but you'd have to do that no matter what architecture or technology you chose. But with EGL, once you've got callable business logic, the sky is the limit as to what you can do with it.


A little self-serving plug: this entire architecture is laid out in detail in my new book coming out in October. Look for it at the MC Press Store!



Joe Pluta

Joe Pluta is the founder and chief architect of Pluta Brothers Design, Inc. He has been extending the IBM midrange since the days of the IBM System/3. Joe uses WebSphere extensively, especially as the base for PSC/400, the only product that can move your legacy systems to the Web using simple green-screen commands. He has written several books, including Developing Web 2.0 Applications with EGL for IBM i, E-Deployment: The Fastest Path to the Web, Eclipse: Step by Step, and WDSC: Step by Step. Joe performs onsite mentoring and speaks at user groups around the country. You can reach him at

MC Press books written by Joe Pluta available now on the MC Press Bookstore.

Developing Web 2.0 Applications with EGL for IBM i Developing Web 2.0 Applications with EGL for IBM i
Joe Pluta introduces you to EGL Rich UI and IBM’s Rational Developer for the IBM i platform.
List Price $39.95

Now On Sale

WDSC: Step by Step WDSC: Step by Step
Discover incredibly powerful WDSC with this easy-to-understand yet thorough introduction.
List Price $74.95

Now On Sale

Eclipse: Step by Step Eclipse: Step by Step
Quickly get up to speed and productivity using Eclipse.
List Price $59.00

Now On Sale



Support MC Press Online





  • White Paper: Node.js for Enterprise IBM i Modernization

    SB Profound WP 5539

    If your business is thinking about modernizing your legacy IBM i (also known as AS/400 or iSeries) applications, you will want to read this white paper first!

    Download this paper and learn how Node.js can ensure that you:
    - Modernize on-time and budget - no more lengthy, costly, disruptive app rewrites!
    - Retain your IBM i systems of record
    - Find and hire new development talent
    - Integrate new Node.js applications with your existing RPG, Java, .Net, and PHP apps
    - Extend your IBM i capabilties to include Watson API, Cloud, and Internet of Things

    Read Node.js for Enterprise IBM i Modernization Now!


  • Profound Logic Solution Guide

    SB Profound WP 5539More than ever, there is a demand for IT to deliver innovation.
    Your IBM i has been an essential part of your business operations for years. However, your organization may struggle to maintain the current system and implement new projects.
    The thousands of customers we've worked with and surveyed state that expectations regarding the digital footprint and vision of the companyare not aligned with the current IT environment.

    Get your copy of this important guide today!


  • 2022 IBM i Marketplace Survey Results

    Fortra2022 marks the eighth edition of the IBM i Marketplace Survey Results. Each year, Fortra captures data on how businesses use the IBM i platform and the IT and cybersecurity initiatives it supports.

    Over the years, this survey has become a true industry benchmark, revealing to readers the trends that are shaping and driving the market and providing insight into what the future may bring for this technology.

  • Brunswick bowls a perfect 300 with LANSA!

    FortraBrunswick is the leader in bowling products, services, and industry expertise for the development and renovation of new and existing bowling centers and mixed-use recreation facilities across the entertainment industry. However, the lifeblood of Brunswick’s capital equipment business was running on a 15-year-old software application written in Visual Basic 6 (VB6) with a SQL Server back-end. The application was at the end of its life and needed to be replaced.
    With the help of Visual LANSA, they found an easy-to-use, long-term platform that enabled their team to collaborate, innovate, and integrate with existing systems and databases within a single platform.
    Read the case study to learn how they achieved success and increased the speed of development by 30% with Visual LANSA.


  • Progressive Web Apps: Create a Universal Experience Across All Devices

    LANSAProgressive Web Apps allow you to reach anyone, anywhere, and on any device with a single unified codebase. This means that your applications—regardless of browser, device, or platform—instantly become more reliable and consistent. They are the present and future of application development, and more and more businesses are catching on.
    Download this whitepaper and learn:

    • How PWAs support fast application development and streamline DevOps
    • How to give your business a competitive edge using PWAs
    • What makes progressive web apps so versatile, both online and offline



  • The Power of Coding in a Low-Code Solution

    LANSAWhen it comes to creating your business applications, there are hundreds of coding platforms and programming languages to choose from. These options range from very complex traditional programming languages to Low-Code platforms where sometimes no traditional coding experience is needed.
    Download our whitepaper, The Power of Writing Code in a Low-Code Solution, and:

    • Discover the benefits of Low-code's quick application creation
    • Understand the differences in model-based and language-based Low-Code platforms
    • Explore the strengths of LANSA's Low-Code Solution to Low-Code’s biggest drawbacks



  • Why Migrate When You Can Modernize?

    LANSABusiness users want new applications now. Market and regulatory pressures require faster application updates and delivery into production. Your IBM i developers may be approaching retirement, and you see no sure way to fill their positions with experienced developers. In addition, you may be caught between maintaining your existing applications and the uncertainty of moving to something new.
    In this white paper, you’ll learn how to think of these issues as opportunities rather than problems. We’ll explore motivations to migrate or modernize, their risks and considerations you should be aware of before embarking on a (migration or modernization) project.
    Lastly, we’ll discuss how modernizing IBM i applications with optimized business workflows, integration with other technologies and new mobile and web user interfaces will enable IT – and the business – to experience time-added value and much more.


  • UPDATED: Developer Kit: Making a Business Case for Modernization and Beyond

    Profound Logic Software, Inc.Having trouble getting management approval for modernization projects? The problem may be you're not speaking enough "business" to them.

    This Developer Kit provides you study-backed data and a ready-to-use business case template to help get your very next development project approved!

  • What to Do When Your AS/400 Talent Retires

    FortraIT managers hoping to find new IBM i talent are discovering that the pool of experienced RPG programmers and operators or administrators is small.

    This guide offers strategies and software suggestions to help you plan IT staffing and resources and smooth the transition after your AS/400 talent retires. Read on to learn:

    • Why IBM i skills depletion is a top concern
    • How leading organizations are coping
    • Where automation will make the biggest impact


  • Node.js on IBM i Webinar Series Pt. 2: Setting Up Your Development Tools

    Profound Logic Software, Inc.Have you been wondering about Node.js? Our free Node.js Webinar Series takes you from total beginner to creating a fully-functional IBM i Node.js business application. In Part 2, Brian May teaches you the different tooling options available for writing code, debugging, and using Git for version control. Attend this webinar to learn:

    • Different tools to develop Node.js applications on IBM i
    • Debugging Node.js
    • The basics of Git and tools to help those new to it
    • Using as a pre-built development environment



  • Expert Tips for IBM i Security: Beyond the Basics

    SB PowerTech WC GenericIn this session, IBM i security expert Robin Tatam provides a quick recap of IBM i security basics and guides you through some advanced cybersecurity techniques that can help you take data protection to the next level. Robin will cover:

    • Reducing the risk posed by special authorities
    • Establishing object-level security
    • Overseeing user actions and data access

    Don't miss this chance to take your knowledge of IBM i security beyond the basics.



  • 5 IBM i Security Quick Wins

    SB PowerTech WC GenericIn today’s threat landscape, upper management is laser-focused on cybersecurity. You need to make progress in securing your systems—and make it fast.
    There’s no shortage of actions you could take, but what tactics will actually deliver the results you need? And how can you find a security strategy that fits your budget and time constraints?
    Join top IBM i security expert Robin Tatam as he outlines the five fastest and most impactful changes you can make to strengthen IBM i security this year.
    Your system didn’t become unsecure overnight and you won’t be able to turn it around overnight either. But quick wins are possible with IBM i security, and Robin Tatam will show you how to achieve them.

  • Security Bulletin: Malware Infection Discovered on IBM i Server!

    SB PowerTech WC GenericMalicious programs can bring entire businesses to their knees—and IBM i shops are not immune. It’s critical to grasp the true impact malware can have on IBM i and the network that connects to it. Attend this webinar to gain a thorough understanding of the relationships between:

    • Viruses, native objects, and the integrated file system (IFS)
    • Power Systems and Windows-based viruses and malware
    • PC-based anti-virus scanning versus native IBM i scanning

    There are a number of ways you can minimize your exposure to viruses. IBM i security expert Sandi Moore explains the facts, including how to ensure you're fully protected and compliant with regulations such as PCI.



  • Encryption on IBM i Simplified

    SB PowerTech WC GenericDB2 Field Procedures (FieldProcs) were introduced in IBM i 7.1 and have greatly simplified encryption, often without requiring any application changes. Now you can quickly encrypt sensitive data on the IBM i including PII, PCI, PHI data in your physical files and tables.
    Watch this webinar to learn how you can quickly implement encryption on the IBM i. During the webinar, security expert Robin Tatam will show you how to:

    • Use Field Procedures to automate encryption and decryption
    • Restrict and mask field level access by user or group
    • Meet compliance requirements with effective key management and audit trails


  • Lessons Learned from IBM i Cyber Attacks

    SB PowerTech WC GenericDespite the many options IBM has provided to protect your systems and data, many organizations still struggle to apply appropriate security controls.
    In this webinar, you'll get insight into how the criminals accessed these systems, the fallout from these attacks, and how the incidents could have been avoided by following security best practices.

    • Learn which security gaps cyber criminals love most
    • Find out how other IBM i organizations have fallen victim
    • Get the details on policies and processes you can implement to protect your organization, even when staff works from home

    You will learn the steps you can take to avoid the mistakes made in these examples, as well as other inadequate and misconfigured settings that put businesses at risk.



  • The Power of Coding in a Low-Code Solution

    SB PowerTech WC GenericWhen it comes to creating your business applications, there are hundreds of coding platforms and programming languages to choose from. These options range from very complex traditional programming languages to Low-Code platforms where sometimes no traditional coding experience is needed.
    Download our whitepaper, The Power of Writing Code in a Low-Code Solution, and:

    • Discover the benefits of Low-code's quick application creation
    • Understand the differences in model-based and language-based Low-Code platforms
    • Explore the strengths of LANSA's Low-Code Solution to Low-Code’s biggest drawbacks



  • Node Webinar Series Pt. 1: The World of Node.js on IBM i

    SB Profound WC GenericHave you been wondering about Node.js? Our free Node.js Webinar Series takes you from total beginner to creating a fully-functional IBM i Node.js business application.
    Part 1 will teach you what Node.js is, why it's a great option for IBM i shops, and how to take advantage of the ecosystem surrounding Node.
    In addition to background information, our Director of Product Development Scott Klement will demonstrate applications that take advantage of the Node Package Manager (npm).
    Watch Now.

  • The Biggest Mistakes in IBM i Security

    SB Profound WC Generic The Biggest Mistakes in IBM i Security
    Here’s the harsh reality: cybersecurity pros have to get their jobs right every single day, while an attacker only has to succeed once to do incredible damage.
    Whether that’s thousands of exposed records, millions of dollars in fines and legal fees, or diminished share value, it’s easy to judge organizations that fall victim. IBM i enjoys an enviable reputation for security, but no system is impervious to mistakes.
    Join this webinar to learn about the biggest errors made when securing a Power Systems server.
    This knowledge is critical for ensuring integrity of your application data and preventing you from becoming the next Equifax. It’s also essential for complying with all formal regulations, including SOX, PCI, GDPR, and HIPAA
    Watch Now.

  • Comply in 5! Well, actually UNDER 5 minutes!!

    SB CYBRA PPL 5382

    TRY the one package that solves all your document design and printing challenges on all your platforms.

    Produce bar code labels, electronic forms, ad hoc reports, and RFID tags – without programming! MarkMagic is the only document design and print solution that combines report writing, WYSIWYG label and forms design, and conditional printing in one integrated product.

    Request your trial now!

  • Backup and Recovery on IBM i: Your Strategy for the Unexpected

    FortraRobot automates the routine tasks of iSeries backup and recovery, saving you time and money and making the process safer and more reliable. Automate your backups with the Robot Backup and Recovery Solution. Key features include:
    - Simplified backup procedures
    - Easy data encryption
    - Save media management
    - Guided restoration
    - Seamless product integration
    Make sure your data survives when catastrophe hits. Try the Robot Backup and Recovery Solution FREE for 30 days.

  • Manage IBM i Messages by Exception with Robot

    SB HelpSystems SC 5413Managing messages on your IBM i can be more than a full-time job if you have to do it manually. How can you be sure you won’t miss important system events?
    Automate your message center with the Robot Message Management Solution. Key features include:
    - Automated message management
    - Tailored notifications and automatic escalation
    - System-wide control of your IBM i partitions
    - Two-way system notifications from your mobile device
    - Seamless product integration
    Try the Robot Message Management Solution FREE for 30 days.

  • Easiest Way to Save Money? Stop Printing IBM i Reports

    FortraRobot automates report bursting, distribution, bundling, and archiving, and offers secure, selective online report viewing.
    Manage your reports with the Robot Report Management Solution. Key features include:

    - Automated report distribution
    - View online without delay
    - Browser interface to make notes
    - Custom retention capabilities
    - Seamless product integration
    Rerun another report? Never again. Try the Robot Report Management Solution FREE for 30 days.

  • Hassle-Free IBM i Operations around the Clock

    SB HelpSystems SC 5413For over 30 years, Robot has been a leader in systems management for IBM i.
    Manage your job schedule with the Robot Job Scheduling Solution. Key features include:
    - Automated batch, interactive, and cross-platform scheduling
    - Event-driven dependency processing
    - Centralized monitoring and reporting
    - Audit log and ready-to-use reports
    - Seamless product integration
    Scale your software, not your staff. Try the Robot Job Scheduling Solution FREE for 30 days.