3 ms·
This might be slightly off-topic, but am I the only one that thinks that command line tools are archaic with some pretty serious drawbacks? I see and acknowledg
by mixmax 14y ago
This might be slightly off-topic, but am I the only one that thinks that command line tools are archaic with some pretty serious drawbacks? I see and acknowledge the power they can wield in the right hands, but for mere mortals it's a terrible experience. Especially on a windows box.
I've started learning Symfony2, and the default is to get it up and running using the dependancy manager composer, a commandline based tool. I've spent a week trying to finish the simple task of installing the framework. No success. Now, I don't make a living programming, so I'm definitely at the shallow end of the programming pool. But still. A week.
There are several problems as I see it:
- No discoverability. You are given no clues whatsoever as to what commands are available to you. You have to know exactly what you want to do. Yes, you can read manpages, forum posts, etc. but finding, learning and memorising a whole set of commands used in some program you might never use again seems like a terrible waste of productive time. Without the manual you're flying blind.
- All sorts of opaque dependencies. Composer for instance apparently requires git installed for it to work. But it doesn't say that anywhere. You also need to define paths, etc. which isn't covered anywhere.
- A million minor flaws and bugs. Until now I've run up against at least a few bugs, either in composer or in some other part of the chain of software. Only opaque general warnings are given, and finding out exactly what is wrong is next to impossible.
- Terrible UI. Copying and pasting doesn't follow convention, copying from a commandline to a notepad inserts linebreaks that you have to clean up manually, there's no way to maximise the cmd.exe window. The list of basic usability flaws goes on.
This isn't meant as trolling or ranting, although I must say I'm genuinely alienated by the commandline. I understand that text is great way for programs to talk to each other, I understand that the commandline is a great way to talk to a remote server, and I understand the power that piping, etc. gives you, so it's not like I'm denouncing the power that's inherent in the tool.
The problem is that the learning curve is tremendously steep, and I just don't feel it's worth it. To do the simplest thing I need to learn how a whole ecosystem works. I also have to page the information I need together from a number of different sources that I first have to find. It's kind of like having to build a car just to ride down to the baker to get some bread. It's quicker to walk than assemble a car before you can drive.
- drivebyacct2 14y agoMost of your complaints sound like problems with documentation (it existing and/or you using it) or problems with a poorly defined tool (edit), lol, or is specific to the Windows shell. I can think of several GUI apps that have ALL of those problems but I also can't script them, alias them or fix them. I spent 75% of my day in the terminal because I'm proficient and fast with it. Most of programming has a learning curve, I don't see why people expect otherwise when it comes to an interface that is every bit as powerful as a GUI but with a specific interface. No offense but with the number of misconceptions in that post, maybe you need to spend more time with it before dismissing it out of hand. (edit) seriously, you don't know about Notepad.exe and line breaks. :/ Man... if you would spend a bit of time on tooling and learning your environment you probably wouldn't be spending half the time you are doing whatever it is you're doing. Jumping into something is fun, but for sufficiently complex things, you DO have to step back and read the manual. Knowing what Symphony does, I'm quite sure that learning the CLI tool would be a far better use of everyone's effort than a GUI tool. This is even a place where I think the CLI tool makes exceedingly more sense to use. edit: To be fair, if I had to use Windows default tools and a PHP generator tool all day long, my words would probably be more angry than yours.
- mixmax 14y agoYou make some good points, let me try to answer. First, I'm certainly not dismissing it. Yes, I'm frustrated, but I'm also aware that a lot of people much smarter than me swear by this tool, so there's obviously a lot of value there. I'm more dismayed by the learning curve. I come from a sales/marketing/ux/business kind of background so my mindset is different. I like my tools to be beautiful and intuitive. As simple as possible but no simpler as Einstein famously said. The problem, as I see it, is that the commandline is like a marathon you have to run before you reap any rewards. Learning the commandline involves a whole sleuth of different things. Finding the right tools (I can infer from your post I obviously don't have those :-)), learning how filesystems work, unixy commands, git, cygwin, the list goes on. Seen from my perspective (and this might well be wrong) you basically have to have a good grasp of a whole boatload of ideas, technologies and concepts before a commandline tool is of any use to you. There's no easy way to learn a bit at a time. It's an either/or kind of deal. I don't see any easy solutions to this, but I think it's a problem.