23
Mon, Dec
3 New Articles

Leverage Existing Business Developers' Skills with EGL

Development Tools
Typography
  • 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.

 

081009PlutaFigure1

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!

 

081009PlutaFigure2

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!

 

 

BLOG COMMENTS POWERED BY DISQUS

LATEST COMMENTS

Support MC Press Online

$

Book Reviews

Resource Center

  • SB Profound WC 5536 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. You can find Part 1 here. In Part 2 of our free Node.js Webinar Series, Brian May teaches you the different tooling options available for writing code, debugging, and using Git for version control. Brian will briefly discuss the different tools available, and demonstrate his preferred setup for Node development on IBM i or any platform. Attend this webinar to learn:

  • 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 company are not aligned with the current IT environment.

  • SB HelpSystems ROBOT Generic IBM announced the E1080 servers using the latest Power10 processor in September 2021. The most powerful processor from IBM to date, Power10 is designed to handle the demands of doing business in today’s high-tech atmosphere, including running cloud applications, supporting big data, and managing AI workloads. But what does Power10 mean for your data center? In this recorded webinar, IBMers Dan Sundt and Dylan Boday join IBM Power Champion Tom Huntington for a discussion on why Power10 technology is the right strategic investment if you run IBM i, AIX, or Linux. In this action-packed hour, Tom will share trends from the IBM i and AIX user communities while Dan and Dylan dive into the tech specs for key hardware, including:

  • Magic MarkTRY 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. Make sure your data survives when catastrophe hits. Request your trial now!  Request Now.

  • SB HelpSystems ROBOT GenericForms of ransomware has been around for over 30 years, and with more and more organizations suffering attacks each year, it continues to endure. What has made ransomware such a durable threat and what is the best way to combat it? In order to prevent ransomware, organizations must first understand how it works.

  • SB HelpSystems ROBOT GenericIT security is a top priority for businesses around the world, but most IBM i pros don’t know where to begin—and most cybersecurity experts don’t know IBM i. In this session, Robin Tatam explores the business impact of lax IBM i security, the top vulnerabilities putting IBM i at risk, and the steps you can take to protect your organization. If you’re looking to avoid unexpected downtime or corrupted data, you don’t want to miss this session.

  • SB HelpSystems ROBOT GenericCan you trust all of your users all of the time? A typical end user receives 16 malicious emails each month, but only 17 percent of these phishing campaigns are reported to IT. Once an attack is underway, most organizations won’t discover the breach until six months later. A staggering amount of damage can occur in that time. Despite these risks, 93 percent of organizations are leaving their IBM i systems vulnerable to cybercrime. In this on-demand webinar, IBM i security experts Robin Tatam and Sandi Moore will reveal:

  • FORTRA Disaster protection is vital to every business. Yet, it often consists of patched together procedures that are prone to error. From automatic backups to data encryption to media management, Robot automates the routine (yet often complex) 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:

  • FORTRAManaging messages on your IBM i can be more than a full-time job if you have to do it manually. Messages need a response and resources must be monitored—often over multiple systems and across platforms. 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:

  • FORTRAThe thought of printing, distributing, and storing iSeries reports manually may reduce you to tears. Paper and labor costs associated with report generation can spiral out of control. Mountains of paper threaten to swamp your files. Robot 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:

  • FORTRAFor over 30 years, Robot has been a leader in systems management for IBM i. With batch job creation and scheduling at its core, the Robot Job Scheduling Solution reduces the opportunity for human error and helps you maintain service levels, automating even the biggest, most complex runbooks. Manage your job schedule with the Robot Job Scheduling Solution. Key features include:

  • LANSA Business 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.

  • 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:

  • LANSASupply Chain is becoming increasingly complex and unpredictable. From raw materials for manufacturing to food supply chains, the journey from source to production to delivery to consumers is marred with inefficiencies, manual processes, shortages, recalls, counterfeits, and scandals. In this webinar, we discuss how:

  • The MC Resource Centers bring you the widest selection of white papers, trial software, and on-demand webcasts for you to choose from. >> Review the list of White Papers, Trial Software or On-Demand Webcast at the MC Press Resource Center. >> Add the items to yru Cart and complet he checkout process and submit

  • Profound Logic 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.

  • SB Profound WC 5536Join us for this hour-long webcast that will explore:

  • Fortra IT managers hoping to find new IBM i talent are discovering that the pool of experienced RPG programmers and operators or administrators with intimate knowledge of the operating system and the applications that run on it is small. This begs the question: How will you manage the platform that supports such a big part of your business? 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: