#40 - Ksh2020 Flamewars
I don't think any clone of ksh can beat the
original in term of speed because Korn's C code cannot be beat.
Feature-wise, mksh wants to be compatible with
bash and oksh is a little more true to
ksh however it has gone a different path and has got
less features than ksh. But I haven't read nor used
near enough about these yet to have any due criticism..
ksh code is also dependent on other software from
Advanced Software
Technology suite, developed by Mr Korn and a few others through
many decades of work.
When Siteshwar and Kurtis Rader started to work on
ksh code in 2017 thereabouts, they could not understand
it very well and chose to remove large chunks of the code and
rewrite whatever was left in such a C idiomatics and using
compilers that made the shell terribly slow compared to original
stable ksh93u+ and ultimately led to the AST code
reversion.
In retrospective, if Siteshwar and kdrader1961 wanted to change
so much of the code, they should have forked
ksh repo in the first place
I am happy some stepped up and manage to get AST (and
ksh93) official repo back on the correct track.
ksh seems like a suitable default shell for
scripting. Feature-wise, that is comparable to
bash+zsh in some sense. Even though Mr Korn, Mr Glenn
and others stopped developing AST tools, I reckon these tools can
be useful for quite some time yet almost unrivalled..
For example, instead of using GNU or busybox
default utilities such as grep, one can use AST
grep, wc and so on..
AST repo was easy to compile in my machine and
ksh93 had many features enabled by defaults. I wonder
why Siteshwar decided to change the compiler if this works so well
in my current machine and, as I have read, in so many legacy
hardware architectures, too.
I will be using ksh for scripting more often. There
are some specific cases ksh beats zsh and
bash by a lot, in other cases just by little. Still,
it does not let the user expectations down as it seems to always be
faster than these other big shells.
In fact, I rewrote a bash bitcoin parser script in
ksh. Unfortunately, in this case, as the script is so
big, convoluted and makes heavy use of external tools (mainly
bitcoin-cli and jq), it cannot be get
much faster.. Still I got a 10-15% speed increase and sometimes
more than that depending on the functions used. However, if you are
going to use that script parser, prefer the bash
version as the ksh code is experimental and not fully
tested to match bash output..
Below are some references I spent almost a full day reading.
They are related to ksh more recent developments and
some other references from a live event I made recently on
YouTube..
- Entrevista David Korn
- https://news.slashdot.org/story/01/02/06/2030205/david-korn-tells-all
- Demissão do David Korn , Glenn e outros da AT&T
- https://www.mail-archive.com/ast-developers@lists.research.att.com/msg01462.html
- Repo Oficial da AT&T (att/ast)
- https://github.com/att/ast
- KornShell 2020 - Impossible Happens!
- http://situ.im/posts/kornshell-2020-impossible-happens
- Anúncio da Restauração do Repo do Ksh93u+ (att/ast)
- https://github.com/att/ast/issues/1466
- Issue #1466 - Rewinding [ast/ksh93] repo and encouraging community
- https://github.com/att/ast/issues/1466
- Issue #1446
- https://github.com/att/ast/pull/1446
- Issue # 1449
- https://github.com/att/ast/issues/1449
- Issue # 1464
- https://github.com/att/ast/issues/1464
- Site do Korn Shell oficial
- http://kornshell.com/
- Repo do Ksh93u+m
- https://github.com/ksh93/ksh
- Sobre os double floats (notação matemática interna do Ksh/Zsh)
- https://unix.stackexchange.com/questions/422122/why-does-0-1-expand-to-0-10000000000000001-in-zsh
- echo(1) and printf(1)
- https://www.in-ulm.de/~mascheck/various/echo+printf/
- Biology for Cynics
- https://mountaineerbr.github.io/blog/16/
- Computer for Cynics (Ted Nelson)
- https://www.youtube.com/user/TheTedNelson/videos