Command Line based IDEs

30 views
Skip to first unread message

Carl Jokl

unread,
Jan 19, 2012, 4:35:22 AM1/19/12
to The Java Posse
I wanted to ask whether anyone has experience of the capabilities of
command line IDEs? I ask because I have not really tried doing any
development in anger from the Linux / Unix command line. I have only
really tweaked configuration files with vi and that is about it.

I ask because I have a co-worker who has been rather condescending
about the use of any GUI tools. He seems determined never to use them
and thinks he can do everything more efficiently from the command
line. I would suppose it is harder given he is an Objective-C
developer on Linux. I don't think the options for Objective-C tools
and IDEs are that great to begin with unless you are on the Mac. I
tried a GNUStep IDE on Ubuntu called ProjectCenter. On the latest
Ubuntu I found the UI so buggy and flaky that the whole IDE is frankly
unusable. I have come back to it more than once and each time given up
because I can't work it (often through stupid things like mouse clicks
not being responded to or responding in the wrong place).

To be honest I know if someone holds such an extreme anti GUI tools
opinion and is determined not to use them then it is pointless arguing
with someone like that because I don't think they are really prepared
to be convinced anyway.

It did make me curious though as to what kind of development power is
available from command line editors like Emacs. I know that key
features I like in IDE's is the ability to hyperlink through to a
method declaration / class declaration or where a variable is
declared. Also finding the usages of a method is really valuable to me
as well as being able to apply various forms of refactoring. In theory
a command like editor could support some or all of that. However I
don't know what features are actually currently available.

Just curious.

Steven Siebert

unread,
Jan 19, 2012, 5:00:22 AM1/19/12
to java...@googlegroups.com
You might find this approach interesting:

http://jvi.sourceforge.net/ 

<wisper>use netbeans</wisper>



--
You received this message because you are subscribed to the Google Groups "The Java Posse" group.
To post to this group, send email to java...@googlegroups.com.
To unsubscribe from this group, send email to javaposse+...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/javaposse?hl=en.


Carl Jokl

unread,
Jan 19, 2012, 5:23:05 AM1/19/12
to The Java Posse
<wisper>I already use netbeans. Eclipse has some graphical problems on
my (latest) version of Ubuntu Linux presumably due to SWT not being
kept up to date properly</wisper>

Josh Berry

unread,
Jan 19, 2012, 7:32:12 AM1/19/12
to java...@googlegroups.com
On Thu, Jan 19, 2012 at 4:35 AM, Carl Jokl <carl...@gmail.com> wrote:
> It did make me curious though as to what kind of development power is
> available from command line editors like Emacs. I know that key
> features I like in IDE's is the ability to hyperlink through to a
> method declaration / class declaration or where a variable is
> declared. Also finding the usages of a method is really valuable to me
> as well as being able to apply various forms of refactoring. In theory
> a command like editor could support some or all of that. However I
> don't know what features are actually currently available.

Pretty much all of the navigation stuff that you named has been there
for ages in c like languages with ctags. Even in vim I can ctrl-] on
a word and it will pop me a list of all of the places that symbol is
used. I don't use emacs, but I understand that it can actually be a
bit more advanced than just ctags. Just take a look at the scala
support in emacs to see that it is not lacking ability.

Add in fugitive.vim and you have a really good front end to a git
repo. :Ggrep "sdfsf" will let you quickly cycle through all git grep
results ridiculously quickly, for instance. (With emacs, you can just
have an embedded terminal and then you are back to anything you can do
in the command line can be done in the editor.)

Refactoring is something that is often not as well supported, to my knowledge.

And this is ignoring the quip a lot of *nix folks have about it being
their ide. :)

Ricky Clarkson

unread,
Jan 19, 2012, 6:27:27 AM1/19/12
to java...@googlegroups.com
The features you listed are generally available to vim and emacs. I don't know about their support for Objective-C but there are many languages you can pretend are C and those things work.

I expect your friend just likes the control aspect, and that as long as you use a build tool that IDEs support he will be able to switch back and forth without problems.

Give him a couple of tasks that IDEs do well, e.g., a method rename, finding dead code, duplicated code, etc., then show him how easy they are from an IDE.

