# Nushell core team meeting 2022-08-31
## Attendees
- Fernando
- Darren
- JT
- Jakub
- Reilly
- Michael
- Andres
## Topics
- any objections to [removing capnp](https://github.com/nushell/nushell/pull/6421)? :'(
- Release next Tuesday 9/6
- general thoughts on `$` removal [#6434](https://github.com/nushell/nushell/pull/6434)
- general thoughts on parens around signatures [#6444](https://github.com/nushell/nushell/pull/6444)
- general thoughts on `source` to `source-env` [#6277](https://github.com/nushell/nushell/pull/6277)
- are there more breaking changes we can bundle?
- Exploring integration with [kafka](https://github.com/influxdata/rskafka)
- in a similar spirit as [Iox](https://github.com/influxdata/influxdb_iox)
- ability to view kafka topics
- also publish and subscribe to events
- will enable others the ability to then populate a dataframe with the subscriber events and publish out events from dataframe data as well.
- Circular dependencies?
# Discussed
- `$` removal
- JT posted a video. Good initial response
cell path are a little brittle but JT has a "fix" but it breaks a bunch of tests.
- Andres suggest maybe maintain $ for special cases maybe like $nu.
- Jakub suggest maybe use only $FOO for env vars, no $env.FOO anymore.
- There's a revert $ removal PR if we need to. If there's a use case that we've missed and is "big" we might revert.
- Keep the $ optional for the next release or two and then remove it if everything goes well
- def brackets to parens - Still have to have space after `def name() {}` vs `def name () {}`
- remove capnp - Fernando mentioned it's a pain but it's nice to have an example. We're ok to remove it.
- source/source-env - Jakub finished it in JT's PR. Land it if it's ready. Both source and source-env are available. Source will be deprecated and eventually be removed.
- use for custom commands and and aliases, there is no plan to support variables in use or source-env. Really no globals that get slurped into the current namespace but you can have variables inside your def like normal.
- Fernando maybe change string interpolation from parens to braces? - kind of decided to leave it to parens.
- existing PRs that will be breaking changes? not that we see.
- kafka - Michael, good to have enterprise level tools like iox, kafka, etc. Darren grafana is cool.
- cirular dependencies - jakub - use spam and in spam you do use the other and they try to source each other and end up in a stack overflow
- JT doing show-n-tell of syntax issues/brainstorming.
```
def foo(x: int) {
x + 100
}
# is it ok to do
foo(1000)
```
```
# commands
command foo [x: int] {
x + 100
}
```
several examples - bad notes here, jt's notes below
## Raw examples from discussion:
```
# def foo [x: int] {
# $x + 100
# }
def foo(x: int) {
x + 100
}
# 1) easy to be ambiguous var name and bare word
# 2) is this confusing?
# today:
foo 1000
# proposed:
foo(1000)
cat foo.txt
cat bar(10)
# what if that's okay?
# Part 1: seem like a function, work like a function
# Jakub said it's weird to have two ways, so what if:
## functions
def foo(x: int) {
x + 100
}
## commands
command foo [x: int] {
x + 100
}
# Part 2: bare words vs strings
`cd foo`
SyntaxShape: BareString (FilePath is one of these)
`cd foo`
SyntaxShape: String
"foo"
`cd "foo"`
["a", "b", "c"]
[12kv, b, c]
# today:
str join 1 2
# with optional paren:
str join(1, 2)
str::join(1, 2)
str::join(1, 2) | where bar > 10 | sort
# TODO:
# No space
# Yes:
def foo (x: int) { }
# support:
def foo(x: int) { }
# Optional parens for calls
# 1 no, 4 yes, 2 maybes
foo(100)
def foo(x: int, --bar: int) {}
foo(--bar=100, 100)
foo --bar=100 100
# FilePaths are bare but strings are not
# 3 yes, 1 abstrain
["a", "b", "c"] <-- new list of strings
cd foo
```