IDEs and the death of the command line interface

A place to discuss the implementation and style of computer programs.

Moderators: phlip, Moderators General, Prelates

schapel
Posts: 244
Joined: Fri Jun 13, 2014 1:33 am UTC

IDEs and the death of the command line interface

Postby schapel » Thu Dec 03, 2015 3:39 pm UTC

Recently at work co-workers have been very impressed by my ability to type commands in the Linux command line interface to do my work. The first time this happened was after I quickly typed a correct tar command without looking anything up. I soon realized that this person was impressed that I was able to type any commands at all (and he probably doesn't realize how notorious tar is for its hard-to-remember syntax)! In addition, I have watched as co-workers have tried to do programming using Visual Studio, and they seem to spend lots of time struggling with the IDE to perform simple tasks. Maybe this is why they're impressed with my command line skills?

This reminds me of a couple of incidents when I was taking Coursera classes. One fellow student said she was a manager of a programming team said she makes all her employees use an IDE because using the command line could not allow them to be productive on a large code base. I know for a fact this is complete BS because at the last company I worked we had several people working on a million-line application and we all used the vi editor and command line tools. The other Coursera incident was during a class where we were supposed to install Python and add it to the PATH environment variable. Many students ran Python and typed "set PATH=%PATH%;c:\Python\bin" at the Python prompt. It was as if they didn't even know that operating systems have a command line interface at all!

Perhaps the strangest incident was when I was in grad school and typing commands to render and view LaTeX documents. My partner on the project we were working on remarked that the only reason someone would type commands in Linux was to show off. Actually, to this day I have no idea how to use LaTeX without typing commands, and I have no desire to.

I wonder what's going on? My impression is that people are fastest at using whatever they're used to, so people who have mostly used IDEs think there's something intrinsic to the IDE that makes them faster. I'm sure they're faster using the IDE than the command line because that's what they're used to, but likewise I'm faster with a command line, because it's what I'm used to. Personally I think the command line is intrinsically faster from watching people futz around with their IDEs. I'm sure IDEs are faster for some particular tasks, but I have never personally had that experience or seen someone else use an IDE for those tasks (one of these tasks people often mention is refactoring code in a large code base). What do others think?

I guess also many people recommend IDEs to people who are learning to program, so they never learn the command line, and thus are slow with it and are very easily impressed by someone who can type in commands quickly. It seems to look like magic to them! What do people think about this?

Actually, I don't have anything against IDEs. The thing is that there is a discrepancy between what I hear and what I see. I often hear people saying IDEs are fantastic, but whenever I see someone actually trying to use one it looks slow and clunky to use. I have the same experience whenever I try to use one, too. I guess the fantastic thing about an IDE is that you don't need to learn how to type commands.

What are others' thoughts about why so few people know how to use command line interfaces these days, and why IDEs are hyped so much? Does anyone actually find an IDE faster than the command line, which is not because of lack of skill with typing commands?

User avatar
PeteP
What the peck?
Posts: 1451
Joined: Tue Aug 23, 2011 4:51 pm UTC

Re: IDEs and the death of the command line interface

Postby PeteP » Thu Dec 03, 2015 4:44 pm UTC

Effectively using command line requires me to remember precise commands maybe it is fast if you do remember them but I prefer having an IDE. Also I just prefer clicking to typing for simple things. If I can avoid it I almost never use the command line. Though it is useful for feeding one command with the output of another and of course I do have to use it sometimes to run some things which don't have an interface.

(Also I think ides should add a grapical interface for changing folders and inserting paths+filenames I definitely find clicking faster for that if the names aren't super simple.)

User avatar
Xenomortis
Not actually a special flower.
Posts: 1411
Joined: Thu Oct 11, 2012 8:47 am UTC

Re: IDEs and the death of the command line interface

Postby Xenomortis » Thu Dec 03, 2015 5:13 pm UTC

In the day to day lives of most people, command lines are basically never used. When at home, I can't think of when I use a command line, for anything other than programming (Windows user). Although I do use the keyboard for navigation a lot.
At work I use the command line extensively and any GUI applications are launched from it and I generally use vim as a matter of course...

Except for Java development.

As much as I find myself annoyed by its slow startup, random crashes, Eclipse is *very* convenient. I find the code navigation tools in IDEs to be far more effective than anything else I've tried, and debugging is much nicer in an IDE and an editor that is aware of the build process really smooths things out. Code completion works better and more reliably too (at least showing me function parameters) - I've not found a plugin for vim that matches either Eclipse or Visual Studio that doesn't sometimes choke and make things worse.
That said, I stick to the command line and vim as much as I can (which means all the python stuff I do).
(Code base ~1.5 million lines).

Oh, but I have to switch back to the command line for git stuff, because Eclipse sucks at that.
Image

Tub
Posts: 372
Joined: Wed Jul 27, 2011 3:13 pm UTC

Re: IDEs and the death of the command line interface

Postby Tub » Thu Dec 03, 2015 10:21 pm UTC

I'm using the command line for more things than I should (file browser? What's a file browser?), but I still think that an IDE can provide useful features over a text editor. The concept of a project and its file set is a requirement to implement auto-completion, syntax and grammar checking, a "jump to declaration"-button that works across files etc. An integration of editor and compiler is a useful thing, too - if only to jump to the file and line where an error occurred. Dito editor/debugger.

If only eclipse had a proper text editor.. or Kate had an IDE around it that's not in perpetual beta. But alas, life is pain.

User avatar
Xenomortis
Not actually a special flower.
Posts: 1411
Joined: Thu Oct 11, 2012 8:47 am UTC

Re: IDEs and the death of the command line interface

Postby Xenomortis » Thu Dec 03, 2015 10:45 pm UTC

Tub wrote:If only eclipse had a proper text editor.. or Kate had an IDE around it that's not in perpetual beta. But alas, life is pain.

I once an Eclipse plugin that stuck vim into it.
It was painful.
Image

commodorejohn
Posts: 1041
Joined: Thu Dec 10, 2009 6:21 pm UTC
Location: Placerville, CA
Contact:

Re: IDEs and the death of the command line interface

Postby commodorejohn » Fri Dec 04, 2015 12:57 am UTC

I've tried different IDEs here and there, and I've still yet to see the appeal. The attempts to automate things (command completion, f'rexample) mostly just get in the way and aren't that useful in the first place (since any time I'm doing serious coding I already have the relevant reference open on another workspace/monitor,) and 90% of the real work of programming is stuff that can't be automated anyway (problem analysis, algorithm design, actual implementation thereof, and of course debugging.) About the one truly useful thing they provide that I can't get with, say, Programmer's Notepad is automated generation and management of makefiles...
"'Legacy code' often differs from its suggested alternative by actually working and scaling."
- Bjarne Stroustrup
www.commodorejohn.com - in case you were wondering, which you probably weren't.

User avatar
Thesh
Made to Fuck Dinosaurs
Posts: 5773
Joined: Tue Jan 12, 2010 1:55 am UTC
Location: Colorado

Re: IDEs and the death of the command line interface

Postby Thesh » Fri Dec 04, 2015 1:58 am UTC

I'd never try .NET programming outside of an IDE. Code completion is so damned helpful when there's a million classes with a million members each with a million overloads, and that's just System.IO.
The rage in their eyes, torches in their hands
And the power of the cross bringing fear to all the land
And darkness will come to us all.

User avatar
Flumble
Yes Man
Posts: 1990
Joined: Sun Aug 05, 2012 9:35 pm UTC

Re: IDEs and the death of the command line interface

Postby Flumble » Fri Dec 04, 2015 2:03 am UTC

I'm with Xemomortis for the most part.

Java is one of those languages that have so much redundant text that you can autocomplete 97% of the code, if you have an editor that parses your files and libraries (like eclipse or netbeans). Though, with the shift to functional programming in java 8, my code has become a lot more condensed. Now most of the ctrl+spacing is done to complete the Monad Stream and Optional methods including their parentheses.
For shell scripts, JS and Haskell I don't know whether a good IDE exists (unless you consider the browser an IDE for JS), but simple highlighting in a text editor does a good job. (as long as the editor has regular navigation and selection, meaning arrow keys, home to page down and combinations with control and shift)

schapel wrote:What are others' thoughts about why so few people know how to use command line interfaces these days, and why IDEs are hyped so much? Does anyone actually find an IDE faster than the command line, which is not because of lack of skill with typing commands?

IDEs have friendly buttons and option lists and check boxes and all that stuff. These appear in any GUI context, so you're familiar with them once you touch a computer for the first time. And they can present the information more clearly than a textual interface. Regarding IDEs specifically: they often offer a idiot-proof friendly debug environment and they integrate well with the work environment (in case of enterprise IDEs).
Well, those are my thoughts.
I find a lot of GUIs easier to use than their respective CLI versions. Mind you, I still use the keyboard (mostly), but for navigating the menus, not for typing commands.


Regarding autocompletion and highlighting: I've been using fish for some time, but is there another shell that has good/better completion or useful features?

commodorejohn
Posts: 1041
Joined: Thu Dec 10, 2009 6:21 pm UTC
Location: Placerville, CA
Contact:

Re: IDEs and the death of the command line interface

Postby commodorejohn » Fri Dec 04, 2015 2:23 am UTC

Flumble wrote:I find a lot of GUIs easier to use than their respective CLI versions. Mind you, I still use the keyboard (mostly), but for navigating the menus, not for typing commands.

GUIs in general, sure. I'd hate to do large-scale arbitrary file-management tasks without a graphical file manager, for example. And I'm more than happy to use a GUI text editor even if I could probably get along with a terminal-based one just fine (provided it had tabs and autoindent.) But programming specifically...it just seems to me like the majority of the real work isn't going to benefit, and most of the rest (in my experience) actually suffers from "stop helping me dammit!" syndrome when I use a full-fledged IDE.

Thesh wrote:I'd never try .NET programming outside of an IDE. Code completion is so damned helpful when there's a million classes with a million members each with a million overloads, and that's just System.IO.

Do you really actually use all that, though? It's always seemed to me that even in systems with a zillion assorted entities, most tasks only require like 5-10% of the total, which is usually enough to fit in the brain's quick-reference supplemented by a modest PDF/CHM reference without requiring too much deep searching. (C and stdlib falls under this category, for example, or original-flavor Visual Basic if we want to get all graphic-ey.) The exceptions I know of (Java, for example) I'd mostly categorize under "don't do that then!", where I really just can't wrap my head around why you wouldn't just use something else. That's probably a bit of a warped perspective, since I'm not currently working in programming professionally and thus have the liberty of using any tools/languages I choose, but it still seems to me like most of the problems IDEs are supposed to assist with are ones that could be addressed by taking a better approach to the project in the first place.
"'Legacy code' often differs from its suggested alternative by actually working and scaling."
- Bjarne Stroustrup
www.commodorejohn.com - in case you were wondering, which you probably weren't.

User avatar
hotaru
Posts: 1036
Joined: Fri Apr 13, 2007 6:54 pm UTC

Re: IDEs and the death of the command line interface

Postby hotaru » Fri Dec 04, 2015 3:37 am UTC

Flumble wrote:Regarding autocompletion and highlighting: I've been using fish for some time, but is there another shell that has good/better completion or useful features?

zsh, tcsh, and windows powershell are all pretty good.

Code: Select all

factorial product enumFromTo 1
isPrime n 
factorial (1) `mod== 1

User avatar
Xenomortis
Not actually a special flower.
Posts: 1411
Joined: Thu Oct 11, 2012 8:47 am UTC

Re: IDEs and the death of the command line interface

Postby Xenomortis » Fri Dec 04, 2015 10:25 am UTC

commodorejohn wrote:and 90% of the real work of programming is stuff that can't be automated anyway (problem analysis, algorithm design, actual implementation thereof, and of course debugging.

As I said, here are the main reasons I use Eclipse at work (in approximate order):

1. Code navigation - that is ctrl-click to go to definition, find classes that extend the current one, etc.
2. Integrated debugger.
3. Integrated build system.
4. Displaying function prototypes (plugins exist for vim, but they tend to suck).

The first two items just haven't been matched by anything outside of an IDE.
Code navigation tools in vim have outright sucked by comparison, and I've never managed to get the debugging plugins to work (although that was for C/C++ on Windows - never tried for Java).

It's not about the 90% - that 90% isn't much affected by your choice of editor.
It's about removing the overhead of the "irrelevant" tasks, the remaining 10%. It's just about smoothing things out.
Image

elasto
Posts: 3402
Joined: Mon May 10, 2010 1:53 am UTC

Re: IDEs and the death of the command line interface

Postby elasto » Sat Dec 05, 2015 2:42 pm UTC

Plus, there are things that can't be achieved nearly as easily outside of a GUI, like continuous unit testing with real-time feedback.

Graphical markers showing in real-time, as you type which lines of code are failing or not covered by unit tests becomes invaluable once you try it. (But, admittedly, Test-Driven Development is still a very niche philosophy.)

Rysto
Posts: 1459
Joined: Wed Mar 21, 2007 4:07 am UTC

Re: IDEs and the death of the command line interface

Postby Rysto » Sat Dec 05, 2015 4:14 pm UTC

I agree that point-and-click navigation is an essential feature. Another really nice feature that Java IDEs have is that they continuously compile your code as you type and point out all compiler errors. By having your error pointed out immediately it's way faster than coming back to the code 5 minutes later and trying to figure out where you went wrong. It's a minor thing, but I find that it really does make a big difference.

User avatar
ahammel
My Little Cabbage
Posts: 2135
Joined: Mon Jan 30, 2012 12:46 am UTC
Location: Vancouver BC
Contact:

Re: IDEs and the death of the command line interface

Postby ahammel » Sat Dec 05, 2015 5:45 pm UTC

What I'd really like is the ability to embed the text editor of my choice in an IDE. All the graphical whiz-bang stuff is great, but I've never run into anything that makes me want to give up Vim for typing. Sure, lots of IDEs have a half-assed Vim plugin, but the keybinds generally conflict with other things, and they're usually incomplete and buggy and just generally pale in comparison to the real thing.

The development environment of my daydreams would have Vim open in one window, a REPL in another, and a bunch of windows in the background doing the fancy incremental compilation/testing, code navigation and documentation stuff.

Basically I'd like all the fancy IDE features, but I want them to be loosely-coupled to the editor.
He/Him/His/Alex
God damn these electric sex pants!

Tub
Posts: 372
Joined: Wed Jul 27, 2011 3:13 pm UTC

Re: IDEs and the death of the command line interface

Postby Tub » Sat Dec 05, 2015 6:36 pm UTC

commodorejohn wrote:But programming specifically...it just seems to me like the majority of the real work isn't going to benefit, and most of the rest (in my experience) actually suffers from "stop helping me dammit!" syndrome when I use a full-fledged IDE.

You know, you can configure the IDE's helper syndrome. My eclipse doesn't autocomplete anything unless I press a hotkey.

DaveInsurgent
Posts: 207
Joined: Thu May 19, 2011 4:28 pm UTC
Location: Waterloo, Ontario

Re: IDEs and the death of the command line interface

Postby DaveInsurgent » Tue Dec 08, 2015 7:00 pm UTC

This probably sounds stupid, but I often use the time it takes to use the IDE as a way of giving myself a few cycles to think. It also gives (some of my) fingers a break. That said, I've shifted from "90%+ IDE" to a more 50/50 with a simpler IDE (atom) and I feel like I enjoy the balance.

adanedhel728
Posts: 52
Joined: Sat Nov 07, 2009 11:03 pm UTC
Location: Central U.S.

Re: IDEs and the death of the command line interface

Postby adanedhel728 » Mon Feb 22, 2016 5:01 pm UTC

it just seems to me like the majority of the real work isn't going to benefit, and most of the rest (in my experience) actually suffers from "stop helping me dammit!" syndrome when I use a full-fledged IDE.


This summarizes why I've started to gravitate towards text editors instead of IDEs. I like the idea of the debugging tools, but even when I use Visual Studio (the only IDE that I've found to be tolerable so far, and even then with a lot of configuration), I use those debugging tools less and less. Using text editors has also been kind of freeing, because I'm actually working with the code instead of fighting with the IDE settings (I spent hours trying to figure out how to disable Eclipse's hyper-aggressive autocomplete before I gave up). All that being said, I'm very new to software development-- Maybe my opinions will change in the future.

I don't really have any opposition to IDEs as a rule, just that almost all of the ones that I've used have been awful and get in my way more than anything else. I tried Eclipse when learning Java and couldn't stand it. In my current position, they have PHPStorm, and I can' stand it. I use KATE at home for Java & PHP and Notepad++ for PHP.

I'm planning on learning Vim in the near future. I don't know if I'll like it more than the GUI text editors, but it's worth trying it out, especially since a lot of code veterans love it.

User avatar
eviloatmeal
Posts: 561
Joined: Thu Dec 11, 2008 9:39 am UTC
Location: Upside down in space!
Contact:

Re: IDEs and the death of the command line interface

Postby eviloatmeal » Tue Feb 23, 2016 12:31 pm UTC

schapel wrote:My impression is that people are fastest at using whatever they're used to, so people who have mostly used IDEs think there's something intrinsic to the IDE that makes them faster.

I'm inclined to think of this such that, if you've learned the... "high-level" methodology of IDEs exclusively, then you might be stuck in the muck if something breaks and you have to fall back to doing stuff manually. On the other hand, if you're a command line native, it should at least be possible (if);a little clumsy)what)? fucking autocom... )); to use an IDE in a pinch, if necessary.

Personally, I do most everything I do for the sake of the craft, not the product. So while an IDE might contribute to productivity, for what little scripting and kludging I do, I enjoy typing things out, and the experience of getting it to compile is part of the fun.
*** FREE SHIPPING ENABLED ***
Image
Riddles are abound tonightImage

User avatar
notzeb
Without Warning
Posts: 629
Joined: Thu Mar 08, 2007 5:44 am UTC
Location: a series of tubes

Re: IDEs and the death of the command line interface

Postby notzeb » Wed Feb 24, 2016 2:59 am UTC

Hm, as an experiment, let's see what I have running right now. Two urxvt terminals (white text on black background) and gedit are running (gedit has ten files open - four cpp files, three txt files, one tex file, one bib file, and one file with no extension), as well as firefox, a file browser, and five instances of evince. One terminal is being used to recompile latex files, the other is being used to run a short C++ program I wrote to check a conjecture (it found a counterexample).

In my experience, IDEs are about 0.001% more convenient than a gedit/kate + terminal combination if they are set up properly and have the options concerning indentation set just right (no, I don't want six spaces, I want an actual tab character). Well, unless your program somehow causes the IDE to hang, or you are testing a program which takes command line arguments (actually, most of the programs I write these days take command line arguments, so that I can more conveniently run my programs over and over with slightly different inputs each time). I use vim when it's appropriate, but I always have these flashbacks to my childhood when I had to ssh into a server which ran an old version of vi which was incredibly broken and unforgiving (backspace didn't work, arrow keys didn't work...) whenever I wanted to modify my code. I use notepad if I am forced to code on a Windows computer, but then I miss the syntax highlighting that a real text editor can offer.
Zµ«V­jÕ«ZµjÖ­Zµ«VµjÕ­ZµkV­ZÕ«VµjÖ­Zµ«V­jÕ«ZµjÖ­ZÕ«VµjÕ­ZµkV­ZÕ«VµjÖ­Zµ«V­jÕ«ZµjÖ­ZÕ«VµjÕ­ZµkV­ZÕ«ZµjÖ­Zµ«V­jÕ«ZµjÖ­ZÕ«VµjÕ­Z

commodorejohn
Posts: 1041
Joined: Thu Dec 10, 2009 6:21 pm UTC
Location: Placerville, CA
Contact:

Re: IDEs and the death of the command line interface

Postby commodorejohn » Wed Feb 24, 2016 3:40 am UTC

adanedhel728 wrote:I'm planning on learning Vim in the near future. I don't know if I'll like it more than the GUI text editors, but it's worth trying it out, especially since a lot of code veterans love it.

I'm gradually coming around on vim. It's still nothing I'd replace (tabbed GUI text editor x) with for general purposes, but it's the best solution I've found yet for serious text editing in a *nix terminal environment (I like nano as well, but as far as I can tell it's stuck on either no line-wrapping or hard line-wrapping that puts CR/LFs where you don't want them - rather baffling indeed.) The main thing about vim is that it comes configured for some arcane, weird behavior out-of-the-box - it isn't until you start digging into the options available through .vimrc that it becomes clear that you can configure it to work in a much more intuitive fashion.
"'Legacy code' often differs from its suggested alternative by actually working and scaling."
- Bjarne Stroustrup
www.commodorejohn.com - in case you were wondering, which you probably weren't.

User avatar
ucim
Posts: 6054
Joined: Fri Sep 28, 2012 3:23 pm UTC
Location: The One True Thread

Re: IDEs and the death of the command line interface

Postby ucim » Wed Feb 24, 2016 4:35 am UTC

I'm not sure whether this is about IDEs or about GUIs... though they are related. A proper IDE just provides a suite of readily accessible tools for common things (like syntax highlighting, block hiding, variable watching...), but this does mean that you have several things going on at once, so you have to choose which thing to interact with as well as actually do the interaction. IDEs are often embedded in GUIs, and it's the GUI that gets in the way (or provides nice access to otherwise forgotten commands through menus and buttons).

Jose
Order of the Sillies, Honoris Causam - bestowed by charlie_grumbles on NP 859 * OTTscar winner: Wordsmith - bestowed by yappobiscuts and the OTT on NP 1832 * Ecclesiastical Calendar of the Order of the Holy Contradiction * Please help addams if you can. She needs all of us.

commodorejohn
Posts: 1041
Joined: Thu Dec 10, 2009 6:21 pm UTC
Location: Placerville, CA
Contact:

Re: IDEs and the death of the command line interface

Postby commodorejohn » Wed Feb 24, 2016 6:02 am UTC

It's the IDE that I frequently find irksome; the issue is only tangentially related to GUI-vs.-text because most text-mode tools seem to almost always be discrete text editors with maybe syntax highlighting or user scripting if they're feeling really fancy - the wing-ding duzitall stuff that I find getting in my way seems to be strictly confined to GUI environments. (There are proper IDEs for text-mode environments, mind you, but they seem to all be built on the old Turbo Pascal model of "multiple-document text editor/project builder" without a lot of really fancy doodads.)
"'Legacy code' often differs from its suggested alternative by actually working and scaling."
- Bjarne Stroustrup
www.commodorejohn.com - in case you were wondering, which you probably weren't.

Derek
Posts: 2169
Joined: Wed Aug 18, 2010 4:15 am UTC

Re: IDEs and the death of the command line interface

Postby Derek » Thu Feb 25, 2016 9:48 am UTC

I'm pretty sure emacs is capable of going full IDE if you choose to set it up that way with some extensions.

commodorejohn
Posts: 1041
Joined: Thu Dec 10, 2009 6:21 pm UTC
Location: Placerville, CA
Contact:

Re: IDEs and the death of the command line interface

Postby commodorejohn » Thu Feb 25, 2016 4:52 pm UTC

I don't doubt. But then, I'm pretty sure emacs is also capable of being an astrological quantum parallel-universe remote viewer if you set it up with the right extensions. It's still fundamentally a text editor.

At least, somewhere in there.
"'Legacy code' often differs from its suggested alternative by actually working and scaling."
- Bjarne Stroustrup
www.commodorejohn.com - in case you were wondering, which you probably weren't.

User avatar
thoughtfully
Posts: 2245
Joined: Thu Nov 01, 2007 12:25 am UTC
Location: Minneapolis, MN
Contact:

Re: IDEs and the death of the command line interface

Postby thoughtfully » Sun Mar 06, 2016 2:16 pm UTC

I have migrated from Kate to Geany, give it a try. I have been doing a bit of Java/Scala/Android-related stuff, and it's hard to give up the IDE there, but for anything else, a text editor+REPL+browser (for javascript, web apps, etc) and maybe a terminal tab for mathomatic when I need to do a little crunchy math.
Image
Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away.
-- Antoine de Saint-Exupery

lorb
Posts: 404
Joined: Wed Nov 10, 2010 10:34 am UTC
Location: Austria

Re: IDEs and the death of the command line interface

Postby lorb » Tue Mar 08, 2016 10:13 pm UTC

commodorejohn wrote:
adanedhel728 wrote:I'm planning on learning Vim in the near future. I don't know if I'll like it more than the GUI text editors, but it's worth trying it out, especially since a lot of code veterans love it.

[...] (tabbed GUI text editor x) [...]


vim can do tabs. vim -p
Please be gracious in judging my english. (I am not a native speaker/writer.)
http://decodedarfur.org/


Return to “Coding”

Who is online

Users browsing this forum: No registered users and 4 guests