There are at least two major advantages comparing hpman to yacs:
No need of forward-declaration
Using hpman, you can declare a hyperparameter wherever you want. However, in YACS, prior to using a hyperparameter, you have to declare it first. The example given in yacs's README clearly shows that.
Able to gather the meta info (file, lineno, default values, all appearances) of hyperparameters prior to running any code
In hpman, we statically parsed the code to gather all information we need. We could print out the code context of every single use of all hyperparameters, as shown in README, batteries-included. We believe recovering the context of writing a piece of code is fundamental to code-readability.
While in yacs, there's no easy way to do that.
This also eases the integration of hpman to downstream applications, such as hyperparamter optimization frameworks, IDEs, etc.
Besides, both hyperparameter managing framework supports common basic features like save/load from a config file, override hyperparameter values, etc.
There is something in common. https://github.com/rbgirshick/yacs