rewrite the Azure CLI in Golang.
I tweeted about this somewhat jokingly and @AzureSupport directed me here. I imagine you plan on supporting and maintaining the Azure CLI for at least the next decade, and I can virtually guarantee that the total cost of doing so will be less if you rewrite in Go now. It will also be faster, easier to install, and generally provide a better experience for your users and developers. You've got some avid gophers at MSFT like Brian Ketelsen, Ashley McNamara, Jess Frazelle, etc. Ask them what they think!
I agree. Or rust, anything that spits out a single .exe on UNIX & Windows OS. The sprawling mess of python code conflicts with other py* project dependencies I am using. I long for the simple instructions of:
- download this
- run `./azure --create-me-a-server-without-all-the-confusing-and-messy-******** --oh-god-why-is-this-so-complicated --os-is-probably=linux --mem=8g --cpu=4 --disk=ssd --storage=100g --location=GDPR-friendly hostname
- ssh in & profit
#protip: look at digital ocean's docs for what actual developer simplicity can look like
I am fully aware that you will have customers with far more complex implementation needs who do need the full suite, but please appreciate the sheer cliff the first-time azure automater has to confront. Only AWS are a messier starting place.
Matteo Massimo Calabrò commented
I totally support this. The current CLI in Python in unusable in the latest Linux distributions and the container is unnecessarily huge.
DEB and RPM packages are outdated, they both depend on python2 despite manual installation requiring python3; this last option though hiddenly requires python2! The whole thing is just broken.
The docker container is big, way too big for a CLI and it can't replace the desktop installation. How would you `az acr login` without a `dind` container?
Golang doesn't have all these problems. If I have to compile it I can just `go get` it.