On GameFAQs: Is it OK to lay my Wii down on its side?
BNET Business Network:
BNET
TechRepublic
ZDNet

April 28th, 2008

RPG, PHP, and history

Posted by Paul Murphy @ 4:15 am

Categories: Database Management, Development, General

Tags: Application, PHP, Codd, Paul Murphy

While thinking through some of the comments recorded here as part of our discussion of development languages and environments I finally figured out what PHP reminds me of: RPG.

RPG [Report generator] started out in the IBM 360 world as a report formatting aid, but never really succeeded there until Codd et al tried to use it as a query canning tool for System/R users.

The original applications delivery model for IBM’s intended System 360 successor was client-server. In that vision the IBM 51XX series machines would run query formatters and interface management software accessing data stored using a microcoded System/R on specially optimized 48 bit hardware. By 1969, however, that vision had been largely abandoned due to serialization problems with client-server, and the battle was on between people who saw applications in COBOL terms and those who, like Code himself, saw applications as mere interfaces to data.

The latter view won - when the future system hit the market as the System 38 nearly ten years later, the primary applications language was a second generation RPG - now capable of handling the full CRUD repetoire but still inherently focused on interfacing users to a data store.

The evolution of Personal Home Page (PHP) from a simple variable substitution tool intended to interface generic HTML scripts to personal data to full fledged web programming language still focused on linking scripts to databases mimics the growth of RPG very nicely.

I’m personally skilled with neither RPG nor PHP but, at least as far as I can tell, they both suck on all possible computer science school style evaluative criteria except one: they work, and work well.

So why?

My guess is that they work because they implement the same basic ideas about how business applications should work - and because those ideas are fundamentally right, even the first applications built using them work well - and widespread adoption then drives the further evolution of the language into a widely successful toolset.

So what’s the model? simple: business applications are user interfaces to business data.

Bear in mind when thinking about this that the relational database wasn’t developed as a data storage tool - storage wasn’t the problem Codd went after: IMS was much faster than System/R and COBOL files worked very well for most applications. The problem was application stove-piping: the storage and use of the same data in incompatible ways across multiple applications.

Stove piping was a natural consequence of batch processing because that required each application, defined as a series of batch jobs carried out on packs of data cards in exactly the right order, to store and manage its own data; and that, in turn, led to what Sir Topham Hatt, in a very different context, called “confusion and delay” throughout corporate systems as different applications adapted the same data differently.

Codd’s solution was to make all of these problems go away by forcing all application data access through the same interface to a shared file system. That idea then led him to apply set theory (known as the theory of relations when he went to school) to data as a way of managing redundancy and thus to the formulation of his relational rules - starting with rule zero: no access to data except through the shared data interface manager.

From there Chen (1974) and others further developed the theoretical foundations for the underlying applications model; IBM issued the RPG/System/R based System 38 in August of 1979, and everyone from 1920s style data processing managers to emeritus professors of computing science have tried desperately to kill it ever since - but that’s the model that makes RPG a success, that’s the model built into PHP, and really that’s why I like two languages that seem otherwise unattractive.

Paul MurphyPaul Murphy (a pseudonym) is an IT consultant specializing in Unix and related technologies. See his full profile and disclosure of his industry affiliations.


Email Paul Murphy

Subscribe to Managing L'unix via Email alerts or RSS.

  • Talkback
  • Most Recent of 23 Talkback(s)
Use a PHP framework like CodeIgniter for MVC
I think with PHP5 and the upcoming PHP6, it will take a bigger bite in the "enterprise" arena. It's that good. And if you use a framework like CodeIgniter (visit (Read the rest)
Posted by: maxtheitpro Posted on: 04/30/08 You are currently: a Guest | | Terms of Use
If it works for you, use it - but it doesnt work for me.  TheTruthisOutThere@... | 04/28/08
Of course there are exceptions, but...  murph_zZDNet Moderator | 04/28/08
You completed missed the point.  TheTruthisOutThere@... | 04/28/08
umm.. a little light reading perhaps?  murph_zZDNet Moderator | 04/28/08
You assume too much.  TheTruthisOutThere@... | 04/28/08
neither one  murph_zZDNet Moderator | 04/28/08
There is nothing specific to PCs in what I said.  TheTruthisOutThere@... | 04/28/08
Murph I think you'd like the organisation of Rails  fr0thy2 | 04/29/08
Mixed feelings  murph_zZDNet Moderator | 04/29/08
Data To Documents  DannyO_0x98 | 04/28/08
To clarify  bportlock | 04/28/08
Agreed (NT)  murph_zZDNet Moderator | 04/28/08
Please complete the thought.  Anton Philidor | 04/28/08
Some advice for you Murph...  bportlock | 04/28/08
Support from the politically correct  murph_zZDNet Moderator | 04/28/08
Huh?  bportlock | 04/28/08
Duh  murph_zZDNet Moderator | 04/28/08
Once again, way past your level of competence  tonymcs@... | 04/28/08
RPG and AS400/S38  gingoro | 04/29/08
Lazy programming  bportlock | 04/29/08
PHP: Hypertext Preprocessor (nt)  fmdeveloper | 04/29/08
i use RPG/ILE on an AS/400 and pretty much agree with you.  wessonjoe | 04/29/08
Use a PHP framework like CodeIgniter for MVC  maxtheitpro | 04/30/08

What do you think?

SponsoredWhite Papers, Webcasts, and Downloads

advertisement

Recent Entries

Archives

ZDNet Blogs

White Papers, Webcasts, and Downloads

SmartPlanet

  • Thought-provoking progressive ideas on diverse topics that intersect with technology, business, and life, and matter to the world at large. Visit SmartPlanet
  • More from IBM
  • Innovate your business' process model, play against the market, compete against others on our scoreboards and WIN! Try INNOV8 2.0: A BPM Simulator
  • Enabling Real-World Business Transformation through IBM Service Management Read the EMA Analyst Report
Click Here