Indeed, the concepts are not language specific. I was hoping to see something with a grammar and a reference implementation. Looking briefly at this project, not all concepts can be abstracted but a specification with a set of integration tests would make it implementable in other languages.
Edit: it surprises me every time that a project like this always goes for a single language implementation. There are plenty of good concepts in there. I know purists will say “it does too much”. But when one can crank out a complex cli app and spend half time on it thanks to things like this, I’m all up for it.
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.
Thank you for a thorough reply. It would be definitely an interesting exercise to port it to another language. I’ll reach out. Let me do the homework, a deep dive so to speak, before reaching out.