/usr/bin/env is the standard for developer systems where different
configurations are managed through environmental variables. However,
it's rather fragile for non-developers, as it requires properly
conditioned environmental variables.

/usr/bin/$name is the earlier standard for minimal fuss distribution.

Given that most J users are going to be in some IDE, I don't see that
the /usr/bin/env approach would provide significant benefit to the J
community. Especially if we're considering people who would be baffled
about what to do with #!/usr/bin/ijconsole

Do you think I've overlooked something important here?

Thanks,

-- 
Raul

On Fri, Mar 10, 2023 at 7:42 PM Elijah Stone <elro...@elronnd.net> wrote:
>
> Performance is irrelevant here--the difference in either case is miniscule.
>
> Using /usr/bin/env is standard practice in shebangs for finding binaries on
> the path.  In some systems, it is conventional to put binaries that did not
> come with the system in /usr/local/bin, or in /opt; whereas, the existence of
> /usr/bin/env is mandated by posix.  We should not presume any more than we
> need to about the way a user's system will be organised.
>
> On Fri, 10 Mar 2023, Raul Miller wrote:
>
> > Yes, the name ijconsole (iverson j console) was adopted to work around
> > java's jconsole being in $PATH on many systems.
> >
> > This would also be an issue with /usr/bin/env
> >
> > But I don't see any high priority problems with /usr/bin/ijconsole as
> > a standard location. There will be some users who cannot install J
> > there, but it should be simple enough for them to build a tool to
> > patch incoming J scripts with the install location that they used.
> >
> > (And, /usr/bin/env is going to be considerably slower than a bit of
> > undefined verb parsing and garbage collection within J.)
> >
> > --
> > Raul
> >
> > On Fri, Mar 10, 2023 at 6:51 PM Elijah Stone <elro...@elronnd.net> wrote:
> >>
> >> Fair enough.  I think the obvious thing is #!/usr/bin/env jconsole.  But I
> >> gather 'jconsole' is also the name of a java-related program, which might 
> >> be
> >> why debian uses 'ijconsole' (and I think I have seen 'jc' 
> >> elsewhere--probably
> >> for the same reason).  I therefore propose:
> >>
> >> 1. Rename jconsole to something which doesn't collide with anything 
> >> heretofore
> >> notable
> >>
> >> 2. Use #!/usr/bin/env that-something
> >>
> >> On Fri, 10 Mar 2023, Raul Miller wrote:
> >>
> >> > Perhaps, but I think it would be more useful to have a portable,
> >> > agreed on path for systems which support the #! convention.
> >> >
> >> > That's required for J scripts to be distributable.
> >> >
> >> > Thanks,
> >> >
> >> > --
> >> > Raul
> >> >
> >> > On Fri, Mar 10, 2023 at 12:04 AM Elijah Stone <elro...@elronnd.net> 
> >> > wrote:
> >> >>
> >> >> Perhaps it's simply time to tell the interpreter to start ignoring the 
> >> >> first
> >> >> line of a script if it starts with #!...
> >> >>
> >> >> On Thu, 9 Mar 2023, Raul Miller wrote:
> >> >>
> >> >> > The recent change in directory naming from j903 to j9.4 introduces an
> >> >> > interesting issue for shell scripts on unix-like systems.
> >> >> >
> >> >> > In J shell scripts, this works:
> >> >> >
> >> >> > #!/home/username/j903/bin/jconsole
> >> >> >
> >> >> > However, this fails with a spelling error:
> >> >> >
> >> >> > #!/home/username/j9.4/bin/jconsole
> >> >> >
> >> >> > Or, on OSX, the shebang line is different, but the spelling error 
> >> >> > remains:
> >> >> >
> >> >> > #!/Applications/j9.4/bin/jconsole
> >> >> >
> >> >> > That said, there's some other issues here, related to portability. One
> >> >> > of which is that (as a general rule) a home directory is personal
> >> >> > rather than portable. Another is that there's official java jconsole
> >> >> > which does not understand J.
> >> >> >
> >> >> > But, also, for a long time now, Debian based distributions have been
> >> >> > distributing j with /usr/bin/ijconsole as a symbolic link to the
> >> >> > current installed location for J. (Here, the 'i' in ijconsole stands
> >> >> > for Iverson.)
> >> >> >
> >> >> > So I think that now would  be a good time to adopt that as "documented
> >> >> > standard practice" for j shell scripts.
> >> >> >
> >> >> > FYI,
> >> >> >
> >> >> > --
> >> >> > Raul
> >> >> > ----------------------------------------------------------------------
> >> >> > For information about J forums see http://www.jsoftware.com/forums.htm
> >> >> ----------------------------------------------------------------------
> >> >> For information about J forums see http://www.jsoftware.com/forums.htm
> >> > ----------------------------------------------------------------------
> >> > For information about J forums see http://www.jsoftware.com/forums.htm
> >> ----------------------------------------------------------------------
> >> For information about J forums see http://www.jsoftware.com/forums.htm
> > ----------------------------------------------------------------------
> > For information about J forums see http://www.jsoftware.com/forums.htm
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to