Shell shouldn't be a completely new language, it should be an extension to already existing programming language, making completely new dialect makes it harder to remember and transition to other languages. It shouldn't be just a REPL, it should be an UX handcrafted so you feel it's a shell and not just an stdin input. It shouldn't be a barebones construct that allows to set values and do loops, it should have proper standard functionality like variable scoping, type system, serialization to specific formats, administration tooling and readable output.
btw. here is very incomplete idea status page: https://panekj.dev/projects/project_jackshit.html
PROJ-ff6ef9f2 - projects

@pj What kind of magnitude of project would it be to actually implement such a shell?
@conte A good example would be PowerShell (https://github.com/powershell/powershell) as it fits most of what I said, mostly the administration, type system and serialization part. My main grip with PowerShell is that it's dotnet (not very portable) but also performance has always been a pain point (very noticeable when using lots of modules and big profile config). Another good example of good UX is fish (https://fishshell.com/) although they opted into few quite annoying decisions like not allowing $() syntax (it was recently implemented though) but the interactive part of fish is what makes it a great shell to use daily and because it tries to have best defaults for most users (unlike zsh where you have to configure everything yourself).
GitHub - PowerShell/PowerShell: PowerShell for every system!

PowerShell for every system! Contribute to PowerShell/PowerShell development by creating an account on GitHub.

GitHub
@pj I'm aware of powershell already, I meant something like trying to adapt the python repl to a shell or something similar.
@conte Most likely possible but I'm not able to calculate the required work to do so. I think it would be better to start from scratch (but re-using already existing libraries) to build such software. Certainly a massive project to undertake that would take at least a year for single person if that person was working on it daily and that's just for coding/implementing. There's a lot to unpack such as testing, defining behaviour, retaining compatibility with certain behaviours of POSIX.
@pj what UX are you suggesting?

@felipe
Be interactive - we have proper terminals for years now, use colours, formatted output, don't be plain text like rest of linux.

Have "batteries included" - which awk will it run? GNU? BSD? A proper shell should have well defined and powerful tools that let users not have to worry about which kind of tools they have installed.

Proper behaviour, let in more on the programming part - test -z $a, will it be empty? is it int? string? What if we just drop stuff and let language take care of it, e.g.: if $a -eq $null { or if $a.is_empty() {?