The command-line is the place for doing all of my work, however depending on your background dev platform or tools might not be your thing?
As a long time developer, I started as a prompt style developer because that was all there was until Visual InterDev was introduced to me.
After going through tools like Eclipse for Java, various Visual Studio iterations for .NET; I found myself getting back to the command-line when node.js hit the development world.
Today, it is rare that I use the mouse to get around in my daily dev tasks.
- git
-
.NET Core :
dotnet
- Node.js, JavaScript :
node
,npm
,yarn
,vue
,ng
-
Azure :
az
- Docker, Kubernetes :
docker
,kubectl
If there's a command-line tool, I am all over it and usually writing some handy bash script to make it even easier.
What are your tools of choice?
Top comments (14)
I generally end up using
npm init
andnpx
on a daily basis to accomplish a lot of scaffolding for the many small projects I make.The command I use most often:
npm init -y
.npmrc
with personal defaults so I can init a project like this with a single command rather than going through the interactive promptgit init
npx gitignore node
.gitignore
from the GitHub-maintained .gitginore reponpx covgen hello@bnb.im
npx license mit > LICENSE
.npmrc
) and moves that output to a file called LICENSELICENSE
file with the license text.this is the way
I'm a GUI guy. I can use the command line, and do for some power things like less common git commands, but I much prefer a GUI. The things I need are obvious and visible, I don't have to keep searching the help or the internet for the right parameters.
Maybe if autocomplete was a thing with great popup prompts then I might change.
I guess I'm lazy - I like to find the simplest way to do something with a tool keeping the cognitive load down, saving brain cycles for solving problems
You should try
az interactive
for the Azure CLI. It is an awesome learning tool but also is kind of like a GUI for command line.Azure CLI Interactive
I feel the same way. I don't have an issue or a perceived efficiency penalty by using a GUI so I don't see a need to stop using GUI-based approaches in favour of CLI-based ones.
I started writing software long before GUIs.
That being said, I absolutely hate CLIs. When I'm writing code the compiler tells me if it's valid. The IDE prevents me from having to memorize every single detail of syntax. With CLIs, not only do you have to just remember stuff, but what you have to remember is much less clear.
I just don't want to memorize this, ever:
What the heck is this thing inside of brackets inside of braces prefaced with an @ or double colons? I'm really happy for anyone if this makes them feel like a hacker.
I default to the CLI because I really like to understand how something works. In my experience most GUI tools are just executing the CLI commands, often batching a few together to undertake a task.
By using the CLI I get to know what the GUI would be doing if I don't have it available to me, so I'm never left high and dry.
When I was doing consulting the CLI was also a great normaliser. I'd be training someone on git and you'd have 1 person using Git Extensions, another using GitHub for Windows and someone using a different GUI. By focusing on one GUI you wouldn't have the everyone able to follow along, but using the CLI meant that everyone had it available and they could translate your CLI command to their GUI equivelant.
GUI can help you understand the generalities of a system. But for me the CLI and automation is the only way to do repetitive tasks. Script something once and you will have it forever.. or untill the vendor makes breaking changes.
Sometimes I think it is laziness that makes people use GUI, but I have realised now it is laziness that makes me script repetitive tasks so I can do one step rather than 10.
For my cloud resources, I prefer the
az
CLI and would use that/Infra as code templates for creating resources in a real world environment. but... if it's something new I'm learning/ playing with, I will generally create it in the GUI the first time round.I guess by default I've always been all about the GUI. Partly from feeling safe and secure in the comfort blanket of a GUI but mostly as having been developing applications exclusively in the various instances of Visual Studio over the years it's never been a requirement for me to step into the command line world too often.
My day to day still doesn't require it, but as I spend more and more of my learning time playing with Git, Node, React, Vue etc there has been an increase in my use of the command line and it hasn't been as scary as I thought.
I rarely touch the command line unless something really goes wrong/is the method of last resort. It isn't that I can't use it, I just don't like using it.
I do though understand the flexibility CLIs can offer, especially when scripting more complex actions together.
CLI has its place for repeatable processes, automation etc. But let's be clear, it's a regression for humans. It forces everyone to memorize cryptic commands and basically it makes us think, which is the opposite from what a good design does (don't make me think).
A lot of developers who like command line looks down upon developers who use GUI. That stereotype is almost a cliche.