comparison between baz, sheldon and oh-my-bash plugin managers for gnu bash

( this post used to cover only baz and omb )

today ill be comparing these plugin managers for GNU BASH :

# testing environment

fresh installation of void linux, GLibC edition

# collection of data

i just run this command :

1
for _ in $(seq 1000); do { /usr/bin/time -f '%e' bash -ic exit 2>&1 | tail -n 1; }; done >out.dat

this collects run time for 1000 runs

but please remember to exit the shell at least once and reenter it to reload the plugins fully, and in for example sheldon plugin manager case -- to lock the lockfile and install new plugins, i also reboot the vm every time i install a new plugin manager or install any plugin using it

all omb, sheldon and baz required git, but sheldon on top of that needed 138 extra creates, rust, cargo, openssl lib, gcc, pkg-config and so on

# data

i have been able to collect 6 data sets :

-startup is just normal startup time per average, i made sure to enter the changed env at least once, no plugins or anything of sort, for omb its with all of its default plugins, aliases and etc disabled

-beefy for baz and omb is the agnoster plugin, and for sheldon, an equivalent beefy plugin -- base16-shell as theres no documentation on how to make a plugin for sheldon nor is there an agnoster plugin for it

# statistics

i quickly wrote a shitty python script to take care of the data, if you want it, grab it along with all data i collected in # links, its an xz compressed tarball

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
parsing 'baz-startup.dat'
parsing 'sheldon-startup.dat'
parsing 'sheldon-beefy.dat'
parsing 'baz-beefy.dat'
parsing 'omb-beefy.dat'
parsing 'omb-startup.dat'

statistics for 'baz'
  category 'beefy' :
    average : 0.01
    median : 0.01
    total : 12.97
  category 'startup' :
    average : 0.01
    median : 0.01
    total : 10.31

statistics for 'omb'
  category 'beefy' :
    average : 0.11
    median : 0.12
    total : 112.75
  category 'startup' :
    average : 0.11
    median : 0.12
    total : 109.84

statistics for 'sheldon'
  category 'beefy' :
    average : 0.29
    median : 0.28
    total : 286.07
  category 'startup' :
    average : 0.02
    median : 0.02
    total : 19.41

=== leaderboard ===

in category 'beefy'
  #1 baz
  #2 omb
  #3 sheldon

in category 'startup'
  #1 baz
  #2 sheldon
  #3 omb

in total
  #1 baz
  #2 omb
  #3 sheldon

as we can see, baz is the winner

# plugins used

# opinions

well, i was biased before and now i also got statistics to prove my bias, i love baz and i think its a much better alternative to most other plugin managers for bash, reasons to like it are that its very easy to make plugins for, very easy to use and maintain, its relatively small, its fully open source and under the gpl3 license, its fast, written in pure bash, optimised, etc.

when i found sheldon i expected more from it because its written in a compiled language, apparently it can be worse than omb even, oh well, i think the hype is all because of rust, hope this post contributes something to development of both omb and sheldon

also, if you want me to fairly test all of them ( using one single plugin ) please notify me and link me the plugins, i will immediately get to work updating this blog and if baz underperforms -- i will optimise it more, although at this point i dont think there is much room to optimise, although i think the base16 plugin is as beefy as the agnoster one