A good text editor for JAVA?

N

Nigel Wade

Roedy said:
I found EMACs drove me nearly nuts. My editing CUA reflexes were well
below conscious control. It was like being given a keyboard with all
the keys randomly rearranged. Even the mouse worked a different way.

Ah, you mean XEmacs - that's a horse of an entirely different colour. Emacs with
an X interface tacked on top which worked via macros. When the mini-buffer got
messed up and refused to exit, the X interface was rendered entirely useless.

Emacs well earned it's alternate name of Eat Memory And Crash System, though.
Even its legendary programmability could not make up for that.

Even if you do adjust, if you go back to another CUA editor I found
the reflexes don't recover. I am "uniligual" as a typist. I can't be
proficient on two editors for the same reason I can't rapidly type
both QWERTY and DSK. See http://mindprod.com/jgloss/dsk.html

So I am all for finding a decent IDE that can also function as a
generic text editor, and learn it thoroughly.

I don't think you'll ever find and IDE which provides a really good text editor.
For example, take what is arguably the most popular Java IDE, Eclipse, where
are the macro facilities, or the ability to do even basic editing tasks like
convert case, or capitilize?
 
O

Oliver Wong

(Sorry about
not providing a URL or message IDs, but I'm not sure how to do that
unambiguously.)

Generally what people seem to do is to find the corresponding thread in
Google groups and just post an HTTP link to that.

The URL will probably be of the form:

http://groups.google.com/ [thread url] ? [query words you used to search for
the thread]

You can delete everything after and including the question mark to get
rid of the highlighting before posting the link.

- Oliver
 
O

Oliver Wong

Nigel Wade said:
I don't think you'll ever find and IDE which provides a really good text
editor.
For example, take what is arguably the most popular Java IDE, Eclipse,
where
are the macro facilities, or the ability to do even basic editing tasks
like
convert case, or capitilize?

Not that I'm an Eclipse zealot or anything, but...

Presumably you were using Eclipse in it's "Java Perspective" mode, which
was intented to edit Java source code. In such a context, features like
"captilize all the characters in the selection" would not be so useful;
perhaps more useful would be "Rename this class, and make sure every
reference to this class is updated appropriately" (which Eclipse DOES do).

You're right though that if you want to use Eclipse as a plain text
editor, there aren't many features or macros provided.

However, there's no technical reason why someone couldn't write a plugin
that provided all those features, perhaps calling it "Text Editing
Perspective" or "XEmacs Perspective" if the user interface were made
particularly XEmacs-like. I'm not sure how painful it would be to emulate
vi's behaviour (I don't know how much abstraction you'd have to break to
directly capture key-events), but it's probably possible as well.

- Oliver
 
M

Monique Y. Mudama

Sing it. I also have had trouble trying to become multilingual with
regard to editors, though I'm a vim bigot who gets annoyed when she
has to use .... maybe "CUA editors" is the right term. As you say,
knowing which keys to use for common editing tasks becomes a reflex
action, and trying to use something that uses different keys for the
same tasks is not only irritating but also can seem to mess up the
reflexes, which is a whole other level of irritation.

I can't tell you the number of times I've been typing in a web form
and lost it all when I hit "esc" vi-style ...

(IIRC ctrl-z brings it back, if I don't panic and do something else in
the meantime)
 
M

Monique Y. Mudama

Since emacs has a CUA mode, one could claim that its legendary
programmability does in fact make up for that.

/gordon

Okay, please tell me, what is CUA?
 
Z

zero

What was Zero's point about using a regular editor? I can't find it.
I use emacs.

basically my point is that newbies should use only syntax highlighting and
automatic indentation, as opposed to automatic code completion, automatic
code generation, and live error checking. These are very good to help you
develop faster, but as new programmer the best way to learn is not to have
an IDE complete & check your code for you, but to find your own mistakes
and solve them. If you start using code completion right away you may type
things like Integer.vaLueoF(15); and have your IDE correct it - you'll
never even notice that you're doing it wrong.
 
R

Roedy Green

Since emacs has a CUA mode, one could claim that its legendary
programmability does in fact make up for that.

I was using this back in the 90s. Either the CUA mode did not exist
then or it was very different from all the other windows apps I was
using. I came to hate EMACS. The passion has gradually diminished
from lack of exposure to it. It was just too different from
everything else. Even if I did learn to feel comfortable with it,
even time I flipped between in and other programs it would be like
flipping between left and right and drive. It is a Unix tool, and it
is designed to be you only editing tool.


I got a copy of SlickEdit which worked the same on Windows and Linux.
I have been using it ever since.
 
R

