× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.




On 2013-10-10, at 3:02 AM, thomas.raddatz@xxxxxx wrote:


Stuart and Vern,

What's up? Everyone wants something, IBM delivers a solution, and all
(I
know, not everybody) we get is carping at what it is.

Of course everybody wants to get totally /free and hence voted for that
enhancement. On my opinion the problem is, that IBM's solutions are
sometimes somewhat "complicated" or let us say "strangely". For example:
a) if/endif, select/endsl, etc.

Why do we have to add a semicolon to the IF and ELSE statements? Other
languages use brackets for that and the semicolon is used to end a
statement. A single IF is not a complete statement.


This has been discussed to death years ago - do we really need to rehash?

It was needed in part because RPG's columnar past and very relaxed reserved word rules meant that the parser needed to know where an op-code began because there were many programs that used variable names such as READ, WRITE, OPEN, etc.

Alternatives such as OP(READ) FILE(CUSTOMER) etc. were far worse.

b) P/D specs

Why do we need to use 'P' and 'D' specifications to start a procedure? 'P'
for procedure is great and actually the input parameters and the return
value belong to the signature of the procedure. So why use 'D'
specifications for that?

Because? Again - this is now 15 year ancient history. If you want to argue that the whole past should have thrown away and a new RPG that looked just like C/Java be designed I won't agree with you - but at least you'd have a point worth debating.

c) Full qualified names

Actually great stuff, but does not work with LIKE, LIKEDS, %size() and
%elem():

D address_t ds qualified template
D firstname 50a varying
D lastname 50a varying
D city likeds(city_t)
D street 50a varying
D city_t ds qualified template
D zip 10a varying dim(100)
D name 50a varying
D address ds likeds(address_t)

// The simple qualified name is not specified correctly.
D tCityName s like(address_t.city_t.name)

D size s 10i 0
D elem s 10i 0
/free
// The simple qualified name is not specified correctly.
size = %size(address.city.name); // error
elem = %elem(address.city.zip); // error
*inlr = *on;
/end-free

There might be good reasons for that because of the age of the RPG
compiler. But of course nobody understands that at first glance. Or nobody
of the compiler lab uses RPG to write production code. Or the compiler
developers are too close to RPG.

There are a couple of things that have been quite tricky when I started
with my WSDL2RPG and especially the lack of full qualified names for
%elem() and %size() is very hard.


I agree and I'm sure the team want to ultimately fix it. I'm not sure why the compiler can't handle it.



Just my two cents.

Thomas.

rpg400-l-bounces@xxxxxxxxxxxx schrieb am 09.10.2013 20:56:01:

Von: vhamberg@xxxxxxxxxxxxxxx
An: rpg400-l@xxxxxxxxxxxx,
Datum: 09.10.2013 20:56
Betreff: Re: Free format H, F, D and P specs
Gesendet von: rpg400-l-bounces@xxxxxxxxxxxx

Hi Stuart

The vote I refer to wasn't on the RFE site, although there was probably
one there.

This was among the representatives as listed below - as I recall, it was

almost unanimous for total free form.

Regards
Vern

On 10/9/2013 1:04 PM, Stuart Rowe wrote:
Vern

This enhancement was voted almost unanimously as the top priority
It appears that way because the RFE site does not allow you to vote
AGAINST
an RFE. You can only "not vote" for one and they don't count the
people
who don't vote...

Stu



On Tue, Oct 8, 2013 at 10:42 AM, Vernon Hamberg
<vhamberg@xxxxxxxxxxxxxxx>wrote:

Blake

This isn't a dig at you - it's at the thread and this community!

Sheesh!

What's up? Everyone wants something, IBM delivers a solution, and all
(I
know, not everybody) we get is carping at what it is.

Hey, you haven't even seen it in your editors yet - get it loaded,
try
it out, so maybe it's not what WE or YOU or I would have done -
still,
give it time!

This enhancement was voted almost unanimously as the top priority for
representatives from several cultures - ISVs, CAAC, LUG, CEAC, at
least.

And IBM have come through with a solution.

OK, back to my burrow!

Vern

On 10/8/2013 9:53 AM, BButterworth@xxxxxxxxxxxxxx wrote:
Why not just go with Java at that point instead of reinvent the
wheel?
For
better DB integration, IBM could develop a LINQ-like or ORM package
around
DB2 for i to the Java tool box.

Blake


date: Tue, 8 Oct 2013 08:08:08 -0400
from: Steve Richter <stephenrichter@xxxxxxxxx>
subject: Re: Free format H, F, D and P specs

On Tue, Oct 8, 2013 at 2:39 AM, <thomas.raddatz@xxxxxx> wrote:
For example from the day when IBM introduced procedures with V3, I
wonder why we have to use P specs to start/end a procedure and D
specs
for
the procedure interface. Using only P specs whould have been a lot
easier
and clearer (at least for me):
Braces and combining the P and D specs would be nice. But it is just
syntactical sugar ( a term Anders Hejlsberg uses ). Consider that a
code
editor could easily put those elements in the language. Or a pre
compiler.
I can argue that IBM should focus on improving the pre compiler,
making
it
easier to integrate with the debugger. Once that is done then anyone
could
produce their own version of RPG that had braces and a simpler
procedure
declaration.

What is really needed in the language is references, reference
counting
and
garbage collection. Once you have that then you can have the various
types
of collections that you see in .NET ( when variables are addressed
by
reference they can be placed in collections without having to copy
their
contents. ) Once you have full featured collections like dynamic
arrays,
linked lists, etc you can move on to morphing a collection into a
database
and vice versa. Where you order by a collection the same way you
order by
a
table, or join a table to a collection.

-Steve

--
This is the RPG programming on the IBM i (AS/400 and iSeries)
(RPG400-L)
mailing list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/rpg400-l.



--
This is the RPG programming on the IBM i (AS/400 and iSeries)
(RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/rpg400-l.



--
IMPORTANT NOTICE:
This email is confidential, may be legally privileged, and is for the
intended recipient only. Access, disclosure, copying, distribution, or
reliance on any of it by anyone else is prohibited and may be a criminal
offence. Please delete if obtained in error and email confirmation to the sender.
--
This is the RPG programming on the IBM i (AS/400 and iSeries) (RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/rpg400-l.


Jon Paris

www.partner400.com
www.SystemiDeveloper.com





As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:
Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.