►
From YouTube: NGS weekly meeting #10 - 2021-12-12
Description
Project website - https://ngs-lang.org/
NGS use cases - https://github.com/ngs-lang/ngs/wiki/Use-Cases
NGS UI design (to be implemented) - https://github.com/ngs-lang/ngs/wiki/UI-Design
Discussions:
https://www.reddit.com/r/programming/comments/rd67p6/ngs_next_generation_shell/
https://www.reddit.com/r/linuxadmin/comments/rd687q/ngs_next_generation_shell/
https://news.ycombinator.com/item?id=29482872
https://lobste.rs/s/gxwpsh/ngs_next_generation_shell
A
Hello,
welcome
to
weekly
ngs
meeting
ngs
stands
for
next
generation.
Shell,
I'm
elia
shares
the
author
of
the
project.
Weekly
meetings
are
about
current
progress
and
near
future.
Flip
plans
sometimes
farther
plans
further
in
the
future.
A
Okay.
So
let's
do
a
bit
of
let's
say
we'll,
let's
say
a
table
of
contents
contents.
So
so
you
could
know
what's
in
this
episode.
Okay,
so
first
of
all
aws
lambda,
it's
still
in
progress,
not
much
to
say
about
this,
then
we
will
go
a
bit
into
m1.
A
A
That's
not
it's
not
a
big
volume
of
things
that
I
want
to
say,
but
it's
it's
still
there
then.
I
was
thinking
about
the
concept
of
contexts
and
I'd
like
to
talk
about
that.
I
have
no
idea
how
much
time
it
will
take,
maybe
between
five
and
15
minutes.
A
Something
like
that,
and
then
this
week
there
was
like
a
social
media
activity
around
ngs
and
I
watched
that
unfolding
participated
a
bit
and
I
would
like
to
go
over
and
maybe
augment
my
responses
to
the
questions
that
I
have
seen.
A
Okay,
so
m1,
so
I
don't
know
if
it's
the
operating
system
version
or
homebrew
version-
or
I
don't
know
what
it
is.
But
homebrew
is
now
installing
things
into
opt
homebrew
something-
and
it
was
not
the
case
previously.
So
I
needed
to
change.
Cmake
builds
to
accommodate
the
situation.
It
was
like
very
small
change,
but
it's
it's
now
in
there
in
the
dev
branch.
So
if
you
got
the
newer.
A
A
So
as
I'm
like
living
my
life,
I
have
some
just
some
of
these
ideas
about
context,
so
I
take
take
some
notes
and
then,
from
time
to
time
I
go
and
update
the
wiki.
A
This
is
what
I
think
about
that,
and
so,
let's
before
I
share
my
screen
and
show
the
wiki
and
some
particular
thoughts
the
overview
of
contexts,
what
are
context
so
like
the
most
common
context
that
we
know
is
like
current
directory
right.
It
affects
in
which
directory
certain
program
will
run
so
ucd
to
some
directory.
I
think
is
of
it
as
a
context
and
another
kind
of
context
that
we
all
know
is
environment
variables
right.
It
affects
the
programs
that
are
run
from
this
shell.
A
So
it
is
also
kind
of
a
context,
and
if
I
try
to
define
context,
that
would
be
something
that
would
affect
the
programs
that
you're
going
to
run.
A
A
A
Some
kind
of
definition
context
is
anything
that
would
affect
execution
of
following
commands:
it's
a
generalization
of
current
directory
and
environment
variables.
A
So
I
see
many
different
types
of
contexts,
for
example,
a
file
or
a
directory
or
environment
variable
or
a
set
of
environment
variables.
Also,
the
kind
of
what's
useful
for
me
is
aws
profile
which
says:
okay,
I'm
now
switching
profile
to
work
on
particular
project
and
or
environment.
A
That
the
shell
would
understand
that
it's
a
context,
because
if,
for
example,
I
typed
the
export
aws
profile
equals
something,
the
shell
should
recognize.
It's
now
a
context
and
therefore
I
should
have
an
indicator
which
is
like
outside
of
the
main
area,
but
there
should
be
an
indicator
somewhere
that
I'm
in
this
particular
context.
A
Well,
if
you
take
bash,
it
will
be
usually
in
prompt
or
no
no
or
it
will
be
imprompt
and
it
can
become
cluttered
if
you
have
like
many
of
them.
So
I
think
to
move
the
con
context,
indicators
to
separate
area,
and
I
think
there
could
be
quite
a
few
of
them
right.
I
have
profile,
I
have
current
directory.
A
I
have
maybe
some
other
environment
variables
which
affect
other
programs.
I
have
a
git
status
situation.
A
I
have
git
branch
and
by
the
way,
while
we
imagine
this
special
area
for
context,
also
imagine
that
when
you're
in
ui
you
click
click
on
this
or
press,
it
you'll
have
also
a
history
of
recent
contexts,
so
you
could
switch
easily.
So,
for
example,
if
I'm
working
on
profile,
I
don't
know
project
a
production
which
is
separate,
aws
account,
and
previously
I
worked
on
project
a
dev
environment.
A
If
I
click
on
the
the
indicator,
I
should
have
the
history
that
okay,
I
work
on
project
a
and
dev
and
prod,
and
I
can
switch
and
of
course,
whenever
you
click
that
it's
all
being
transformed
into
textual
commands
and
they
are
on
in
the
in
the
middle
section
where
the
the
commands
are
the
which
the
ones
that
you
type
also
and
the
ones
that
are
generated
by
ui
for
you
so
and
if
the
commands
I
have
textual
representation,
it
has
all
the
advantages
of
the
textual
representation,
which
is
history,
copy,
paste
and
and
whatnot
okay.
A
So
what
else
on
the
page?
So
I
was
in
the
requirements
section
and
it
mentioned
the
context
types.
So
what
else
context
should
be
able
to
do?
There
should
be
automatic
detection?
Like
I
said,
for
example,
I
have
export
aws
profile.
It
detects
the
context.
It
understands
that
you're
now,
in
the
context.
A
Also,
of
course,
if
you
do
see
the
my
folder,
that's
also
also
should
be
detected
and
then
be
some
kind
of
indicator,
and
also
history
also
note
that
some
contexts
are
like
pair
directory
context,
so
it
complicates
the
implementation
of
it.
So,
for
example,
git
branch
is
spare
directory.
A
So
we
have
per
directory
context,
also
think
facility
to
create
new
contexts.
For
example,
I
want
to
create
new
aws
profile
it
needs.
This
feature
would
assist
me
to
create
new
section
in
the
underlying
configuration
file.
A
A
So
when
I
send
some
copy
paste
of
what
I'm
doing
to
a
friend,
this
copy
paste
should
work
on
his
or
her
machine
and
well,
what
happens
if
you
named
our
aws
profiles
differently
right,
so
this
problem
should
be
solved
also,
not
so
much
sure
about
whether
directories
should
be
should
have
a
property
of
absolute
directory.
A
If
you
do
cd,
not
sure
how
useful
that
would
be-
and
there
are
a
couple
of
open
issues
which
which
I
already
thought
about
a
bit,
I
bet
I
can
find
much
more
open
issues.
So
how
context
would
relate
to
bookmarks?
Is
there
if
there's
any
interplay
with
this
other
feature,
which
I'm
kind
of
starting
to
think
about
bookmark
right
now?
In
my
mind,
it
would
be
any
object
that
you
see
on
the
screen.
A
You
can
bookmark,
so
you
can
get
back
to
this
object
later,
and
this,
maybe
can
be
bookmarks
might
be
generalized
into
text,
so
you
would
have
maybe
like
different
dimensions,
so
you
can
quickly
find
the
commands
by
tags
and
or
output
objects
by
the
way
it's
not
only
for
commands.
I
don't
know
need
to
think
about
this.
A
And
what
would
happen
if
we
allow
to
mark
any
object
in
the
ui
as
a
context
which
types
would
that
be
how
they
would
that
work?
That's
like
completely
unclear
for
now,
okay,
so
that
was
about
contexts
and
now
I
would
like
to
move
to
my
final
topic
for
today,
and
that
was
social
media
social
media.
So
I
have
here
open
a
few
places
where
some
discussion
happened.
A
I
made
a
big
font
here
because
I'm
not
not
sure
on
which
screen
you're
looking
at
me,
if
you're
on
the
mobile.
That
should
be
like
good
enough
to
read
on
the
mobiles
size
of
font.
I
hope
I
didn't
test
this.
Actually,
okay,
let's,
let's
see
the
first
column,
okay,
it
doesn't
look
as
good
as
a
neutral
for
shell
type
things,
and
once
you
get
beyond
the
liners,
it
makes
more
sense
to
use
an
existing
proper
language
like
typescript
or
go
okay.
So.
A
Okay
and
yeah
and
props
for
having
good
list
of
alternatives.
Okay,
so
first
of
all
it
just
doesn't
have
any
ui
yet
and
of
course
any
existing.
Modern
shell
right
now
looks
much
better
for
the
interactive
use
and
I'm
actually
not
even
having
final
design
for
the
guy,
but
I
have
quite
a
bunch
of
thoughts
about
the
ui
and
I
think
it
should
be
much
more
radically
different
from
anything
else
that
you
have
today,
and
why
is
that?
A
Because
what
you
have
today
is
kind
of
incremental
improvements
over
what
we
had
in
the
past,
and
I'm
really
amazed
that
nobody
thinks.
Okay,
you
run
a
comma.
Now
you
have
some
object
on
the
screen.
Why
can't
I
interact
with
this
object
on
the
screen?
It's
like
amazing
that
nobody
does
that
and
I'm
not
sure
why
and
so
so
on
one
hand
existing
uis
in
alternative
modern
shells,
they
look
much
better
than
bash,
but
right
now
I
don't
have
anything
to
show.
A
So
it's
hard
for
me
to
like
to
argue,
but
I
think
what
ngs
will
have
will
be
significantly
better,
but
it
will
have.
It
will
take
quite
a
bunch
of
time,
okay,
so
here
I'm
writing
it's
worth.
There's
no
shell!
Yet
that's
that's
my
answer
to
the
comment
about
shell
type.
Things
makes
okay
regarding
makes
way
more
sense
to
use
an
existing,
proper
language,
okay
and-
and
that's
a
kind
of
repeating,
frequently
asked
not
asked,
but
it's
repeating
thought
from
anybody
who
looks
at
ngs.
Okay.
Why?
A
Wouldn't
they
use
just
you
know
a
proper
language,
so
guess
what
proper
languages
they're
general
purpose
languages
they
can't
and
they
will
not
be
as
good
as
say
bash
for
manipulating
files
and
processes,
and
then
js
can
do
that,
because
it's
oriented
in
this
way
it's
focused
on
this
use
cases.
A
A
A
So
with
this
three
words,
one
of
them
is
a
name
of
the
of
the
program
you're
doing
something
which
is
like
a
couple
of
lines,
maybe
three
lines
in
bash
and
and
more
line
and
also
more
lines
more
than
one
line
in
other
languages,
and
why
that,
because,
first
of
all
program
is
a
domain
specific
type
which
represents
object
of
the
domain,
so
programs,
external
programs.
A
One
of
the
core
concepts
in
ngs:
it's
it's
it's
the
domain
of
ngs
to
know
about
programs.
So
when
you
write
a
third
program,
it
means
that
ngs
is
going
to
check
path,
find
that
program
and
if
it
doesn't
find
the
program,
it
will
give
you
an
exception
and
it
will
not
be
just
any
exception.
A
It
will
say:
program.
Pandoc
was
not
found
in
pass.
Here's
the
path.
So
please
do
something
about
that
and
this
kind
of
from
my
perspective,
it
shows
the
focus
on
the
domain
in
ngs,
okay,
I'm
giving
the
link
to
intended
use
cases
and
actually
there's
a
very
good
list
of
alternative
shells,
and
it's
it's
maintained
by
andy,
the
author
of
oil
shell.
A
A
Another
comment
looks
interesting,
definitely
worth
a
closer
look
going
through
the
documentation,
as
we
speak,
looks
a
bit
unfinished
but
I'll
install
it
and
see
where
it
can
take
me
very
nice.
I
appreciate
that.
So
what
I,
what
I
answered
yeah,
please
file,
github
issues.
A
If
you
see
any
issues
in
ngs
which
are
bugs
or
like
incomplete
documentation,
unclear
documentation,
guys
and
girls
open
github
issues,
I'm
actually
looking
forward
to
it,
because
for
me
it's
a
priority
to
make
ngs
easier
to
use
and
be
like
more
friendly,
poor
man's
powershell.
Well,
I'm
kind
of
not
answering
that
because
this
is
completely
unconstructive
to
the
discussion.
A
Okay,
another
comment:
another
project,
this
carbon
itself
are
something
modern
and
next
generation
with
panduc
among
the
dependencies
and
no
interesting
features.
Give
me
a
break.
I
think
that
this
person
was
actually
on
reddit
during
the
break.
That's
what
that's
my
assumption,
because
if
you
are
already
not
during
a
break,
it's
not
good.
A
Okay,
what
else!
So
this
was
our
programming
on
reddit.
Now
we
are
going
to
our
linux
admin
on
reddit
and
kind
of
see
that
it's
like
less
perceived
less
good
here
in
general,
with
less
approach,
I'm
not
sure
if
it
actually
means
anything.
But
okay
does
it
include
common
suggestions.
A
I've
been
using
fish
for
a
while
now
almost
entirely
because
of
the
fantastic
common
suggestion
features.
Nope
interactive
part
is
not
ready.
Okay,
what
else?
Ok,
quite
a
bit
of
discussion
in
hacker
news
and
hacker
news,
so
what
we
have
here,
I
tried
to
like
powershell
but
found
it
unpleasant
to
use
as
a
shell
or
scripting
language.
I
agree.
I
did
a
small
amount
of
coding
in
powershell.
A
I
did
read
the
around
1000
pages
pdf
as
it
describes
powershell.
So
it's
probably
something
like
user
manual
or
whatever
my
favorite
part
is
when
they
explained
that
comparing
to
null
is
not
actually
doing
what
you
think.
A
Let's
try
to
find
that
comparing
now
not
what
you
think
it's
it
was
in
the
official
documentation,
docs
everything
you
wanted
to
do
about
now
and
and
and
before
I'm
going
to
like
bash
powershell.
I
think
that
the
word
power
in
powershell
is
actually
well
deserved
and
it
actually
exposes
windows
apis
and
whatnot,
and
you
can
do
a
bunch
of
things
in
powershell.
I
just
kind
of
let's
say:
disagree
with
language
design
and
that's
another
aspect:
powershell
null
nullis.
A
A
So
if
you're
on
mobile
should
be
able
to
read
this,
this
is
intentional
and
accepted
as
a
powerful
best
practice.
There
are
some
scenarios
where
placing
it
on
the
right
doesn't
give
you
the
expected
result.
Why?
Because
dash
eq
and
the
dash
n
e
are
comparison.
Operators
they're
not
like
actually
simple
comparison,
operators
they're
doing
something
else.
A
A
Okay,
let's
close
that
go
back
okay,
so
I
I
actually
do
agree
with
this
comment,
but
I
didn't
comment
anything
because
I
I
don't
think
like
it
would
be
like
interesting
for
anybody
that
I
agree
on
that.
Maybe
I
should
comment,
and
you
know
make
this
person
know
I
don't
know
there
are
multiple.
Perhaps
even
many
next-gen
shells
ps
is
one,
but
it's
not
the
only
thing
and
shouldn't
be
yes.
A
I
agree
with
that.
So
what?
What?
What?
What
I
don't
know
they
are
going
to
say
something
about
powershell,
okay
and
next
one
on
lobsters.
Let's
see
if
anything
changed,
nothing
changed,
okay,
interesting.
But
what
can
I
do
with
this
that
I
can't
do
with
either
bash
or
my
favorite
scripting
language?
A
I
understand
the
question.
It's
actually
very
frequent
question
and
thought,
and
I
think
it
comes
back
to
the
focus
of
ngs
on
certain
use
cases,
and
that
means
that
anything
else
that
you
will
choose
for
these
use
cases
most
likely
to
be
more
verbose
and
more
error.
Pro.
A
Let's
see
what
I
answered
here
yeah,
I
also
mentioned
a
set
program
yeah.
So
it's
it's
it's.
We
are
back
to
the
focus
thingy
and
okay
and
and
if
you
are
already
comparing
to
basha,
I
don't
I
like
the
more
time
passes
by
I.
A
I
more
think
that
comparing
to
bus
is
not
very
fair
to
bash,
because
you
know
like
how
how
you
can
compare
to
something
that
was
like
initiated
decades
ago
and
then
and
then
and
then
nothing
almost
nothing
could
be
actually
fixed
because
you
would
be
breaking
existing
code,
so
this
is
project
from
decades
ago,
and
I
it
it
doesn't,
make
much
sense
to
compare.
A
But
you
know
if
you're
already
doing
that,
then
you
know
the
simplest
example.
If
you,
if
you
do
dollar
x
and
bash,
you
don't
know
to
how
many
arguments
it
expands.
I
I
think,
okay,
my.
A
My
point
of
view,
which
is
actually
a
kind
of
a
guess,
is
that
at
the
time
the
bush
didn't
have
arrays.
So
there
was
like
not
much
you
could
actually
do
about
that.
So
they
stuffed.
You
know
some
items,
space
delimited
in
in
a
variable
and
then
it
was
like
expanded
to
several
arguments
based
on
the
data
that
you
have
in
the
variable.
A
This
is
you.
Can
you
can't
imagine
that
somebody
is
doing
this
today
right
that
that
any
any
argument
that
you
passed
a
function?
Actually
it
works
like
star
x
in
and
you
don't
know
how
many
just
for
them.
Looking
at
the
code,
you
don't
know
how
many
arguments
this
will
be
yeah
and
again
compared
to
general
purpose
languages.
A
Well,
it's
the
focus
and-
and
you
have
all
this
function-
it's
not
certainly
that
it's
like
kind
of
I
took
and
refactored
and
factored
out
all
these
common
things
that
you
will
be
doing
in
bash
like,
for
example,
defining
your
like
debug
and
worn
and
error
functions
at
the
top
of
each
script
because
well
in
bash.
It's
somehow
not
common
to
use
libraries,
so
you
define
these
functions
all
like
all
over
and
over
and
over
again,
and
I
don't
think
it's
productive
and
not
only
it's
not
productive.
A
A
Don't
hesitate
to
contact
me
on
discord
if
you
have
more
questions
I'll
be
glad
to
answer
so
we
went
over
four
issues
today
it
was
continuing
progress
to
be
able
to
run
ngs
in
aws
lambda.
That's
actually.
There
was
no
progress
this
week,
but
it's
in
progress
like
in
general,
the
m1
and
the
homebrew
adjustments,
the
idea
of
context
and
the
overview
of
what
happened
on
social
media
around
ngs.
A
Okay,
thank
you
for
listening,
subscribe
like
and
what
what
was
the
last
one?
I
always
forget
the
last
one
whatever
like
and
subscribe.
Thank
you
for
listening,
bye.