Roedy Green

However, I had an interesting exchange in comp.editors recently with
someone who says that he uses lots of tools on lots of platforms and
claims that *if you practice enough* you can develop the ability
to switch back and forth seamlessly. But he claims that it takes
a *lot* of practice.

I suspect these people can pick up a new musical instrument quickly
too. I am a bit of a klutz, but at the computer keyboard, I can
surprise people with how fast I type. This comes from years and years
and years of practice.

I have gradually honed my speed with a special keyboard with disk
shaped wells, and DSK layout. see http://mindprod.com/jgloss/dsk.html
http://mindprod.com/jgloss/dsk.html#KINESIS

Almost anything throws me off:

1. different keyboard same layout. It takes me 2 to 3 weeks to adjust
to a different keyboard.

2. Someone watching me.

3. typing blind. Keying passwords is almost impossible, even though I
don't look at he keyboard at all to type. Somehow the lack of visual
feedback throws me for a loop.

On the other hand I have encountered people who can flip back and for
the between QWERTY and DSK. Somehow they can tell their finger
reflexes which system to use.

The key may be this. I do my edits and keying well below conscious
control. Others may do them largely under conscious control. They can
thus easily flip them. It may be the difference between flash readers
like myself and subvocalising readers like most people who do
everything more deliberately.
 
O

Oliver Wong

zero said:
basically my point is that newbies should use only syntax highlighting and
automatic indentation, as opposed to automatic code completion, automatic
code generation, and live error checking. These are very good to help you
develop faster, but as new programmer the best way to learn is not to have
an IDE complete & check your code for you, but to find your own mistakes
and solve them. If you start using code completion right away you may
type
things like Integer.vaLueoF(15); and have your IDE correct it - you'll
never even notice that you're doing it wrong.

Good point, but I think maybe live error checking might be good for
newbies. I haven't done a focus group study or anything, but I imagine that
seeing lots of compilation error messages will help newbies learn what they
all mean, and not to panic so much when they see one. E.g. "variable i is
not declare" and responding with "Yeah, I know, I was just about to declare
it right now" as opposed to "OMG WTF?! I better post on the newsgroup asking
how to fix this."

- Oliver
 
M

Monique Y. Mudama

basically my point is that newbies should use only syntax
highlighting and automatic indentation, as opposed to automatic code
completion, automatic code generation, and live error checking.
These are very good to help you develop faster, but as new
programmer the best way to learn is not to have an IDE complete &
check your code for you, but to find your own mistakes and solve
them. If you start using code completion right away you may type
things like Integer.vaLueoF(15); and have your IDE correct it -
you'll never even notice that you're doing it wrong.

Arguably, though, it doesn't matter, because you'll almost always have
access to an IDE.

When I first tried to use Eclipse, I got frustrated and quickly went
back to vim. Nowadays, its features are slick enough that I can't
imagine using vim instead. I love live error checking. What's not to
love?

Yes, learning libraries is important, but I don't think remembering
the spelling and capitalization of every method name is. So what?
It's important to know that if I want to convert a String to an int, I
can use the Integer class. Sure. But is it really so important to
remember the exact method name? Why?

I hesitate to recommend Eclipse to a newbie, but that's only because
there's so much involved in starting even the simplest project, not
because of things like code completion.
 
Z

zero

Yes, learning libraries is important, but I don't think remembering
the spelling and capitalization of every method name is. So what?
It's important to know that if I want to convert a String to an int, I
can use the Integer class. Sure. But is it really so important to
remember the exact method name? Why?

I was more trying to say that the newby wouldn't learn that capitalization
matters in java. And I believe having code completion hampers learning
libraries. You could just type a reference variable, and select a method
from the list.

Last year I had to work on an old Windows NT machine, and on a Linux server
installation. Neither was anywhere near strong enough to run an IDE like
eclipse. It was a good thing I was used to coding java with nothing more
than textpad and the command line compiler.
 
B

blmblm

I suspect these people can pick up a new musical instrument quickly
too.

Well .... What this guy claims is that yes, he's pretty good now
at picking up tools quickly, but that this is a result of years of
practice, and that it is possible for anyone to develop this skill,
with enough practice -- but it takes a *LOT* of practice.

Some excerpts, from different posts of his:

I guess in some sense there's no way to refute this -- if you say
"but it didn't work for me!" the response may just be "you need to
practice more!" -- but to me it was helpful to have someone say
"don't give up if you don't succeed at first, it takes longer than
you might think."

I also liked the comment about how it's really useful to practice
when you're *not* in a pressure situation. More than once I've had
to use MS Word or PowerPoint in a time-critical situation, and ....
Fighting with one's tools, as a vim user will do when confronted
with MS Office, just adds to the stress.