Expect serious resistance if your build tool is Eclipse (i.e., that you don't use a build tool).

Carl Jokl

unread,
Jan 19, 2012, 8:23:31 AM1/19/12
to The Java Posse
It makes sense that a command line IDE can in theory support many or
most of the same functionality as a GUI IDE. The command line is after
all
just a different view on what can be just the same model. I just don't
have enough experience of trying to do development with *nix command
line editors
to know what is and isn't supported just that lots of people rave
about how great Emacs is.

I think it can be a generational thing based on when people came in
contact with Unix environments. I like most others didn't get proper
exposure to it until University. This was post 2000 so GUIs even for
Linux/Unix were the norm. I am still old enough to have worked from
the command line and so have done a bit for both worlds. I just get a
bit fed up sometimes with prevailing attitudes that real men must do
everything from the command line to show how clever this is. It seems
a lot less to do with efficiency and more to do with bravado and ego.
Still if I had the same level of experience as others doing things
from the command line then I am sure I might find it powerful. I am
not sure it would be enough to make me want to give up my IDE though.

On Jan 19, 12:32 pm, Josh Berry <tae...@gmail.com> wrote:

Steven Siebert

unread,
Jan 19, 2012, 8:53:09 AM1/19/12
to java...@googlegroups.com
=) I hope that wasn't taken the wrong way - Tor wispering "use netbeans" at the end of a couple episodes always makes me smile

Carl Jokl

unread,
Jan 19, 2012, 9:03:05 AM1/19/12
to The Java Posse
The sad thing is I paid good money out of my own pocket for a full
commercial licence of IntelliJ but these days I never use it. Not that
I have anything against it, I am just afraid of creating a dependency
on a tool that is not free (give or take the community edition which I
have not tried) when I work on a project with others that do not have
IntelliJ.

Ricky Clarkson

unread,
Jan 19, 2012, 8:11:14 AM1/19/12
to java...@googlegroups.com
It sounds like we're around the same age, but I vastly prefer command-line tools, as I can automate them, they're quite often faster and they work on machines I only have non-graphical access to.

Beyond that I should have pointed out a flaw in your original question.

Generally, command-line tools are those that take command-line arguments and more or less run without user interaction.

That means a command-line IDE is pretty much impossible; you mean a console application. What I said in the first paragraph of this mail refers to command line tools, and I believe no matter the generation we should all be comfortable with those. Console applications, the difference between graphical and textual isn't as important as the featureset and usability differences.
-----Original Message-----
From: Carl Jokl <carl...@gmail.com>
Sender: java...@googlegroups.com
Date: Thu, 19 Jan 2012 05:23:31
To: The Java Posse<java...@googlegroups.com>
Reply-To: java...@googlegroups.com

Ricky Clarkson

unread,
Jan 19, 2012, 8:12:27 AM1/19/12
to java...@googlegroups.com
So use a build tool like maven, and a continuous integration server like Jenkins.
-----Original Message-----
From: Carl Jokl <carl...@gmail.com>
Sender: java...@googlegroups.com
Date: Thu, 19 Jan 2012 06:03:05
To: The Java Posse<java...@googlegroups.com>
Reply-To: java...@googlegroups.com
Subject: [The Java Posse] Re: Command Line based IDEs

Carl Jokl

unread,
Jan 19, 2012, 9:34:51 AM1/19/12
to The Java Posse
You are right that the thread should be Console based IDEs. I don't
think the name can be changed now though (at least I have not found a
way).
The type of tool used can depend on the task I am performing. I prefer
a GUI for editing due to being able to have many files open and just
click between them (in principle possible with the console as well). I
particularly like the gui when I am debugging. the ability to just
hover my mouse over a variable and just see what it is set to I find
quite natural. I have used gdb and know it is possible to output the
value of variables from the console too but in that case I found
setting break points challenging because from the console I could be
looking at source files or in gdb but not both. It might have been
more challenging than it would otherwise be because the code was
objective-c and getting the method names right for break points I
found a bit of a challenge. Also a GUI IDE can combine multiple bits
of data together from different sources in the same display such as
allowing me to browse a database schema my code has to interact with.
Performing queries from the console in PostgreSQL I frequently find
the number of columns will be too big for the width of the console and
so the rows will wrap and then it gets really hard to follow which
value is in which column.

Cédric Beust ♔

unread,
Jan 19, 2012, 1:01:51 PM1/19/12
to java...@googlegroups.com

On Thu, Jan 19, 2012 at 1:35 AM, Carl Jokl <carl...@gmail.com> wrote:
I ask because I have a co-worker who has been rather condescending
about the use of any GUI tools. He seems determined never to use them
and thinks he can do everything more efficiently from the command
line.

Your coworker sounds a bit... dumb.

The more tools you have in your toolbox, the more efficient you are. Period. This has nothing to do with which one is better than which other one, it's about optimizing the simple action "Using the best tool for the job". You'll be much more productive if you can pick from ten tools than if you can only pick from two.

