× 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.



I use a lot of CL for my stuff.  But, I also use subroutines extensively as well as building a lot of commands to modularize it.

Totally agree with specifically including select options so your intent is clear.  For example, on a CRTDUPOBJ, I will always specify DATA(*NO) even though it is the default.  I want whoever comes along after me to be sure of my intent.

Having done a ton of shell scripting for UNIX/AIX at a previous employer, I will gladly take CL's verbosity as a help, not a hindrance.

I may have to go back and try the RDi one parm per line again and see if I can adapt. Of course, someone else in my shop may come along and screw it up with SEU <frown>.

Roger Harman
COMMON Certified Application Developer - ILE RPG on IBM i on Power

 
 




From: MIDRANGE-L <midrange-l-bounces@xxxxxxxxxxxx> on behalf of Evan Harris <auctionitis@xxxxxxxxx>
Sent: Tuesday, March 6, 2018 2:21 PM
To: Midrange Systems Technical Discussion
Subject: Re: qsh from cl
 

Hi John

I might have been a bit loose and conversational with the expression "a
whole pile". And the ambiguity comment. :)

I rarely go more than 1 or 2 parameters on the command line without
specifying the option as well and pretty much always specify the options in
CL.
In fact, I will sometimes go so far as to include options I want to be
certain of so they are visible in the program (and in case someone decides
to change a default which has happened to me at least once)

You misunderstood the prettifier suggestion (which was a little bit tongue
in cheek) I just meant writing something to clean up and prettify your CL
code which would not be so hard. Keyword followed by space (it's a command)
keyword followed by bracket (it's an option so indent/newline) etc. allow
for IF, DO, etc and you're just about there.

For what it's worth I think CL verbose as it is is fine the way it is. It
is not intended to be a programming language for writing applications, so
it doesn't the elegance of some other languages. I get that you find it
ugly but I think the alternative - for example cryptic, confusing
inconsistent unix command lines - is worth the small amount of visual pain.

CL is kind of intended for operators not programmers as I see it, so the
design makes sense from that perspective.

I don't think it's any accident that PowerShell reminds me quite a bit of
CL.


On Wed, Mar 7, 2018 at 10:57 AM, John Yeung <gallium.arsenide@xxxxxxxxx>
wrote:

On Tue, Mar 6, 2018 at 3:44 PM, Evan Harris <auctionitis@xxxxxxxxx> wrote:
Personally I think the idea of a whole pile of parameters with no
keywords
would be even uglier than the verbose string the CL prompter produces.

IBM-supplied commands don't let you have "a whole pile" of parameters
with no keywords. Usually just two or three. But the whole point is
that those parameters are the ones that are (generally speaking)
needed the most, and are the most obvious.

Command design is an art, and there certainly is such a thing as too
many positional parameters.

Despite the perceived ugliness including the keywords removes pretty much
all the possible ambiguity.

Not just pretty much. It removes exactly all the ambiguity. That is
why it is, as a pure matter of objective fact, the safest option.

If I was that horrified I think I would write a CL "prettifier" in
Python,
but I've been looking at CL so long I find the prompts comforting.

Don't think I haven't imagined doing that. But I don't think it's
worth the investment of time. The balance of "data" versus "algorithm"
is tilted heavily toward data, because the prettifier would have to
know which keywords can be left out. You would have to essentially
build a database of prettifiable commands and their parameters. Which,
if you want to prettify a lot of commands, would probably be more
tedious than fun. The indenter portion of the prettifier would be more
algorithm-oriented, though, so that could be fun.

Actually, prompted CL code feels to me kind of like "generated code"
more than it feels like code written by humans, for humans. (After
all, it *is* kind of generated, though just one line at a time.) As
such, it would totally make sense to create some other language which
is aesthetically nice but "transpiles" to CL (in a similar way that
CoffeeScript and TypeScript transpile to JavaScript). That's more
effort but also probably more fun and potentially more useful than a
prettifier. With CL's increasing capabilities, it becomes an
increasingly attractive target for transpilation.

John Y.
--
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing list
To post a message email: MIDRANGE-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/midrange-l


MIDRANGE-L Info Page
lists.midrange.com
To unsubscribe from MIDRANGE-L, get a password reminder, or change your subscription options enter your subscription email address:

or email: MIDRANGE-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at https://archive.midrange.com/midrange-l.

Please contact support@xxxxxxxxxxxx for any subscription related
questions.

Help support midrange.com by shopping at amazon.com with our affiliate
link: http://amzn.to/2dEadiD





As an Amazon Associate we earn from qualifying purchases.

This thread ...

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.