What Is Behind The CLI Making A Comeback?
05 Nov 2019
As I read the recent announcement about Stripe releasing a command line interface (CLI) I find myself think more about the reasons behind the recent resurgence of the CLI, and what makes it a growing favorite of developers. Personally, I’ve had an on and off relationship with the CLI. Sometimes I really enjoy working in there, and other times it makes me feel like I’m working with more of a black box. In the age of API, it felt like CLIs were falling out of favor, but in recent years I am coming across more API providers like Stripe who are launching their own CLI alongside their API, and I’m interested to stay in tune with the reasons behind this shift in the landscape.
I remember when I was first on-boarding with AWS S3 and EC2 back in 2006 they only had an API and CLI, no GUI dashboard. CLI seemed to be on equal footing with API in those days, but as the popularity of web APIs grew, the CLI didn’t seem to keep up. APIs always seemed more accessible to non-developers, and this was a significant portion of its appeal and growth beyond just the developer community. However, in recent years, CLI seems to be picking up momentum, and at first glance it feels like it is about the adoption of a CI/CD way of doing things, but I don’t want to just assume, I’d like to spend more time thinking about it, and solicit the opinion of other folks I know and trust in the space. Is CLI growth about CI/CD, or are there other factors at play here that is causing its resurgence across the API sector.
Beyond the growth in CI/CD, one of the other reasons I think there is a growth in CLI usage is that more enterprise developers are on-boarding to the concept of API platforms, and looking to get access to these valuable API resources that are emerging. These developers are often times much more older school than the latest couple of waves of developers who put APIs to work, and feel more comfortable in a CLI than they do making calls against a web API. Pushing API providers to provide CLI alongside their APIs, and often times deployed on top of their APIs, transcending HTTP or any particular programming language and reaching enterprise developers where they operate already. Making it so enterprise developers do not have to adopt new tooling and practices to get their work done with this new breed of digital resources.
Beyond CI/CD, and older enterprise developers coming into the mix, I’d say that many of the enablers that come with the CLI, things like logging, workflows, keyboard shortcuts, and other supporting features of the CLI might come into play as part of this shift. I will be spending more time understand why the CLI is making a comeback. If you have any thoughts on why the CLI might be preferable for developers over API, or how they complement each other, I’d love to hear your thoughts. For me, this dance between both CLI and API is where the sweet spot lies. I still have many tasks I do in the CLI, but mostly because that was the doorway introduced to me for a set of valuable resources. Ultimately I much prefer leverage a variety of scripts I’ve written or use my Postman collections to get at what I need when it comes to putting APIs to work, but I’m curious to learn more about other people’s work patterns, and why the CLI, or the API is helping you get your work done.