Myself, over the course of a day, I use vi, emacs, Eclipse and the shell. Each is very good at a few specific things so I feel like I'm close to making an optimal use of my time.

More specifically, it's obvious that command line tools have advantages over graphical ones (automation, etc...) but it should be obvious that graphical tools have vast advantages over command line ones as well. A good example to me is git. The information that git provides in the shell is quite overwhelming and trying to interpret it in a shell window is very inferior to having a big graphic window showing you colored trees and smart diffs.

Obviously, the mouse has advantages for certain types of navigation as well over emacs or vi, no matter how good these two tools are at navigating.

I'll stop there, I just find it preposterous to hear someone say something like your coworker did (the closed-minded attitude notwithstanding, which must be a joy to work with). Hopefully, that's the place you are no longer working at.

-- 
Cédric

Carl Jokl

unread,
Jan 20, 2012, 5:01:59 AM1/20/12
to The Java Posse
> Your coworker sounds a bit... dumb.

I would not say that. He is bright enough and has a deep technical
knowledge. I think he just has some extreme opinions. To be honest
though, if XCode is the only GUI IDE (besides ProjectCenter which I
mentioned doesn't seem to work for me) I know that can be used for
writing Objective-C then why not use a console editor? There are
plenty advantages for Java but he is not a Java developer.

Maybe I am somewhat more bothered by his taking the time to be
belittling towards those who do use GUI tools but I could also just be
taking his remarks more seriously than intended. I mean I hold some
opinions regarding the technical leadership still favouring emacs as
the best tool for Java development which seems a bit out of touch with
modern Java development practices. The difference is that I keep that
opinion to myself and at the end of the day developers can use
whatever they prefer. It does bother me a bit though if the tooling
ends up spilling over into the code style. Examples are lots of unused
imports (which most IDEs would highlight and make easy to remove) or
funky indentation possibly due to copy and pasting or just because of
trying to have everything fit within the character width of the
terminal. I don't mean things like splitting lots of parameters onto
multiple lines so that you don't have to scroll to see everything that
a method is called with. I have seen that, used it and don't mind it
(albeit still a bit of a throwback to console editing). It is things
like having the if statement indented but not the contents of them or
worse just that the indentation is all over the place. This may not be
just a console editing issue though and I recognise that.

> Hopefully, that's the place you are no longer working at.

Hold on to that positive feeling. I expect it will be true one day.
--
Cédric

Phil Maskell

unread,
Jan 20, 2012, 10:28:23 AM1/20/12
to java...@googlegroups.com
Hi,

You mentioned:

"I would not say that. He is bright enough and has a deep technical 
knowledge. I think he just has some extreme opinions. To be honest 
though, if XCode is the only GUI IDE (besides ProjectCenter which I 
mentioned doesn't seem to work for me) I know that can be used for 
writing Objective-C then why not use a console editor?  There are 
plenty advantages for Java but he is not a Java developer. "

Give this a look - http://www.jetbrains.com/objc/  

Never used it as I haven't looked into obj C, but I use Intellij for Java and like it, this may be of use, not sure if its cross platform though (I guess its Java like Intellij, but may need some Mac libraries?). But he could run his build script from within it anyway, worth a look.

Phil

Carl Jokl

unread,
Jan 20, 2012, 10:37:54 AM1/20/12
to The Java Posse
Phil

Thank you for the suggestion. Unfortunately this IDE is not going to
be usable by either of us as work as our development machines are all
Linux boxes. Both XCode and AppCode are only available for OSX.
I own a Mac for my own personal stuff but am not allowed to use my own
machine at work for security reasons.

It seems to reinforce the point that I have only found usable
Objective-C IDEs on Mac O/S. It may stand to reason as that is where
the majority of people would use it. People building objective C on
Linux using GNUstep or other things might well just be too small of a
base to expect an IDE to be developed for them.

On Jan 20, 3:28 pm, Phil Maskell <maske...@gmail.com> wrote:
> Hi,
>
> You mentioned:
>
> "I would not say that. He is bright enough and has a deep technical
> knowledge. I think he just has some extreme opinions. To be honest
> though, if XCode is the only GUI IDE (besides ProjectCenter which I
> mentioned doesn't seem to work for me) I know that can be used for
> writing Objective-C then why not use a console editor?  There are
> plenty advantages for Java but he is not a Java developer. "
>
> Give this a look -http://www.jetbrains.com/objc/
Reply all
Reply to author
Forward
0 new messages