On 08/03/12 09:46 AM, Steve Richter wrote:
On Wed, Mar 7, 2012 at 10:37 PM, Hans Boldt<hans@xxxxxxxxxx> wrote:
On 16/02/12 04:39 PM, dmosley@xxxxxxxxxx wrote:
I heard it was going to end on December 21, 2012.
Does RPG have a rich set of built-in functions? or a rich class library?
Does RPG support OO programming? How does RPG handle namespaces? What
application frameworks are implemented in RPG? What data types are
supported? Does RPG have associative arrays?
was it technically possible to enhance RPG and ILE with these
features? If so were proposals made up the chain of command to enhance
RPG? At what level would the idea have been quashed?
Hi Steve!
I remember a classic line from Star Trek: TNG where Picard tells Data
that you can play perfectly and still lose.
There were a lot of things that could have been done to leverage the
architecture. For example, we had externally described files. We
occasionally suggested the concept of externally described modules.
But it always came down to funding. Anything substantial takes
resources. With the first RPG IV release, we were able to put a lot of
good stuff into the language. I'll always cherish my memories of working
on that project, and what we were able to accomplish. After that, we had
a couple more major items to implement. But once they were done, RPG was
pretty much back into maintenance mode, albeit with a couple of
enhancements each release. At each release, we had to choose what we
considered the most important items given the constraints. Thus, the old
$100 surveys.
So to answer your question, technically, it was possible to implement
lots of good things. The problem was funding. RPG IV was a BIG effort,
in planning, design, coding, and testing. After that, I think few people
had the motivation to ask for the resources to push for more improvements.
Frankly, I'm still amazed that /FREE made it into the language. There
was so much controversy over that one feature that I gave it less than a
50/50 chance of seeing release. Later, I was able to leverage that into
some nice free-form I/O features. But /FREE still left me jaded and
cynical. (Or rather, more so!)
But to answer in a different way, note that the languages with the
powerful features are primarily interpreted languages. In the past, I
often argued that compiled languages are not well suited for application
programming. There is just so much more that you can do with interpreted
languages. For example, consider associative arrays. If you added that
feature to a compiled language, there would be a significant run-time
overhead. But in an interpreted language, you need fast table look-up
anyways for the symbol table. You can use the same code for the
associative arrays.
My point here is that interpreted languages are just so much easier to
enhance with powerful features. And that makes them much better suited
to application development.
Cheers! Hans
As an Amazon Associate we earn from qualifying purchases.