Now, if you ask whether this has inspired me to invest time regularly
in practicing with unfamiliar tools, well, the answer is "no". But
it's on my list of stuff to do when I have more time .... (Ha.)
I am a bit of a klutz, but at the computer keyboard, I can
surprise people with how fast I type. This comes from years and years
and years of practice.

"Years and years." That may be a critical point.

[ snip ]
The key may be this. I do my edits and keying well below conscious
control. Others may do them largely under conscious control. They can
thus easily flip them. It may be the difference between flash readers
like myself and subvocalising readers like most people who do
everything more deliberately.

Possibly. But AFAIK people *can* become fluent in more than one
human language, so possibly if you practice enough you can become
fluent with more than one set of computer tools too. It's just
that the definition of "practice enough" may be outside what most
people are willing and able to do?
 
R

Roedy Green

I also liked the comment about how it's really useful to practice
when you're *not* in a pressure situation. More than once I've had
to use MS Word or PowerPoint in a time-critical situation, and ....
Fighting with one's tools, as a vim user will do when confronted
with MS Office, just adds to the stress.

There are two different skills.
1. being able to use a great many tools
2. the ability to switch between two unfamiliar tools quickly.

Partly what he is suggesting in preemptively developing skills on
tools you have not been forced to use yet. Learning them while not
under pressure is obviously easier.

On the other hand, what he may been doing is crippling himself by
refusing to let any of his skill become unconscious so that he is
ALWAYS in beginner mode.

You might develop an analogy from dating.
 
B

blmblm

There are two different skills.
1. being able to use a great many tools
2. the ability to switch between two unfamiliar tools quickly.

Partly what he is suggesting in preemptively developing skills on
tools you have not been forced to use yet. Learning them while not
under pressure is obviously easier.

On the other hand, what he may been doing is crippling himself by
refusing to let any of his skill become unconscious so that he is
ALWAYS in beginner mode.

Ah. Yes, that's possible, now that I think about it.

There's someone else in .... comp.text.tex, I think .... who claims
to be bilingual in MS Word and emacs, and he sounds moderately clueful
about both. But that's two tools, not dozens.
You might develop an analogy from dating.

Not the best possible analogy to use in a technical newsgroup :)?
 
C

Chris Uppal

There's someone else in .... comp.text.tex, I think .... who claims
to be bilingual in MS Word and emacs, and he sounds moderately clueful
about both. But that's two tools, not dozens.

FWIW, I have vi keystrokes hardwired into my finger-tips, but nevertheless
choose to use the emacs editing mode for bash/ksh. I've never encountered any
interference between the two (any more than I encounter interference between
the two major modes of vi). I also use Windows-style editors a lot (I'm typing
into one now) and can switch /reasonably/ well between Windows-style and
vi-style -- the hard bit is coming out of vi into Windows, when I tend to
insert long sequences of kkkkkkk or jjjjjjjjj as I try to move the cursor
around... But that wears off after a few minutes.

I suspect the ability to adapt to different modalities may depend in large part
on how strongly you feel the different modes/tools are /real/. Few people
have difficulty adjusting their behaviour between -- say -- watching football
match, and attending a church wedding. Similarly you don't fumble for the
egg-whisk while repainting the flat. They are inherently different
tasks/contexts, and you don't even think in the same way, let alone encounter
interference between how you operate in one domain vs. another. I suspect that
for people who (like me) find the inside of the computer to be a very real
"place" (i.e. who buy deeply into the metaphors) will readily come to see
working "inside" vi and working "inside" MS Word as inherently different in
just the same way as a pew in a church is different from a seat in the stands
at a football match.

-- chris
 
B

blmblm

FWIW, I have vi keystrokes hardwired into my finger-tips, but nevertheless
choose to use the emacs editing mode for bash/ksh. I've never encountered any
interference between the two (any more than I encounter interference between
the two major modes of vi).

Hm! Yes, I also use emacs editing mode in bash, and .... Well,
every once in a while I get confused in vi, though rarely in bash.
Interesting.
I also use Windows-style editors a lot (I'm typing
into one now) and can switch /reasonably/ well between Windows-style and
vi-style -- the hard bit is coming out of vi into Windows, when I tend to
insert long sequences of kkkkkkk or jjjjjjjjj as I try to move the cursor
around... But that wears off after a few minutes.

:) :)

