A shell that uses objects is asinine. It looks like a bunch of java idiots tried to make a shell. If I wanted objects I would use a programming language, this is supposed to be scripting.
What's asinine is dealing with a bunch of text parsing BS every time I want to pipe some simple data from one program to another. Code to deal with spaces and weird symbols, to convert between hexadecimal and integers and comma-filled integers, to exclude header and footer lines. It wastes a lot of time and makes my scripts failure-prone. I'm speaking as somebody who has a lot of Unix experience and has barely used Powershell, so I don't know how Powershell stacks up in practice, but it's clear to me that an object system is superior in principle.
# Reminder: C-R to search history, alt-. to have last argument of last command
export HISTFILESIZE=1000000 # large total history limit
export HISTSIZE=1000000 # large bash instance history limit
export HISTCONTROL=ignoredups # ignore consecutive dups
shopt -s histappend # merge together history of different bash instances
PROMPT_COMMAND="history -a" # immediately save each command to history file