VIM - http://www.vim.org/
--
Knute Johnson
email s/nospam/knute/
>What is a good text-editor for the begining programmer in Java?
see http://mindprod.com/jgloss/ide.html
http://mindprod.com/jgloss/editor.html
--
Canadian Mind Products, Roedy Green.
http://mindprod.com Java custom programming, consulting and coaching.
> Use eclipse. Best java IDE you can get, and it's free.
That would be a matter of opinion. In mine, IntelliJ IDEA is the best
(though not free). Eclipse may be powerful but it is not particularly
intuitive and not really a good choice for a beginner. In fact, I would
recommend anything other than Eclipse for a beginner (I guess I just
started a flame war there). BlueJ is apparently a very good IDE for
beginners. But since the original poster mentioned a text editor, they
should probably look at something like JEdit or, for something smaller and
faster, J (http://armedbear-j.sourceforge.net). An IDE is most useful
once you know enough about the language to understand what it is that the
IDE is doing for you.
Dan.
--
Daniel Dyer
http://www.dandyer.co.uk
Darn, you beat me to it. Don't forget to turn on smart indenting ("set
si") and syntax highlighting ("syntax on"), and use ctags to generate
cross references.
http://ctags.sourceforge.net/
--
Paul Tomblin <ptom...@xcski.com> http://xcski.com/blogs/pt/
Real computer scientists despise the idea of actual hardware. Hardware
has limitations, software doesn't. It's a real shame that Turing
machines are so poor at I/O.
> In a previous article, Knute Johnson <nos...@ljr-2.frazmtn.com> said:
>> mitcheroo wrote:
>>> What is a good text-editor for the begining programmer in Java?
>> VIM - http://www.vim.org/
>
> Darn, you beat me to it. Don't forget to turn on smart indenting ("set
> si") and syntax highlighting ("syntax on"), and use ctags to generate
> cross references.
> http://ctags.sourceforge.net/
VIM is only good for a beginner programmer if the they already knows how
to use it. Otherwise they're going to fighting their editor as well as
the compiler.
Every editor has a learning curve. The important thing is whether it
flattens out before you do.
I've been using vi and now vim for 20 years now, and I've tried lots of
others, and none is anywhere near powerful and flexible enough for me.
(Ok, confession, I never learned emacs because 20 years ago you couldn't
count on it being on the computer, and when you had 8 people sharing a
MicroVax GPX, we'd get pretty damn upset when somebody fired up emacs.)
Even more importantly for me, it's one of the few editors you can use
without moving your hands off the home row of the keyboard, so it doesn't
promote carpal tunnel syndrome.
--
Paul Tomblin <ptom...@xcski.com> http://xcski.com/blogs/pt/
Oh, NT is reliable. You can count on it to keel over under just any
circumstance.
-- Rik Steenwinkel
> What is a good text-editor for the begining programmer in Java?
>
If you want just an editor, and not an IDE, try TextPad. IMO when you're
just starting to learn, you shouldn't have automatic code-completion and
other fancy stuff. Just code highlighting and automatic indentation is all
you need - it will force you to actually think about what you are writing,
instead of relying on the IDE to write code for you.
Basically anything that has code highlighting and adjustable indentation
will do - I just happen to like TextPad.
--
Beware the False Authority Syndrome
jEdit is free (both as in beer and Freedom), has a good plugin system,
but is a bit slow.
TextPad is shareware, doesn't have such a good plugin system, but is
fast.
Hopefully you'll be able to figure out which link goes to which editor.
- Oliver
I second that, but the OP should be aware that several days of use will
be required before Vim becomes more productive than more intuitive editors.
I used XEmacs for four years, with a fair amount of customization. More
recently, I tried Eclipse for about three months. I always come back to
Vim. It just gets more rewarding all the time.
In fact, this discussion has inspired me: I think I'm finally going to
give some money to those kids in Uganda!
:help uganda
Not only syntax highlighting but built in Code-Explorer to show you the
structure (== methodes) of your classes (and XML files, and SQL files
and HTML files, ...)
And it's free as well.
Thomas
I sat on my hands for most of this thread, but now that the vi
heads have fired the first shot, I'm morally obligated to encourage
the use of Emacs (http://www.gnu.org/software/emacs/emacs.html).
Combined with JDEE (http://jdee.sunsite.dk/) it's the best Java
development environment available (add the Emacs Code Browser if you
must).
Regards,
Patrick
------------------------------------------------------------------------
S P Engineering, Inc. | The experts in large scale distributed OO
| systems design and implementation.
p...@spe.com | (C++, Java, Common Lisp, Jini, CORBA, UML)
Enough of this love of Eclipse....
NetBeans kicks ass.
I agree, especially when it comes to developing web applications. I
tried Eclispe some weeks ago, and after downloading about 100 MB and
Eclispe tried to download another 90 MB just to get JSP and J2EE support
(through the update mechanism). I don't know whether that had included
code completion for XML files, HTML and custom tag libraries or support
for WebService because the download failed over and over again. I
couldn't find a description of the modules, whether they also include
support for frameworks like JSF and Struts or support WebServices
development or EJB stuff. And I forgot: I have to download the GUI
editor separately as well, still not included in the nearly 200 MB I
downloaded.
The whole NB download is only 50 MB and includes all that already.
Setting up a Web-App is a matter of seconds after extracting the archive.
</flame>
JPadPro really sucks hard. Don't use it. Makes the transition to a real
IDE more difficult later. Like you need another opinion.
Zero made the point the earlier that you should use a regular editor. I
like his reasoning.
However it probably wouldn't hurt to use a professional IDE right
from the start. IntelliJ IDEA if you don't mind paying, Eclipse,
NetBeans, or even JBuilder from Borland are all good IDE's. I personally
use Eclipse. These are worth the effort to learn about. Don't learn a
new editor unless you want to. I love vi but would never advocate it to
someone who isn't motivated to learn it. Not worth the effort when you're
learning a new programming language unless you really want to learn vi.
You should have a pretty good idea and you can't go wrong with any of the
these IDEs I mentioned. What you use is a matter of preference... you'll
prefer what you're used to. Happy coding.
--
R. Scott Smith
Slackware Linux on the job, at home, everywhere!
http://www.eng.auburn.edu/department/cse/research/grasp/
http://www.bluej.org/
--
Thanks in Advance...
IchBin, Pocono Lake, Pa, USA
http://weconsultants.servebeer.com/JHackerAppManager
__________________________________________________________________________
'If there is one, Knowledge is the "Fountain of Youth"'
-William E. Taylor, Regular Guy (1952-)
> What is a good text-editor for the begining programmer in Java?
>
>
Well, you can always use notepad if you're in a pinch.
Me personally, I use J-Edit. It jams.
--
Noodles Jefferson
mhm31x9 Smeeter#29 WSD#30
sTaRShInE_mOOnBeAm aT HoTmAil dOt CoM
"Our earth is degenerate in these latter days, bribery and corruption
are common, children no longer obey their parents and the end of the
world is evidently approaching."
--Assyrian clay tablet 2800 B.C.
The very, very best java editor is the one you feel comfortable using.
I use vi (Cygwin keeps me sane in a Windows world)
> What is a good text-editor for the begining programmer in Java?
The best text editor for learning any new language is the one you are most
competent with.
If you have to combine learning a new editor interface, and all it's foibles, at
the same time you're trying to learn a new computer language, you are heaping
problems on problems.
The simpler the better, really. Spend your time learning Java, not how to use
the editor to edit Java source code. You can do that later when you understand
Java.
--
Nigel Wade, System Administrator, Space Plasma Physics Group,
University of Leicester, Leicester, LE1 7RH, UK
E-mail : n...@ion.le.ac.uk
Phone : +44 (0)116 2523548, Fax : +44 (0)116 2523555
I like simple but it depends. If you are a beginner, yes, keep it simple. If
you have a large application, especially if you didn't write it, a Java IDE (I
like Intellij Idea, Eclipse/JBuilder certainly works) will help you understand
the application better.
If you need to do refactoring in a large application, you need a good
IDE.
That's my 2 cents.
Oh - BlueJ is a good IDE for beginners. Not much of a learning curve.
Eric
>What is a good text-editor for the begining programmer in Java?
Your question implies that you believe that there is a difference
between editing text and editing Java source code. I whole heartedly
agree and have published my opinions at
<http://profectus.com.au/ee_JavaIDE.html>. Once you have written a
functioning "Hello World" program using your favourite text editor I
would advocate a fully fledged Integrated Development Environment.
There are links on my page to a reasonable definition of an IDE and to
Roedy Green's comprehensive list that includes text editors on the
basis that they can colourise Java syntax.
<http://profectus.com.au> is a new site and I would appreciate any
comments about the page or the web site in general. Well nearly, that
should probably read "I would appreciate any praise for the page or
the web site in general".
s/days/years
=P
(I love vim, but let's get real -- if you're not used to using it or
vi, trying to use it can feel like jumping off a cliff)
I have to confess that I'm now using eclipse for java development at
work. But I use vim for any other conceivable editing task. And when
eclipse annoys me by, for example, not supporting column-based
editing, I use vim for the task.
--
monique
Ask smart questions, get good answers:
http://www.catb.org/~esr/faqs/smart-questions.html
>s/days/years
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.
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've used vi for years. I use vim when I'm on the command line and want
to edit something, as the Linux desktop is a joke. It doesn't feel like
I'm jumping off a cliff. It feels like I have landed. For small test
programs, cat is my text entry tool of choice.
Tom Hawtin
--
Unemployed English Java programmer
http://jroller.com/page/tackline/
I'm not talking about how an experienced user feels about it. I feel
exactly as you do -- but the first few times I tried vi, it terrified
me. It seemed like any random keystroke would eat my file.
(Typing this, and all my usenet postings, in vim, fwiw.)
The most terrifying moment after first using vi, IMHO, is the moment
right after you realize there isn't a "File->Quit" menu option.
And the moment during which you decide that vi is the dumbest program
ever written is after you've rebooted the computer (to get out of that damn
vi program), gone onto Google to lookup how quit vi, and find out that it's
"ESC :q! RETURN".
- Oliver
> after you've rebooted the computer (to get out of that
> damn vi program), gone onto Google to lookup how quit vi, and find out
> that it's "ESC :q! RETURN".
But naturally ! what /else/ could a reasonable person expect ?
-- chris
(Also a vi fan...)
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.
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. The thread is in comp.editors, subject line
"GENERAL: Formatting text in Linux?", participants me and a Brian
Masinick, if anyone wants to find it in the archives. (Sorry about
not providing a URL or message IDs, but I'm not sure how to do that
unambiguously.)
>So I am all for finding a decent IDE that can also function as a
>generic text editor, and learn it thoroughly.
Or you could learn the editor that's also a shell, a newsreader,
a psychotherapist, etc. (yes, I mean emacs :-) ), and use it
for everything. If I hadn't started with vi and developed those
reflexes ....
--
| B. L. Massingill
| ObDisclaimer: I don't speak for my employers; they return the favor.
Since emacs has a CUA mode, one could claim that its legendary
programmability does in fact make up for that.
/gordon
--
[ do not email me copies of your followups ]
g o r d o n + n e w s @ b a l d e r 1 3 . s e
It is not a trial version, it is the real thing. Eclipse is open source,
you know.
Being a Netbeans convert, I agree that Eclipse is a very good IDE. For
most of the people there is no reason to move to commercial IBM IDE though.
> Or you could learn the editor that's also a shell, a newsreader,
> a psychotherapist, etc. (yes, I mean emacs :-) ), and use it
> for everything. If I hadn't started with vi and developed those
> reflexes ....
I remember trying vi in college and panicking when I saw that left-most
column full of tildes...
I went to Emacs for a while because the idea of an editor I could extend
with Lisp, rather than with the Vim-specific language + C, seemed really
attractive. I was also working at Sun at the time, and XEmacs is very
popular there.
I went back to Vim after the first wrist surgery. I don't plan ever to
go back. Why people are still writing new editors, rather than
customizing existing ones, is beyond me.
The one thing I would really like to see in the vi-derivatives is
support for proportional fonts. GVim looks terrible next to (e.g.)
SlickEdit, even though I know how much more powerful GVim is...
> On 2005-11-29, Jeffrey Schwab penned:
>> Knute Johnson wrote:
>>> mitcheroo wrote:
>>>
>>>> What is a good text-editor for the begining programmer in Java?
>>>>
>>>
>>> VIM - http://www.vim.org/
>>>
>>
>> I second that, but the OP should be aware that several days of use
>> will be required before Vim becomes more productive than more
>> intuitive editors.
>>
>
> s/days/years
>
> =P
>
> (I love vim, but let's get real -- if you're not used to using it or
> vi, trying to use it can feel like jumping off a cliff)
>
> I have to confess that I'm now using eclipse for java development at
> work. But I use vim for any other conceivable editing task. And when
> eclipse annoys me by, for example, not supporting column-based
> editing, I use vim for the task.
>
vi/vim are the only choice when it comes to making a quick change. You can have
the edit done and the classes recompiled before the average GUI IDE has even
managed to paste its splash screen all over your desktop.
If you want a really good GUI text editor I've not found anything better than
nedit. You can even select text and pipe it through a command line sequence,
the result gets pasted in place of the selected text - power to the programmer.
> On Thu, 1 Dec 2005 14:23:34 -0700, "Monique Y. Mudama"
> <sp...@bounceswoosh.org> wrote, quoted or indirectly quoted someone who
> said :
>
>>s/days/years
>
> 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?
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
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
Okay, please tell me, what is CUA?
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)
> 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.
--
Beware the False Authority Syndrome
http://en.wikipedia.org/wiki/Common_User_Access
http://www.emacswiki.org/cgi-bin/wiki/CuaMode
>
>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.
>Okay, please tell me, what is CUA?
see http://mindprod.com/jgloss/cua.html
>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.
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
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.
>
> 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.
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 have to tell you that it takes quite an investment, and that
>> investment spans a very long time.
>> I practice switching gears by switching gears. Yes, I know that
>> sounds like something Yogi Berra (ex Yankee's catcher) would say,
>> but it is true. The more you get used to context switching,
>> maybe even right in the middle of your work, the easier it is to
>> do it, and if you do it often enough, it will make less
>> difference which tool you get stuck with in instance where you
>> DON'T have the flexibility to choose your tool.
>>
>> That is, I deliberately use multiple tools when I am not in the
>> middle of time critical work. When time critical moments come, I
>> am better prepared to use whatever is available.
>> The investment is substantial, that's for sure. However, if you
>> can make the investment in moments when you are not pressed for
>> time, it will pay off when you are under pressure to deliver. I
>> also try out a great variety of tools, not just one or two. Once
>> you learn how to use several of them it is not nearly as
>> difficult picking up a new one and sometimes it is a bit easier
>> to remember accelerators, mneumonics, and keystroke conventions.
>> By using several of them, it is slightly easier to remember to
>> switch gears or modes when using a different tool.
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?
>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.
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 :-)?
> 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
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.
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.
--
LTP
:)
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.
>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.
The experiment that needs to be done it to measure X's SPEED at MS
word and Emacs than challenge him to learn a third editor. Now go back
and measure his proficiency in MS and Emacs.
The experiment you really want is this: Take 99 people. Train 33 on
Emacs, 33 on Word and 33 on both. Then measure each person's fastest
speed on either editor. I conjecture the pure Emacs people should be
most productive.
I will conjecture that if two programs are sufficiently different, you
can attain unconscious proficiency in both because conceptually the
reflexes you develop don't overlap, analogously to playing both the
piano and trombone. It seems to me that editors have unavoidable
overlap at the most fundamental level -- insert, delete, replace,
navigate.
>I've never encountered any
>interference between the two (any more than I encounter interference between
>the two major modes of vi).
My partner is like you. What must be frustrating for everyone is the
ambidextrous people claiming the non-ambidextrous people just did not
try hard enough, and the non-ambidextrous people claming the
ambidextrous people are really just inept at both.
The matter could be settled by experiment. It might be a genetically
acquired skill like tongue curling.
I have talked to ambidextrous people, they say that they don't have
trouble because they see the tasks as fundamentally different.
An analogy might be rolling up the windows in a car vs closing the
windows in a house.
What sort of world could accommodate non-ambidextrous people?
It would allow you to configure your ENTIRE machine for how you wanted
various low level editing behaviours to work, then EVERY program would
comply. Similarly menus would use the same word for a function.
Maybe even your microwave and TV remote would understand your
preferences.
See http://mindprod.com/projects/menuconfigurator.html
>>I've never encountered any
>>interference between the two (any more than I encounter interference between
>>the two major modes of vi).
>
>My partner is like you.
She is also bilingual in accent. When she talks to me, she uses a
Canadian accent, and when talking to her mom, a Alabaman one,
including the unusual southern grammar.
It's all about how you want to use your time. I could use my time learning
lots of different tools and editors or I could find a handful of tools and use
my time to look at new apis/languages or work on open source projects, etc.
Eric
> 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.
Which brings us full circle and (almost) back on topic for this thread !
Well done ;-)
-- chris
http://www.zeusedit.com/features.html
Note: Zeus is shareware (45 day trial).
It has features like class browsing, syntax highlighting,
smart indent, code folding, project/workspace management,
integrated version control etc.
The Zeus Quick Help feature also works with the Java SDK
help file:
http://www.zeusedit.com/forum/viewtopic.php?t=10
providing a quick and easy way to access the SDK information.
Jussi Jumppanen
Author: Zeus for Windows
>
> "Nigel Wade" <n...@ion.le.ac.uk> wrote in message
> news:dmpno0$ojr$1...@south.jnrs.ja.net...
>>
>> 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).
Comments? Javadocs?
There are times when I want to capitalize or change from lower to upper or vice
versa.
--
Nigel Wade, System Administrator, Space Plasma Physics Group,
University of Leicester, Leicester, LE1 7RH, UK
E-mail : n...@ion.le.ac.uk
Phone : +44 (0)116 2523548, Fax : +44 (0)116 2523555
Sorry, but this is going to be one big long run-on sentence:
Uusually when I want to change the capitalization in a comment or
JavaDoc, it is only one character that I want changed -- e.g. the first
character of a sentence which was mistakenly not capitalized (perhaps
because I had let go of the shift key too early or something) -- OR it is
that I had not yet broken my habit of capitalizing all the characters in an
abbreviation -- e.g., where KB stands for Knowledge Base and ID stands for
Identification, naming a methid getKBManagerUserID() instead of
getKbManagerUserId(), which requires an understanding of the English
language to recognize word boundaries and so probably could not be done via
a macro.
- Oliver
Odd.
I grew up speaking both English and German. I have never been able to
speak English with a German accent, or German with an American accent,
though I can definitely recognize it. I think my mind has mapped the
sounds to the languages, and I can't produce them in the "wrong"
context.
I sure think of them as different! Especially if you really mean C,
not C++.
The standard editor at my last job was SlickEdit. I couldn't stand
it. It seemed to love corrupting the tags database, among other
things. But the real reason I abandoned it was that its vi emulation
mode didn't emulate well enough.
I'm pretty sure there *is* a vi plugin for eclipse. It's not free in
any sense, and I haven't tried it, but maybe it does what you're
describing.
I have been burned by supposedly 'vi compatible' modes so many times
that I am loathe to spend money to try it.
As opposed to opening a browser, loading the javadocs, looking up the
type, and *then* selecting a method from the list, copying and pasting
it.
I agree that the javadoc approach is slower; it's not clear to me that
it really forces any more learning.
I think my difference of opinion stems from my belief that motivated
individuals will learn; unmotivated individuals won't. It's possible
you could claim that Eclipse and other high-powered IDEs can act as a
crutch, allowing individuals to crawl along who might give up if they
were forced to use more basic tools. Of course, you could use the
same argument to support the idea that all programs should be written
in assembler, or maybe machine code.
> 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.
I agree that anyone who works with Java should have those skills. I
don't think that means that we should eschew more powerful tools.
One of my professors claimed that she never had problems with carpal
tunnel until she started using a mouse.
I personally find that using a mouse hurts my wrist pretty quickly; I
use trackballs whenever possible, and even then try to do most things
by keyboard, with a wrist pad.
Absolutely!
The self-righteous "do it yourself" answer is too myopic in this case.
Programming isn't typing. It is about doing a lot of things at once,
and typing is among the least important of them. Even if a programmer
has to wait a couple seconds for code completion -- and obviously could
have just typed the identifier name in that time period -- the task of
writing code is going to be far more sustainable if that time can be
used for thinking, resting, relaxing the wrist, or whatever.
--
www.designacourse.com
The Easiest Way To Train Anyone... Anywhere.
Chris Smith - Lead Software Developer/Technical Trainer
MindIQ Corporation
I'll admit that for many years, I avoided Eclipse. Its features were
clunky and slow. I felt the same about every other IDE I tried.
The modern Eclipse is responsive enough that it finally feels like
it's helping my productivity, not hindering it. Mostly.
[ snip ]
>What sort of world could accommodate non-ambidextrous people?
>
>It would allow you to configure your ENTIRE machine for how you wanted
>various low level editing behaviours to work, then EVERY program would
>comply. Similarly menus would use the same word for a function.
vi-style editing in MS Word .... Nah, don't think that's going to
happen. But it's entertaining to think about!
[ snip ]
Either of those would be an interesting experiment to perform.
I wonder whether anyone has done it! It seems like some of those
HCI folks would have done something along these lines ....
>
>I will conjecture that if two programs are sufficiently different, you
>can attain unconscious proficiency in both because conceptually the
>reflexes you develop don't overlap, analogously to playing both the
>piano and trombone. It seems to me that editors have unavoidable
>overlap at the most fundamental level -- insert, delete, replace,
>navigate.
>
--
>
> The experiment you really want is this: Take 99 people. Train 33 on
> Emacs, 33 on Word and 33 on both. Then measure each person's fastest
> speed on either editor. I conjecture the pure Emacs people should be
> most productive.
>
More wild off-topicking, but this thread does seem to foster it ...
Just how much do we think the (I)DE or typing-speed affects
productivity? I know the former at least is task-dependent (if you're
given a huge amount of legacy code the needs every method and class
renamed, then Eclipsers will romp all over Notepadders), but in
general, can it affect much?
I'd guess not. I'd guess any difference attributable to a particular
(I)DE is so small that it sinks below measurable tolerances into the
noise of the (let's face it) astrologically inaccurate project planning
within which we work.
Well, I suppose there are some minimal basics. If you're given a new
(I)DE, and you never learn how to delete, then you're in for some tough
deadlines; but on the whole, I'd say productivity is far more weighted
by requirements-clarity, and programmer and tester experience.
That's probably why, "Use whatever (I)DE you're comfortable with,"
radiates such incontrovertable common sense: it gets you above the
basics; you can delete, save, compile, run.
There. DSCR. I've said it.
.ed
--
www.EdmundKirwan.com - Home of The Fractal Class Composition.
> I personally find that using a mouse hurts my wrist pretty quickly; I
> use trackballs whenever possible, and even then try to do most things
> by keyboard, with a wrist pad.
Are you using (or rather, avoiding) those modern "mice" that actually look more
like pregant rats ? Big bulky things that /force/ you to rest your palm on the
beast's spine ? If so -- and if you are like me -- that might be the problem.
With the old-style (shaped like a bar of soap) mice, I can guide the thing with
my fingers; in particular, making precise movements just by flexing my fingers.
With the new kind, that is impossible, so I have to make fine movements with my
wrist/arm, and that becomes killingly painful very quickly. The "rats" are
supposed to be more ergonomic, but not for me they aren't...
-- chris
> Just how much do we think the (I)DE or typing-speed affects
> productivity?
I'd say that a good (or bad) IDE is a lot more than just an editor, and that
it's the other things that significantly affect productivity. If your speed of
typing (with or without help from "Intellisense", etc[*]) is such that it is a
significant bottleneck then I would say that one of the following apply:
a) You are a /very/ slow typist (serious physical disability,
such as having no hands).
b) You are a /very/ fast thinking -- much, much, faster
than anyone I've ever met.
c) You are wasting your time doing writing repetitive code which
can be and should be automated (or otherwise changed to
remove the repetition).
d) You are a very bad programmer, who programs without
thinking even though thinking is required.
BTW, one place where I do think that fast typing (and good editing features)
make a real difference is that it becomes easier to document code
appropriately.
-- chris
[*] Personally, I find auto-completion and similar intrusive popups, to be a
hindrance rather than a help.
Maybe in the long term, in that it's may be encouraging memory lost:
I was in the middle of some Java method, and I had type
"someMethodCall( " and then paused, because I knew I wanted to put the local
variable I had declare some moments earlier there, but I couldn't remember
the name of the variable. Well, Eclipse, being what it is, looked up the
method definitions for "someMethodCall" and then found the arguments that
all of its overloaded variants expected. It then looked at all variables
that were visible from the location in the code I was located (local
variables, publicly visible variables, fields from parents, etc.) it then
looked at the type of all these variables, and climb their inheritance tree,
cross-referencing that with the overloaded variants, and seeing which
variables could actually be legal given the type-checking rules.
It then displayed a pop up with my local variable, essentially asking me
"Is this what you're looking for?"
All of this before I had time to send the signals to the muscles that
control my eyes to scroll up and read the variable declaration a few lines
above.
So I find auto-completion helpful, but it concerns me that I can't
remember things that I looked at only a few moments ago.
- Oliver
Oh, I dunno. There's a hard limit to how many things a given person
can keep in his/her "stack" at a time. You probably were juggling
enough other data that you just didn't have room for that piece.
>
> As opposed to opening a browser, loading the javadocs, looking up the
> type, and *then* selecting a method from the list, copying and pasting
> it.
>
> I agree that the javadoc approach is slower; it's not clear to me that
> it really forces any more learning.
>
In my (admittedly limited) experience teaching non-computer-literates and
my (rather extensive) experience in selfstudy, I have found that people
tend to remember things better if they discover them themselves. Looking
up a word in a dictionary is better than having the teacher tell you what
it means. And I believe the same goes for looking it up in JavaDoc versus
selecting from a list.
I am not saying you should code using only vi or notepad - an IDE can be a
wonderful tool, and it can save you a lot of time. I just think that when
you're new to programming, using the documentation rather than developer
tools can help you learn faster.
Plus of course there's the point that many others here have made: learning
to use an IDE is non-trivial. Combined with learning a language (and
perhaps at the same time learning OO), it can be overwhelming.
--
Beware the False Authority Syndrome
As near as I can tell, it's a problem for me for any mouse. But I use
my whole hand for all mice, not just my fingers as you describe.
Maybe my hand is smaller than yours?
> On 2005-12-02, Jeffrey Schwab penned:
>>
>> I went back to Vim after the first wrist surgery. I don't plan ever
>> to go back. Why people are still writing new editors, rather than
>> customizing existing ones, is beyond me.
>
> One of my professors claimed that she never had problems with carpal
> tunnel until she started using a mouse.
>
> I personally find that using a mouse hurts my wrist pretty quickly; I
> use trackballs whenever possible, and even then try to do most things
> by keyboard, with a wrist pad.
>
Plus working with the keyboard is just plain faster for many things. As an
example on windows pressing Alt-F4 is 10 times faster than moving your hand
to the mouse, moving the mouse to the close button, and clicking it.
That may be. I know that I've often visited a Javadoc page for a
particular purpose, but ended up learning a lot more as I noticed
interesting methods and read about them. That would be less likely
using an IDE's selection features.
> I am not saying you should code using only vi or notepad - an IDE
> can be a wonderful tool, and it can save you a lot of time. I just
> think that when you're new to programming, using the documentation
> rather than developer tools can help you learn faster.
>
> Plus of course there's the point that many others here have made:
> learning to use an IDE is non-trivial. Combined with learning a
> language (and perhaps at the same time learning OO), it can be
> overwhelming.
I definitely agree with that. Setting up Eclipse for my current
project drove me nuts.
> The "rats" are
>supposed to be more ergonomic, but not for me they aren't...
My partner has horrible neck/back spasms after long hours with a
mouse. One idea I had was to find an ambidextrous mouse, and give each
side of the neck a rest by alternating. Has anyone any experience
with such a beast?
If I work on the computer long enough, I get similar problems ... but
oddly enough, the muscles involved are my traps, right where neck
joins to shoulder. And it's only the left side (mouse hand is on my
right). Is this at all similar to what your partner describes?
By amidextrous, do you mean simply one that can be gripped by either
hand, or do you mean one where the buttons can easily be reversed?
I've tried using a handedness-neutral mouse with my left hand, and find
it as difficult as trying to write with a pen in my left hand. While it
might give your right hand a rest (assuming you're right handed), expect
your productivity to go down for a while.
- Oliver
If I remember right the old mount method was taken out at 4.1. So I
guess you could try 4.0. Not sure if you can download any version
older than 4.1. I could be wrong.
--
Thanks in Advance...
IchBin, Pocono Lake, Pa, USA
http://weconsultants.servebeer.com/JHackerAppManager
__________________________________________________________________________
'If there is one, Knowledge is the "Fountain of Youth"'
-William E. Taylor, Regular Guy (1952-)
>If I work on the computer long enough, I get similar problems ... but
>oddly enough, the muscles involved are my traps, right where neck
>joins to shoulder. And it's only the left side (mouse hand is on my
>right). Is this at all similar to what your partner describes?
It runs from the back of the shoulder across the top of the back to a
point an inch or two from the spine. The muscle goes like a tight
cord, very easy to feel. It is usually on one side, though I don't
recall which.
My own ergonomic back problems have been pretty well fixed with two
techniques.
1. a sort of giant rubber whoopy cushion on my chair.. The idea is I
can't sit still on it. I have to wriggle slightly to stay balanced. It
saves me from freezing up in one position. The wriggling is below
ordinary conscious awareness.
2. making sure my chair adjust stays high up so that I am not
reaching up to the keyboard.
> I was in the middle of some Java method, and I had type
> "someMethodCall( " and then paused, because I knew I wanted to put the
> local variable I had declare some moments earlier there, but I couldn't
> remember the name of the variable. Well, Eclipse, being what it is,
> looked up the method definitions for "someMethodCall" and then found the
> arguments that all of its overloaded variants expected. It then looked at
> all variables that were visible from the location in the code I was
> located (local variables, publicly visible variables, fields from
> parents, etc.) it then looked at the type of all these variables, and
> climb their inheritance tree, cross-referencing that with the overloaded
> variants, and seeing which variables could actually be legal given the
> type-checking rules.
>
> It then displayed a pop up with my local variable, essentially asking
> me "Is this what you're looking for?"
>
> All of this before I had time to send the signals to the muscles that
> control my eyes to scroll up and read the variable declaration a few lines
> above.
If it could:
always find /the/ correct identifier to insert,
insert it without bothering me,
do so in a way that I could learn when to expect it to do so -- i.e. fully
deterministic algorithm that is simple enough for my /fingers/ to learn,
then it would be useful to me. As it is, I get popup lists of irrelevancies
that I'm expected to scan while I actually want to be using my eyes and brain
for other things. For me, complete-on-demand is useful but autocomplete is
just a nuisance.
-- chris
> As near as I can tell, it's a problem for me for any mouse. But I use
> my whole hand for all mice, not just my fingers as you describe.
> Maybe my hand is smaller than yours?
Quite probably. Or your mouse is bigger. Or both. For comparison, if a mouse
is small enough for me to use without pain then I can easily touch the desk
with all five fingers on three sides of the mouse without touching the mouse at
all. Of course, what works for me might be an absolute killer for you...
Finding small, flat, mice is becoming almost impossible these days (presumably
the profit margin is higher on rats) except for tiny USB things intended for
laptop users who dislike touch-pads / track-balls / stupid-nipple-things
(whatever they're called).
-- chris
Yes, it's not perfect...
But I believe you can keep typing even when that pop up is there, so
perhaps you can "learn to ignore it" for those times where it isn't able to
narrow down the possible suggestions to a single identifier?
- Oliver
I use it as a typing saver. To the extent that, even if I know what I
need, I often purposely wait after typing the '.' so that I can then
type the first few chars and hit enter.
If it delayed me when typing, though, I wouldn't use it.
I would like something half way in the middle.
It would be either MDI or single window (by user choice), have a compilation
output at the bottom of the screen and allow you to jump to line numbers by
clicking on errors.
Maybe I need to program this.
--
LTP
:)