The way I describe my attempts to become bilingual in vi and MS Word
is "my Word documents were full of jjjjkkkk sequences, and vi beeped
at me a lot."
I suspect the ability to adapt to different modalities may depend in large part
on how strongly you feel the different modes/tools are /real/. Few people
have difficulty adjusting their behaviour between -- say -- watching football
match, and attending a church wedding. Similarly you don't fumble for the
egg-whisk while repainting the flat. They are inherently different
tasks/contexts, and you don't even think in the same way, let alone encounter
interference between how you operate in one domain vs. another. I suspect that
for people who (like me) find the inside of the computer to be a very real
"place" (i.e. who buy deeply into the metaphors) will readily come to see
working "inside" vi and working "inside" MS Word as inherently different in
just the same way as a pew in a church is different from a seat in the stands
at a football match.

Somewhat related ....

I have a colleague who uses vi to write C programs, Eclipse to write
Java programs, and word-processor-du-jour for prose. He says that he
finds it fairly easy to keep them straight because he uses the different
editors for different tasks. (Not sure why he thinks of C programming
and Java programming as so different .... )

This is, of course, somewhat at odds with what I think of as the
"traditional Unix" approach of having everything in text files and
using the same editor for all.
 
L

Luc The Perverse

Well .... What this guy claims is that yes, he's pretty good now
at picking up tools quickly, but that this is a result of years of
practice, and that it is possible for anyone to develop this skill,
with enough practice -- but it takes a *LOT* of practice.

After having studied 5 foreign languages (French, Spanish, German, Italian
and Russian), I feel I have improved in my ability to learn a new language,
even if I had no previous experience. I am also more able to identify if a
language learning tool is going to be inefficient at instructing me - there
are so many of those out there, that this was a necessary skill to learn.

I truly believe I could have the basics of a new language down in as little
as 100 hours, which would work out to about 10 days at 10 hours a day if I
wasn't working or doing schoolwork. (Another 400 hours for basic mastery,
expanded word depth, fluency and improved accent would be "helpful".)

So this person's claim doesn't seem at all unreasonable to me. I believe
every time you learn a new computer tool you will be a little quicker than
before. The very first on you used you probably had to learn how to use
the keyboard, the mouse, find out what a disk drive was, how windows worked.
(Or as most people are probably not that young, maybe the mouse and windows
came later.) The point is, that everytime you learn a new tool you have an
expectation for what functionalities are supposed to be available.
Sometimes you trip up on issues of semantics, but it takes less time that
before. If you switch to an inferior tool you might waste a small amount of
time looking for a tool that doesn't exist - but that doesn't happen too
often.
 
B

blmblm

After having studied 5 foreign languages (French, Spanish, German, Italian
and Russian), I feel I have improved in my ability to learn a new language,
even if I had no previous experience. I am also more able to identify if a
language learning tool is going to be inefficient at instructing me - there
are so many of those out there, that this was a necessary skill to learn.

Agreed. I'm only fluent in one language but have studied two others,
and the second "foreign" one was easier than the first.

[ snip ]
So this person's claim doesn't seem at all unreasonable to me. I believe
every time you learn a new computer tool you will be a little quicker than
before. The very first on you used you probably had to learn how to use
the keyboard, the mouse, find out what a disk drive was, how windows worked.
(Or as most people are probably not that young, maybe the mouse and windows
came later.)

I'm glad you put in that sentence in parentheses (though who knows
about "most"). If I remember right, my first difficulty with computer
use involved figuring out what keys on the keypunch did what. (")"
and "," are not the same.) Ancient history, relatively speaking!
The point is, that everytime you learn a new tool you have an
expectation for what functionalities are supposed to be available.

Agreed, and this applies to computer languages as well, no?

But there's one more factor to consider:

What happens when the new tool doesn't match your expectations about
how such tools are supposed to work? For me with computer interfaces,
it was trying to figure out Windows 95 after years of using mostly
CLIs in the mainframe world. The whole "click on a file icon to
launch a program with that file as input" thing seemed weird to me.
An example from the computer-languages world might be trying to learn
Lisp when all you know is procedural/o-o languages.

But then the same "once you've done it once" thing applies at that
level too: Once you figure out that not all tools, or languages,
are based on exactly the same principles, that also makes it easier
when you encounter one that's different from what you've used before.
Sometimes you trip up on issues of semantics, but it takes less time that
before. If you switch to an inferior tool you might waste a small amount of
time looking for a tool that doesn't exist - but that doesn't happen too
often.

Or if you switch to a superior tool you might waste time because you
don't know about its great features. Watching people new to vi try
to accomplish anything .... Ouch.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,777
Messages
2,569,604
Members
45,219
Latest member
KristieKoh

Latest Threads

Top