| The project grew organically.
Evolution was something like: 1. Let's build a framework for model based RL, we can start by implementing the PETS paper (https://arxiv.org/abs/1805.12114) 2. It sure does have a lot of degrees of flexibility, and the PETS reference implementation is full of hard coded configuration. It would be nice to be able to combine configuration files somehow and override them from the command line. 3. Looking around, I didn't find anything that was quiet what I was after so I created OmegaConf (https://github.com/omry/omegaconf) 4. Building the framework, I evolved my understanding of what composing configuration actually means, and added additional features as I needed them. 5. The MBRL framework became really nice and useful, but was still primarily an implementation of PETS. I tried to make it a bit more generic to allow others in my team to use it for other things, and realized the better thing to do is to go for something totally generic and make it a standalone package, Thus Hydra was born. It evolved into what you see today, and it was almost exclusively my work - so at no point did I have the cycles to really support development in other languages. One of the challenges is to convince people that it's useful, It can do many things as some people point out and people can get uneasy because of that.
For Hydra to succeed, people should be using it, there is no point in spending years building something no one would use.
ML, which is where Hydra grew from is dominated by Python today, That's why Python is the first implementation. Building Hydra in another language is possible, especially now that there is a reference implementation, but it's a lot of work.
If you are interested in trying it out I would be happy to discuss and advise. |