PHP Changes IBM i Shops, And They Change The PHP Community
February 16, 2015 Dan Burger
What has PHP done to buck the trend in IBM midrange shops to resist change? Fear of disrupting traditional business policies and procedures is not unusual and it’s not unique to the IBM i community. Change is scary, but it can also be exciting. PHP has brought about a pretty fair share of change. And in the process, PHP has changed. The IBM i PHP community has changed, too.
There are a lot of companies that leverage their RPG development staffs by cross-training them in PHP, a server-side scripting language designed for Web development but also used as a general purpose programming language. According to Mike Pavlak, a guy who has introduced more RPG developers to PHP than there are stars in the sky, something close to 70 percent of the IBM i shops that choose to use PHP train their existing RPG staff. That number used to be 100 percent. So there you have an example of one of the changes that is occurring.
“We’re getting new developers on IBM i who have never heard of an IBM i before. They are PHP developers who worked on Linux or Windows or Mac. It’s bringing more developers to the platform,” Pavlak notes.
These developers that are new to the IBM i platform are dependent on RPG developers and other in-house code wizards to learn the mysterious IBM midrange computer. They don’t have to learn a lot because they don’t have to have access to a lot. They need to be able to run the PHP stack and they need to know where the data resides. An important part of the IBM i education is learning to use graphical tools such as Navigator for i, Database Navigator, and Visual Explain.
Pointing out the modern tools available to programmers is a side effect of the modernization mission. It helps raise the bar on RPG. We encourage companies to use the modern database tools.
Pavlak, a solution consultant with Zend Technologies since 2005, says another change of scenery in PHP-centric development on IBM i that he’s noticed is the increasing focus on database modernization.
“When you bring in developers from other platforms who have worked with ‘fully normalized’ databases, things change. They often see a database that dates back 30 and 40 years to the days when data had to fit on a punch card,” he says.
There was a different thought process back then, but to a large degree it’s persisted through the years, aided by the “if it ain’t broke” principle. And in a significant number of instances, applications have not evolved enough to necessitate database changes.
“I would say, without question, when an application is being migrated to PHP or PHP is being added onto the application, companies are looking at the database,” Pavlak says. “Another change instigated by the new-to-IBM i developers is pressure to move in the direction of data-centric programming. I am very much in line with data-centric programming, however, there is still a large percentage of people who have not learned this stuff yet.”
PHP can work directly with the database using SQL as the data access mechanism. Pavlak says all his IBM i customers are using some flavor of SQL in their applications. In some cases they are using all SQL, while in other cases it’s a combination of SQL and stored procedures. Even the 20 percent that are heavily reliant on RPG are still using SQL from a data access standpoint.
While on the subject of changes in PHP that affect the IBM i users, this discussion took a turn in the direction of Free Format RPG and whether it fits into the modernization projects Pavlak ventures into.
“I see excitement about Free Form RPG,” he says, “but it’s being used tactically when doing code surgery. They are not going at this as if it’s necessary to change the entire code base. They are going one program at a time. I’ve only had a handful of customers who believed it was necessary. However, when they open an application to do maintenance on it, they do move the app to Free Format. And when they are writing new RPG, they use Free Format, too.”
Yet another aspect of PHP landscape that has changed during recent times is the professional services business. Services have grown in all areas of IT, but for Pavlak’s employer, about 60 percent of the customers who do business with the company also sign up for professional services contracts. The majority of that is directed toward designing and architecting complex installations involving dozens of servers and clustered environments.
In 2005, Zend had one person in North America handling the professional services work. Now there are four. On the IBM i side, it involves education–Pavlak’s specialty–and helping organizations develop modernization strategy.
“I think that most of the companies that get into modernization projects ask for help because they believe it increases the level of success,” says the well-traveled PHP advocate.
IBM i shops that don’t contract with Zend for services work often turn to the expanding number of consultants in the community. The company has more than a dozen consulting firms in its U.S.-based partner network, which is mostly relied on to help companies that require heads-down development work. More often than not this involves building the first PHP application, which serves as a prototype or template on which more applications are built.
The IBM i ISV community has also picked up the interest in PHP as a means to modernize their software. Pavlak picked Harris Data as an example. Harris Data develops ERP software for midsize IBM i companies and has more than 2,500 customers. It migrated all of its Net.Data applications to PHP. Other software vendors that have picked PHP include EDR and Rocket Software.
Pavlak says his job comes down to training RPG developers to use PHP. He makes the rounds to virtually all the IBM i technical conferences–next up is the RPG & DB2 Summit (March 17-19) in Texas; the Northeast User Group Conference (March 30-April 1) in Massachusetts; then the COMMON Annual Meeting and Exposition (April 26-29) in California. When I spoke with him on the phone last week he was beginning a training program in Tokyo after completing an engagement in Singapore.
With all that experience he’s gained over the years, he says the most often spoken advice he has for veteran RPG programmers who are stepping outside their development environments for the first time is to begin by learning procedural PHP. Others may say go immediately to frameworks and the object oriented features, but a developer who has been doing procedural development for many years doesn’t need to jump into the deep end of the object oriented pool. Grow into frameworks and object oriented development later.
Not taking risks is often the biggest risk. Don’t allow resistance to change prevent you from acting.