Thanks for making this so quickly! I appreciate your perspective, and definitely agree with some of your insights. I can't disagree that if bash is working perfectly for you, there's no real reason to invest time into nushell - especially because it explicitly doesn't aim to be POSIX compliant. But for those of to whom bash is closer to Latin than English, nushell is an easy to learn, nice to use way to become productive in the shell without having to decipher the arcane runes of our forebearers.
To me the biggest advantage of Nu is that it's meant to be a cohesive set of commands and that output is structured/typed and therefore far less error prone than string manipulation. BTW: Invoking a non-nushell command is very simple: just prefix it with ^, like ^ls
Support of structured data sounds outrageously similar to Powershell! BTW, it seems that using text to represent and pass around structured data is easier (see 'jq' etc) than to pack freeform text in a structured form.
I've seen this pop up a few places recently, it looks interesting. Not having really worked with it yet, it really _sounds_ like powershell to me. Once I wrapped my head around the structured/array-oriented paradigm I became really productive with powershell, and it's an awesome programming language - it just sucks as an actual daily-driver shell (try passing json to a native command...). If someone could iron out those issues and make a tool that is a genuinely high quality, functional programming language AND that also works as a shell, I'd drop bash and never look back (at least on my personal machines).
From what I have seen, there is "sed" functionality, but in the context of the NuShell philosophy, "everything is data", as opposed to the Unix philosophy, "everything is a file" - The usefulness of NuShell comes down to "what do you want to do", and then more importantly nowadays, how to you want _that_ to look
Reminds (now depricated) WMIC shell on Windows. It also structured all system management data in tables that could be queried in SQL fashion. But there's more, tables could also had custom commands integrated to execute on elements of the table, like in the Processes table you had process management actions like kill, etc. A lot of the system management could have been done in WMIC shell alone without any external program. Now Windows management moved to Powershell bloatware.
is "save" is the "redirect to file", then "append" will be the "redirect to end to file" - the days of Unix are coming to an end, but even so, that _wont_ be a "light switch" moment, and NuShell is one example of that, how quickly it changes comes down to user needs, wants, and what OS's force upon said user.
I stopped distro-hopping because it became very time-consuming. Why spend hours on distros I'm not going to use? Nushell looks interesting but I didn't see anything that would make me drop Bash right away. Choice is the strength of Linux and open source but too much choice can be overwhelming. It may be that Nushell may rule the world but the odds are against it. And what about people with Bash programs? Can they be used in Nushell?
The fundamental problem of change in IT is that so much work is already done it can be a major headache to recreate it anew. That's why there are still COBOL systems in production use. For example for this shell to become worth it you'd basically need to rewrite a lot of user programs to give out data in the new format, then rewrite your scripts. Is it worth it? If you already have systems established, probably not. Starting fresh, maybe, if you have free time for that.
Non-POSIX-compliant bash-scripts aren't such a nice thing either. Luckily, your choice of interactive shell doesn't have to effect the script interpreter.
#22:19 A slight brainfart diversion into character sets there. Unix used ASCII. Of course, "octal" is not a character set, but is a base-8 number system, mostly displaced by the base-16 hexadecimal number system these days. (But octal is still used by the chmod command for setting file permission bits.)
My understanding is in bash at least you go 2> {stderr ouput file). I use openwrt on a router and download things overnight to a stick on the router slowly from my downthrottled cell line. I have to disown the process and redirect output so I can leave it running after ssh.
OK, one thing I couldn't find in the documentation was doing something like opening a file via cat and using it in something, say like a variable. I figured this out on my own. I was just curious, so I wanted to see if I can get the terminal info from a text file in the config folder of an app I'm developing and place it into a variable in Nushell. I did so successfully. I found out I had to do `let terminfo = ( open ~/.config/distrogui/terminal.txt )` in my case. Further more, if I wanted to pipe it into yad in a form, I could do ` yad --form --field="test":CB ( open ~/.config/distrogui/terminal.txt ) ` So it seems the equivalent to using < is to put `( open )` after your command that you want to pass the file to.
Saving keystrokes for shortcuts is great, but for typing command not so much. If you want it to do exactly what you want it to do, and it's very specific, it's better to be verbose in some aspect, it clears up your mind. For simple and trivial commands better to have short symbols.
I already have to learn new things (new python versions, new c++, new GUI toolkits) last thing I need is a new shell to learn with no real reason... almost as bad as having gnome shell as a desktop (glad there alternatives that are actually usable)
Or - I get to learn new things, sometimes for a reason, sometimes for fun. Sometimes to stave off dementia in later life. So learning a fun new shell that makes some shell-y things easier is worth my time. YMM(obviously)V.
Ya... like some other comments... I don't get it (or see it.) If I was to wake, upon a morn... and the voice of God (or the system admin... sort of the same thing) said to me... thou must use Nushell... and all instances of Bourne and Bash had all been sent to software heaven... well then I'd learn Nushell. Otherwise, I'll just be the Luddite I've always been. Don't Bash me for being into Bourne.
They better make the output of the commands --raw by default whenever it's redirected. It'd be unbelievably annoying to have to send every file through post-production to remove all these tables.
only a couple minutes into the video but yeah lots of people have already done what nushell tries to do probably hundreds of times. eshell is one that immediately comes to mind and a lot of repl’s in general seem to try to mix scripting and programming it’s just that current sh-like shells are not particularly broken and the benefits of completely usurping convention and existing scripts is just not at all worth it for new features
I tried nushell a couple weeks back still don't really like it. The autocomplete is as dumb as a brick. Fish really is the only shell so far that really gets autocomplete and history just right
This reflects my experience as well. I don't love **everything** about Fish and it does occasionally loose me some time when I get caught out by some idiosyncrasy; but the autocomplete is dead simple, intuitive and effective out of the box. Probably saves me hundreds of keystrokes per day. More importantly it makes it so much easier to quickly assemble lengthy commands that you don't use often enough to have them fully memorized.
also just based on the README on github it seems like this thing is targeted (possibly unintentionally) towards a very specific group of users. the UI formatting is way ‘too cool’. it’s so flashy but simultaneously very noisy to me i somehow doubt this thing really would “run anywhere”… embedded systems?
Thanks for making this so quickly! I appreciate your perspective, and definitely agree with some of your insights. I can't disagree that if bash is working perfectly for you, there's no real reason to invest time into nushell - especially because it explicitly doesn't aim to be POSIX compliant. But for those of to whom bash is closer to Latin than English, nushell is an easy to learn, nice to use way to become productive in the shell without having to decipher the arcane runes of our forebearers.
Glad you enjoyed it! And that is why software like nushell is important it gives people a choice.
PyPI/sh ?
And it can handle CSV, etc nicely, unlike bash. Bash is interesting, but because of its early design decisions doesn't work well for the modern world.
To me the biggest advantage of Nu is that it's meant to be a cohesive set of commands and that output is structured/typed and therefore far less error prone than string manipulation. BTW: Invoking a non-nushell command is very simple: just prefix it with ^, like ^ls
That's pretty much PowerShell
And append is | save --raw --append
Thanks Michael saved me a read
Looks like a "shell for DBAs" :) nice review, thanks!
Welcome, Nir
Great review!
Thanks
Nushell in a nutshell is a better video title 🙃
I'd have to change the thumbnail to walnuts then lol, thanks for the suggestion, Wes
Thanks @WesSouza, I changed the title and added you to the credits in the video description, appreciate the tip
@@CyberGizmo BTW, talking about 'nutshells', you have a naming mistake on the first presentation slide, me thinks. ;)
😄 what was the original title?
Support of structured data sounds outrageously similar to Powershell!
BTW, it seems that using text to represent and pass around structured data is easier (see 'jq' etc) than to pack freeform text in a structured form.
Thanks for the additional info, Dimitri
I've seen this pop up a few places recently, it looks interesting. Not having really worked with it yet, it really _sounds_ like powershell to me. Once I wrapped my head around the structured/array-oriented paradigm I became really productive with powershell, and it's an awesome programming language - it just sucks as an actual daily-driver shell (try passing json to a native command...). If someone could iron out those issues and make a tool that is a genuinely high quality, functional programming language AND that also works as a shell, I'd drop bash and never look back (at least on my personal machines).
I'll take your word for it, I do not use WIndows I have heard good things and bad things about powershell too
PowerShell expects XML or CSV. Convert that JSON to XML with ConvertFrom-Json and it works.
Thanks for your info and perspective.
Welcome BlightBile
👍👍 - another great vid. Thanks!
Thanks glad you liked it :)
This video was torturous, I just watched long standing 60yo standards be eviscerated because "ooh look! pretty extended ascii tables!"
From what I have seen, there is "sed" functionality, but in the context of the NuShell philosophy, "everything is data", as opposed to the Unix philosophy, "everything is a file" - The usefulness of NuShell comes down to "what do you want to do", and then more importantly nowadays, how to you want _that_ to look
Reminds (now depricated) WMIC shell on Windows. It also structured all system management data in tables that could be queried in SQL fashion. But there's more, tables could also had custom commands integrated to execute on elements of the table, like in the Processes table you had process management actions like kill, etc. A lot of the system management could have been done in WMIC shell alone without any external program. Now Windows management moved to Powershell bloatware.
is "save" is the "redirect to file", then "append" will be the "redirect to end to file" - the days of Unix are coming to an end, but even so, that _wont_ be a "light switch" moment, and NuShell is one example of that, how quickly it changes comes down to user needs, wants, and what OS's force upon said user.
I stopped distro-hopping because it became very time-consuming. Why spend hours on distros I'm not going to use? Nushell looks interesting but I didn't see anything that would make me drop Bash right away. Choice is the strength of Linux and open source but too much choice can be overwhelming. It may be that Nushell may rule the world but the odds are against it. And what about people with Bash programs? Can they be used in Nushell?
I checked if i could run bash scripts in nushell and yes you can, I always prefix my shell scripts with #!/bin/sh to make sure the shell gets loaded
The fundamental problem of change in IT is that so much work is already done it can be a major headache to recreate it anew. That's why there are still COBOL systems in production use. For example for this shell to become worth it you'd basically need to rewrite a lot of user programs to give out data in the new format, then rewrite your scripts. Is it worth it? If you already have systems established, probably not. Starting fresh, maybe, if you have free time for that.
Non-POSIX-compliant bash-scripts aren't such a nice thing either. Luckily, your choice of interactive shell doesn't have to effect the script interpreter.
#22:19 A slight brainfart diversion into character sets there. Unix used ASCII. Of course, "octal" is not a character set, but is a base-8 number system, mostly displaced by the base-16 hexadecimal number system these days. (But octal is still used by the chmod command for setting file permission bits.)
My understanding is in bash at least you go 2> {stderr ouput file). I use openwrt on a router and download things overnight to a stick on the router slowly from my downthrottled cell line. I have to disown the process and redirect output so I can leave it running after ssh.
Nice, Mathew good to hear openwrt is still actively being used/
4:30 "I'm under a bash shell at the moment" while showing a window saying it's using zsh shell.. 😅
The equivalent to `cat` in Nushell is `open`
and thanks again
@@CyberGizmo You're welcome.
The Free Software Foundation took all the cool names I guess.
OK, one thing I couldn't find in the documentation was doing something like opening a file via cat and using it in something, say like a variable.
I figured this out on my own. I was just curious, so I wanted to see if I can get the terminal info from a text file in the config folder of an app I'm developing and place it into a variable in Nushell.
I did so successfully.
I found out I had to do `let terminfo = ( open ~/.config/distrogui/terminal.txt )` in my case.
Further more, if I wanted to pipe it into yad in a form, I could do ` yad --form --field="test":CB ( open ~/.config/distrogui/terminal.txt ) `
So it seems the equivalent to using < is to put `( open )` after your command that you want to pass the file to.
Saving keystrokes for shortcuts is great, but for typing command not so much. If you want it to do exactly what you want it to do, and it's very specific, it's better to be verbose in some aspect, it clears up your mind. For simple and trivial commands better to have short symbols.
Yep and that was the original intent of UNIX was, use as a few characters as possible 2-3 at most.
Powershell works against objects, not text, too. But with a much larger ecosystem. Not sure the point of reinventing the wheel.
Thumbs up for using Arch Linux | ARM
👍
I am not sure that 'od' means
'octal display'. To me it has always been 'octal dump', but both works so...
Yeah. With hex you only ever hear dump.
They had PowerShell in mind when concepting it, didn't they?
Oh yeah, it's Powershell w/o the ecosystem, though maybe the syntax is easier?
I already have to learn new things (new python versions, new c++, new GUI toolkits) last thing I need is a new shell to learn with no real reason... almost as bad as having gnome shell as a desktop (glad there alternatives that are actually usable)
it never ends does it, Len?
Or - I get to learn new things, sometimes for a reason, sometimes for fun. Sometimes to stave off dementia in later life. So learning a fun new shell that makes some shell-y things easier is worth my time. YMM(obviously)V.
@@robbybobbyhobbies there are so many cooler things to learn than a shell honestly, but to each their own
Ya... like some other comments... I don't get it (or see it.) If I was to wake, upon a morn... and the voice of God (or the system admin... sort of the same thing) said to me... thou must use Nushell... and all instances of Bourne and Bash had all been sent to software heaven... well then I'd learn Nushell. Otherwise, I'll just be the Luddite I've always been. Don't Bash me for being into Bourne.
LOL Will its ok you can't be a Luddite you are using computers :)
They better make the output of the commands --raw by default whenever it's redirected.
It'd be unbelievably annoying to have to send every file through post-production to remove all these tables.
only a couple minutes into the video but yeah lots of people have already done what nushell tries to do probably hundreds of times. eshell is one that immediately comes to mind and a lot of repl’s in general seem to try to mix scripting and programming
it’s just that current sh-like shells are not particularly broken and the benefits of completely usurping convention and existing scripts is just not at all worth it for new features
I tried nushell a couple weeks back still don't really like it. The autocomplete is as dumb as a brick. Fish really is the only shell so far that really gets autocomplete and history just right
This reflects my experience as well. I don't love **everything** about Fish and it does occasionally loose me some time when I get caught out by some idiosyncrasy; but the autocomplete is dead simple, intuitive and effective out of the box. Probably saves me hundreds of keystrokes per day. More importantly it makes it so much easier to quickly assemble lengthy commands that you don't use often enough to have them fully memorized.
also just based on the README on github it seems like this thing is targeted (possibly unintentionally) towards a very specific group of users. the UI formatting is way ‘too cool’. it’s so flashy but simultaneously very noisy to me
i somehow doubt this thing really would “run anywhere”… embedded systems?