Vim vs. IDE (flame on)
-
Bit bored on a Friday morning, so thought I'd try and start a bit of a hot topic...
I've been coding for several years now, and one thing that surprises me
is the Java community's love-affair with bloated, CPU-destroying IDEs.
Programmers in other languages usually look-down on IDE-users with a
look of disdain they'd usually reserve for bits of poo they've scraped
off the bottom of their shoes, but in Java it seems you ain't nobody
unless you're using the latest NetBeans, Eclipse or whichever
100mb-download bloatware you decide on. I'm still on the view that if
you need a program to tell you what's wrong with your code and
auto-complete your method names, you don't
Personally, I'm a vim-addict - always have been always will be. Never
found a thing the latest IDE can do that Vim can't - and usually Vim
can do it a hell of a lot quicker and with fewer keystrokes. And you
don't have to touch the hated mouse. The only thing IDE users point out
in their defense is the practice of 'refactoring' - which as a
colleague pointed out in is really a synonym for
'I-got-the-design-wrong-in-the-first-place-and-don't-have-time-to-start-from-scratch'-ing.
So, any IDE users want to come prove me wrong? I'm willing to listen....
-
Why is not refactoring a synonym for "Someone-got-the-design-wrong-and-for-some-reason-I-have-to-get-it-right"?
Time is crucial. If my IDE helps me to save time, then it makes me
happy. But, you have your point with vim. It's an expert tool and to be
honest, I would like to catch also some experience with vim and to use
a vim plugin in my IDE.
-
If you are used to an IDE (or lack of it), and yet you are produtive, then don't change it.
But yes, those java IDEs and their "speed" (or lack of) is a kick on the nuts.
Thank god the IDE I use isn't developed in java. Otherwise I would stick to notepad.
-
I use VIM at home for screwing around, but here at work we do ASP.NET
in VS.NET 2003, and it works all right, most of the time. Some of the
time, though, I feel like the IDE is working against me, such as when
it erases all of my event handlers, or anti-formats my code and them
refuses to format it again because there is a user control on the page.
Or, when it freezes completely, which can happen when debugging
Javascript. And it slows down considerably on large or syntactically
'unusual' C# files. All of this adds up to major annoyance.
That isn't even approaching the issue of the integration with SourceSafe. But, SC is not really the fault of the VS.NET people.
I disagree about 'refactoring'. You are saying,"If you don't always
design everything perfectly at the beginning, you are stupid." Nice
try. That's completely unsupported and incorrect. All programmers make
mistakes, and some are mistakes that result in repetition or unwieldy
code, and those things need to be fixed. Sometimes, those "mistakes"
are the resulting of doing something twice or three times,
intentionally, in order to how to go about building the abstraction.
-
Well, considering the bloatiness of Java itself, it's no surprise that the development tools are of similar characteristics. In fact, I'm not sure why Java was even invented in the first place. It's major "advantage" is that it's portable, but it just seems programmers are too lazy to port it themselves.
To me, IDEs are unnecessary and sometimes get in the way of writing code. Any text editor with decent features is good enough.
-
@quamaretto said:
You are saying,"If you don't always design everything perfectly at the beginning, you are stupid." Nice try. That's completely unsupported and incorrect. All programmers make mistakes, and some are mistakes that result in repetition or unwieldy code, and those things need to be fixed. Sometimes, those "mistakes" are the resulting of doing something twice or three times, intentionally, in order to how to go about building the abstraction.
You're supposed to have the design all thought out before writing any actual code. Programmers that make mistakes while writing code eventually lead to the formation of a few WTFs in attempts to "fix" it. It is entirely possible to write perfect working code on the first try. That's because you've already thought out what needs to be done in detail, and all that you have to do is write the code. Syntax errors happen only because the programmer isn't paying enough attention.
-
@llxx said:
@quamaretto said:
You are saying,"If you
don't always design everything perfectly at the beginning, you are
stupid." Nice try. That's completely unsupported and incorrect. All
programmers make mistakes, and some are mistakes that result in
repetition or unwieldy code, and those things need to be fixed.
Sometimes, those "mistakes" are the resulting of doing something twice
or three times, intentionally, in order to how to go about building the
abstraction.You're supposed to have the design all thought out before writing any actual code. Programmers that make mistakes while writing code eventually lead to the formation of a few WTFs in attempts to "fix" it. It is entirely possible to write perfect working code on the first try. That's because you've already thought out what needs to be done in detail, and all that you have to do is write the code. Syntax errors happen only because the programmer isn't paying enough attention.
Refactoring has little to do with syntax errors -- one can hardly refactor that which has not yet been factored. And it is possible to write perfect working code the first time through, and still be completely wrong -- because the premise upon which the code is based is wrong. There ought not be a whole lot of refactoring in a 1.0 release -- it's when the spec is substantially changed for 2.0 that you'll have to rethink things.
It's possible to write entire systems using Notepad, but no sane person would want to maintain any system-level code with nowt but a text editor in his arsenal. IDEs may be heavy, but if you're doing anything beyond the trivial, the time saved by things like automated dependancy checking and so on is way more than worth the weight.
-
nowt
'naught'
I'm still on the view that if you need a program to tell you what's wrong with your code and auto-complete your method names, you don't
Auto-complet saves time. If you keep writing for loops by hand EVER SINGLE TIME, instead of some macro or what have you, then you're not 1337, you're just generating RSI. :)
But, I rarely use autocomplete. Why? Because it gets in the way. Go figure. I have a little app in my tray that allows me to store strings behind a short keyword. For example, I could type "/loop" and a standard counting for-loop appears. Also handy when inserting cheat codes into games. :D
-
<font size="2">Taken from my vim configuration file:
</font><font size="2">" abbreviations
" language specific
" asp jscript
:ab /af for(var i;i<;i++){<CR>}<esc>k$4hi
:ab /aii if(){<CR>}<esc>k^2la
:ab /aie else{<CR>}<esc>kA<CR>
Vim already has this built in. (these abbreviations also put the cursor
in insert mode where you want to be with the cursor after doing the
abbreviation
:wq
:wq
:w!
oh, hehe i'm not in vim...
</font>
-
@dhromed said:
nowt
'naught'
Not necessarily -- "nowt" is a regionalism. Yes, they're the same word,
but the intent was (and is, in such cases) to convey the dialect as
well. It is not a spelling mistake. "Nowt" has a long and strong
tradition in print.
-
I am a vim user myself, but there are programming languages that just requre autocompletion.
And I am not even referring to Java or C# - these are still acceptable to type without autocompletion of method names.
I mean that language where method calls (which it calls messages) look like this:
NSWindow *w = progress = [[[NSWindow alloc] initWithContentRect:NSMakeRect(100,100,400,50) styleMask:NSTitledWindowMask | NSTexturedBackgroundWindowMask backing:NSBackingStoreRetained defer:NO] autorelease];
instead of what other languages would write:
Window w(Rect(100, 100, 450, 450), Window::Mask::Textured | Window::Mask::Titled, Window::BackingStoreRetained, 0);
Now that's a point, isn't it?
-
Remove that "progress =", that was my fault and not Objective C's.
-
@Stan Rogers said:
@dhromed said:
nowt
'naught'
Not necessarily -- "nowt" is a regionalism. Yes, they're the same word,
but the intent was (and is, in such cases) to convey the dialect as
well. It is not a spelling mistake. "Nowt" has a long and strong
tradition in print.
It is just as wrong as "fewer". If I were an English teacher, I'd
cross it with my big red pen. No such perversions in my class!
-
@OpBaI said:
I am a vim user myself, but there are programming languages that just requre autocompletion.
And I am not even referring to Java or C# - these are still acceptable to type without autocompletion of method names.
I mean that language where method calls (which it calls messages) look like this:
NSWindow *w = progress = [[[NSWindow alloc] initWithContentRect:NSMakeRect(100,100,400,50) styleMask:NSTitledWindowMask | NSTexturedBackgroundWindowMask backing:NSBackingStoreRetained defer:NO] autorelease];
instead of what other languages would write:
Window w(Rect(100, 100, 450, 450), Window::Mask::Textured | Window::Mask::Titled, Window::BackingStoreRetained, 0);
Now that's a point, isn't it?
Yeah I was a bit harsh on auto-completion - I use it all the time in
vim with ctrl-n/p and ctags and the like. But what I hate is people who
use IDEs who just type the name of their object in, and up pops this
little window with all the available methods, and they're like "err now
which one was it again...." - they've never learnt their APIs in the
first place, and never will thanks to their hand-holding IDEs. Problem
is as well, I believe, that it lets sub-standard developers write code
above their level - and leaves maintenance and upkeep nightmares for
the rest of us.
-
@dhromed said:
It is just as wrong as "fewer". If I were an English teacher, I'd
cross it with my big red pen. No such perversions in my class!
If you were an English teacher marking composition (as opposed to
expository), you would be wrong (although, as master of the class, you
would be fully within your rights to be wrong, provided that you
maintained consistency). Fowler does not apply in dialogue.
By the way, what do you have against "fewer"?
-
@Stan Rogers said:
@dhromed said:
It is just as wrong as "fewer". If I were an English teacher, I'd
cross it with my big red pen. No such perversions in my class!
If you were an English teacher marking composition (as opposed to
expository), you would be wrong (although, as master of the class, you
would be fully within your rights to be wrong, provided that you
maintained consistency). Fowler does not apply in dialogue.
By the way, what do you have against "fewer"?
I would be inclined to accept "nowt" as a way of writing that word, but
only in specific cases. Dialects may happen. Spelling differences may
happen. e.g. China. I accept that one may shrug off "naught" as my
personal preference. That still gives me the right to unleash the red
pen if and when I see "nowt" in a submitted text.
As for the nonsense that is fewer:
There is a perfectly valid replacement of "fewer". It is "less".
Contrary to what a hapless linguist might think when investigating
American English, "less" applies to both a number of separate objects
(less keys, less trees, less things) and quantities of
materials/substances (less water, less metal, less code).
Consider (correct):
a few lines of code.
less lines of code.
more lines of code.
many lines of code
much code
lots of code
and (grammatical anomalies):
fewer lines of code
morer lines of code (you have more, but I have morer! yay!)
manyer lines of code
mucher code
lotser code
But interestingly (correct, though somewhat archaic):
lesser lines of code
Archaic, because in these times, one would actually say:
these lines of code suck
----
The suffix ER in "fewer" is entirely redundant. If one has few, you
already have few, and someone else can't have fewer. If that someone
does have less, than he has LESS, not FEWER.
In other words, "fewer" is grammatical bullshit.
-
@dhromed said:
Spelling differences may happen. e.g. China.
<FONT face="Courier New" size=2>"chai-na"</FONT>
-
@dhromed said:
manyer lines of code
'y' changes to 'i' when you add 'er' as a suffix, so it becomes "manier"
Looks just as bad, but is a more correct misspelling :P
On the original topic, I much prefer Vim when writing programs in
C/C++. Auto-completion that is built into the GUI tends to do little
more than get in the way once you know the language. The implementation
in VS6 was horrible for that. In .NET they did a better job, but it is
still bothersome at times.
-
-
"There is a perfectly valid replacement of "fewer". It is "less".
Contrary to what a hapless linguist might think when investigating
American English, "less" applies to both a number of separate objects
(less keys, less trees, less things) and quantities of
materials/substances (less water, less metal, less code)."
Au contraire.
That little thingy next to the top of your post says you are posting
from "Dutchland". Where is that? Do they speak English there? Real
English? I submit that whilst they might speak some variant thereof,
such that they (and you) can make themselves understood, and, indeed,
that they probably speak this variant rather better than many right
here in England speak their variant, their (and your) ability to
prescribe what is and what is not correct is somewhat limited.
That goes double when you (or anyone else) suggests that "less lines of code" is in any way correct.
With that
in mind, allow me to provide, with full warranty (but no fee), my years
of experience in
reading and speaking the language. It is my native tongue, it's true,
and it's therefore to be expected that I take some liberties, but any
liberties I take are taken with my eyes wide open.
The word "few" is only ever applied to countable items. As the name
might suggest, these are items that one may count, such as (to continue
your example) lines of code. From this word "few", one may derive (via
the "-er" suffix) the word "fewer". The "-er" suffix is used to
generate the comparitive(sp?) form of a word. If I have a few items,
and you have a few, and, having counted our respective sets of items,
it turns out the number of items you have is greater than the number of
items I have, one would say that I have fewer items than you.
"fewer" is only ever an adjective.
The word "less", on the other hand, is used for uncountable items --
or, more strictly, uncountable entities. ("Item" implies countability.)
An example of an uncountable entity would be water. If I have some
water, and you have some water, and, having measured our respective
amounts of water, it turns out that you have more water than me, one
would say that I have less water than you.
It's possible, as you've noted, to apply the "-er" suffix to the word
"less". This word is slightly confusing, since it can be used both as
an adjective and as a noun. When used as an adjective, it is not,
strictly speaking, comparitive; rather, it is taken to mean that
something is of generally low value. (And it seems you have correctly
inferred this, for your example of "lesser lines of code" is correct.)
When used as a noun, it is used in a comparitive sense: compared to
something else, the lesser thing is the, um, lesser. For example, when
comparing 2 and 3, 2 is the lesser. (Some may argue that 2 is
countable, but this is not actually the case.)
Anyway. To go back to the original point, "nowt" and "naught" are most
assuredly not -- quite -- the same thing. "nowt" is pretty much
equivalent to "nothing". "naught", on the other hand, isn't. I'd have a
hard time articulating the exact difference, but it's indicated by
an example, which will be perplexing only to Americans:
"There's nowt in the fridge."
In this case, somebody from Yorkshire is saying that the fridge
contains nothing. Substituting "naught" for "nowt", however, results in a sentence that borders on the meaningless:
"There's naught in the fridge."
That's not to say, though, that "naught" is meaningless. For example:
"All their efforts were for naught."
All well and correct. They expended effort, but the desired result
was not attained. Substituting "nowt" for "naught" in this instance sounds, to my
ears, wrong. Maybe those who have more experience with the
Yorkshire dialect will put me straight with regards to this particular
example, but, based on my first example, the point stands -- they are not the same word.
("Grammatical bullshit", by the way, is what you say when somebody
tries to tell you what kind of word one may begin or end a sentence
with.)
-
@Tom_ said:
The word "less", on the other hand, is used for uncountable items --
or, more strictly, uncountable entities ... This word is slightly confusing, since it can be used both as
an adjective and as a noun.
It can of course be used as an adverb as well, as in "X is less pedantic than Y".
-
@dhromed said:
As for the nonsense that is fewer:
There is a perfectly valid replacement of "fewer". It is "less".
Contrary to what a hapless linguist might think when investigating
American English, "less" applies to both a number of separate objects
(less keys, less trees, less things) and quantities of
materials/substances (less water, less metal, less code).
Consider (correct):
a few lines of code.
less lines of code.
more lines of code.
many lines of code
much code
lots of code
and (grammatical anomalies):
fewer lines of code
morer lines of code (you have more, but I have morer! yay!)
manyer lines of code
mucher code
lotser code
But interestingly (correct, though somewhat archaic):
lesser lines of code
Archaic, because in these times, one would actually say:
these lines of code suck
----
The suffix ER in "fewer" is entirely redundant. If one has few, you
already have few, and someone else can't have fewer. If that someone
does have less, than he has LESS, not FEWER.
In other words, "fewer" is grammatical bullshit.
Ah. I was sure your were referring to some colloquial use of "fewer" of
which I may not have been aware. Instead, you are merely wrong. "Less"
and "fewer" are not interchangeable. To put it into familiar terms (I
hope), "less" is an analog (or abstract) comparator while "fewer" is
digital (or concrete). The number 2 is less than the number 3, but two
things are fewer than three things. If Bob has twelve apples and Jane
has nine apples (all apples are the same size, weight and variety, and
neither Bob nor Jane is carrying or in possession of any alternate
foodstuffs), then Jane has less food than Bob because she has fewer
apples then Bob. Were they to make pies, Jane would probably make fewer
apple pies than Bob (unless Bob is particularly bad at coring and
peeling apples). If they decide to make applesauce, then Jane would
make less applesauce than Bob, and thus be able to fill fewer jars.
-
@Stan Rogers said:
... because she has fewer
apples then Bob.
Oops.Make that, "... because she has fewer apples than Bob."
-
Dear Tom_ and Stan, you have both failed miserably in providing
arguments beyond exclamations of "that's not true!", supporting them by
explaining concepts I grasp fully.
The crux of the matter lies in the possible appliances of the word
'less'. Can it be used to denote a smaller number of discrete items, or
is it limited to relative continuous quantities of the lesser variety?
Nothing in my experience so far save for the odd Americanist tells me
that the latter is true. 'fewer' remains a commonly accepted anomaly.
For the sake of the argument, I won't begin backing out by suddenly
arguing that a language's aspects are valid by grace of its speakers,
not a rigid booklet of rules.
I admit full defeat on the matter of nowt vs. naught. I had never seen
'nowt' before, and its queer, simplistic spelling and usage within that
context made it all to easy to be mistaken for a misspelling of the
familiar though underused word 'naught'.
-
I've learned VIM 3 times now, got frustrated and forgot it again. VIM sucks balls. I don't want to learn crazy keystrokes like :iuhfsd##@45jo987sd
to copy and paste a block of text or open the fuggin menu. How about
the programmers of the editor learn how people work and people don't
learn how editors work, how's that, whatcha call it, interface design?
It is my firm belief that help files or - a god forbid - tutorials are
clear signs of soggy suckage.
I'm sure VIM can:- set break points
- step into, out of & over function calls
- see the local variables of a function
- inspect & modify variables
- watch variables
- view call stacks
- show the layout of a class
- help me design a form without typing that the edit box should have the bounds (8, 8, 100, 25)
- generate documentation
- allow me to not type repetitive boiler plate code
- allow me to see two files on the same screen at the same time
Not that I would use the above features of course. I'm not a girl. I design my programs. After I smoke my pipe, dream up the design, it's just 16 hours of punching code, and the system works. Refactoring? Learning is not my style.
<font size="6">:q!</font>
-
@dhromed said:
The crux of the matter lies in the possible appliances of the word
'less'. Can it be used to denote a smaller number of discrete items, or
is it limited to relative continuous quantities of the lesser variety?
No, "less" cannot be applied to integrally quantifiable items. That is
not an Americanism (and I am not an American). The distiction is made
more difficult, though, in that there are some idiomatic expressions
that seem to flout the rule, but under careful examination you can
usually see that the word "less" is used comparatively against a number
rather than against the items being counted.
-
@Joost_ said:
I've learned VIM 3 times now, got frustrated and forgot it again. VIM sucks balls.
So not fair. Vim never sucks my balls. Damn pricktease. But then I only learnt it once.
@Joost_ said:
I don't want to learn crazy keystrokes like :iuhfsd##@45jo987sd
to copy and paste a block of text or open the fuggin menu.
n00b! Everyone knows that :iuhfsd##@45jo987sd is the shortcut for translating the current selection to Medieval Russian.
@Joost_ said:
I'm sure VIM can:
- set break points
- step into, out of & over function calls
- see the local variables of a function
- inspect & modify variables
- watch variables
- view call stacks
- show the layout of a class
- help me design a form without typing that the edit box should have the bounds (8, 8, 100, 25)
- generate documentation
- allow me to not type repetitive boiler plate code
- allow me to see two files on the same screen at the same time
I'm not sure it can y'know. It's a text-editor. I don't get mad at my toaster because I can't watch Ally McBeal on it. Last three it can do though.
@Joost_ said:
Not that I would use the above features of course. I'm not a girl.
Amen to that brother. I had to dump my last girlfriend cos I'd like
come home from a bad day at work and she'd be like dogging on me all
night, just viewing call stacks all night and like 'break-point this'
and 'break-point that' and 'where'd you put the damn local variables?'.
Damn women. If only I knew the short-cut for ball-sucking mode....
@Joost_ said:
<font size="6">:q!</font>
I fail to see how nose-licking is relevant here.
-
Oh no. VIM is not a mere text editor you !luddite and snobbish 2005-ist. "Never
found a thing the latest IDE can do that Vim can't - and usually Vim
can do it a hell of a lot quicker and with fewer keystrokes."
You can't watch Allah McBeal on your toaster because you should get the
TIM, for Toaster IMproved. It's an incredible machine. It's a
programmable toaster that can make toast like any other toaster, only
with fewer button presses. Plus it's not so big. It comes with a
variety of balls: basketball balls, baseball balls, bowling balls, and
a few more that I can't remember right now.
That dirty shortcut you're looking for is :-)|--8q-: of course. Just type :hsmb51u7 for all the naughty commands.
And how is nose-licking not relevant when your necktie suddenly
experiences anti-gravity? Huh? How could anything not be relevant when
you necktie suddenly floats off to your left?
-
One thing that Vim may help prevent is stress to the side of my thumb.
Because your thumb types in an awkward position: with its side.
Arrow-key+control = side of right thumb
Alt = usually side of left themb
spacebar = side of current thumb
down-arrow: side of thumb
Also, the capslock key should be way on the other side of the keyboard
next to pause, scrolllock and printscreen because alt-tabbing and
ctrl-tabbing or even typing 'a' all to often leads to inadvertant
all-caps. I am lucky that Editplus has a caps-mode converter (ctrl+L
for lowercase).
If capslock goes there, then naturally, it makes sense to put numlock
in that group as well. So then you have a spot left on your numpad. You
can use that for a smiley or something. It would also add another key
to bind in games. Yay.
Well. I feel pretty good after redesigning the one-hundred-and-N-keyboard. I think I'll go write some code.
-
@dhromed said:
Also, the capslock key should be way on the other side of the keyboard...
cAN'T wE jUST gET rID oF tHE cAPSLOCK kEY oNCE aND fOR aLL?
-
I'm sorry, but modifying the layout of keyboards is just plain evil.
You have your Adolf Hitler Holocaust-type of evil, closely followed by
modifying keyboard layouts, which on the evil-scale is followed by
mugging and raping old ladies. (VIM ranks pretty nice on this scale,
too, but that's a coincidence.) You don't want to be eviler than people
who mug and rape old ladies but slightly less evil than Adolf Hitler's
Holocaust type of evil, do you? I thought so. Tonight, I will pray for
you to have sane, heterosexual thoughts about normal qwerty/101 layouts
with the caps lock, print screen, scroll lock, num lock and pause/break
keys right where they belong.
-
@Joost_ said:
I'm sorry, but modifying the layout of keyboards is just plain evil.
You have your Adolf Hitler Holocaust-type of evil, closely followed by
modifying keyboard layouts, which on the evil-scale is followed by
mugging and raping old ladies. (VIM ranks pretty nice on this scale,
too, but that's a coincidence.) You don't want to be eviler than people
who mug and rape old ladies but slightly less evil than Adolf Hitler's
Holocaust type of evil, do you? I thought so. Tonight, I will pray for
you to have sane, heterosexual thoughts about normal qwerty/101 layouts
with the caps lock, print screen, scroll lock, num lock and pause/break
keys right where they belong.
I'm afraid the caps lock key outlived its usefulness the minute the
shift key stopped requiring a 40N force to depress and the lock was an
actual mechanical lock. I'm not suggesting it be moved, but eliminated.
And "where they belong" is subjective as well, isn't it? If we follow
the ancient traditions, the caps lock belongs below the shift key
(where CTRL tends to live these days) and should affect every key, not
just the letters. Changes happen. People cope.
-
Have you ever tried to work on a keyboard with a Delete key that's two keys high? With the Insert key God-knows-where? Or a keyboard with not a F1-F4, F5-F8, F9-F12 row but F1-F5, F6-F9, F10-F12 row? Yes, I can cope with change, but not all the time, we're talking muscle memory here. If I'm on one keyboard today, I don't want to feel lost on another keyboard tomorrow. It degrades my blind-typing skills. As for the location of the caps lock, I've never seen it in the Ctrl place, even though I've used computers since the late 80s. Maybe I'm just unsophisticated.
-
@Joost_ said:
You can't watch Allah McBeal on your toaster because you should get the
TIM, for Toaster IMproved. It's an incredible machine. It's a
programmable toaster that can make toast like any other toaster, only
with fewer button presses. Plus it's not so big. It comes with a
variety of balls: basketball balls, baseball balls, bowling balls, and
a few more that I can't remember right now.
Sounds fantastic! Where can I get one? Does it suck balls as well? At
the moment I'm stuck with Visual JToast for Enterprise. It takes up the
entire ground floor of my house, makes the lights flicker on the
neighbouring street when I turn it on, and has no ball sucking mode. It
does however trim off those yucky crusts and predicts which preserve I
would like - and with almost 50% accuracy!
-
@dhromed said:
Dear Tom_ and Stan, you have both failed miserably in providing arguments beyond exclamations of "that's not true!", supporting them by explaining concepts I grasp fully.
The crux of the matter lies in the possible appliances of the word 'less'. Can it be used to denote a smaller number of discrete items, or is it limited to relative continuous quantities of the lesser variety?From http://www.answers.com/fewer&r=67
The traditional rule holds that fewer should be used for things that can be counted (fewer than four players), while less should be used with mass terms for things of measurable extent (less paper; less than a gallon of paint). However, less is used in some constructions where fewer would occur if the traditional rule were being followed. Less than can be used before a plural noun that denotes a measure of time, amount, or distance: less than three weeks; less than $400; less than 50 miles. Less is sometimes used with plural nouns in the expressions no less than (as in No less than 30 of his colleagues signed the letter) and or less (as in Give your reasons in 25 words or less).
Drak
-
@Joost_ said:
I'm sure VIM can:
- set break points
- step into, out of & over function calls
- see the local variables of a function
- inspect & modify variables
- watch variables
- view call stacks
- show the layout of a class
- help me design a form without typing that the edit box should have the bounds (8, 8, 100, 25)
- generate documentation
- allow me to not type repetitive boiler plate code
- allow me to see two files on the same screen at the same time
I've been quite happy using vim when working on unix machines but i prefer eclipse for doing java code. A couple of other areas I like are:
- autocomplete method calls
- collapse and expand methods
- select a variable, method or class and go straight to its declaration (hit F3)
- define working sets of classes you can switch between
- maintains a nice project list of your workspace
- ver3.1 eclipse you select a term and it highlights all occurences like vim, but additionally it highlights their positions on the scrollbar at the side(click it to go straight there). Lines with errors or to-dos are shown on the scrollbar background also.
- underline errors in the source view, no switch between compiler and vim
- automatically generate accessor methods
- import from cvs and work with easy class browsing, compare changed files, changes highlighted from a single point of operation
- plug-ins : metrics tools, design plug-ins (haven't seen a great free one yet though) for uml, visualisation tools, byte code viewers etc.
- recommendations for fixing problems (not usually needed but it makes things faster and easier to just click the "add unimplemented methods" option when you implement an interface in java and let it do some more of the typing for you.
- view type hierarchy and call hierarchy
- outline of methods, attributes at the side of the source, click to go to it
- customize what you actually want to see (eg. classes in the project, outline of the current class, console, compiler warnings/problems etc)
- automatically fix indentation
- organize imports, you forget to import one or two packages just click quick fix and let it import them all in one go - less typing again
- save and use various run/debug configurations
- set breakpoints as you look at the source code - click at the lines you want rather than remember them when you switch to the debugger
It makes everything available and customizable in a single environment.
-
I bet you could customize Emacs and VIM to do all that. Then you'd
editor technology from the 80s doing things from the 00s. That would be
so cool. Kind of like fitting an anti-gravity device into a Fiat Panda.
I agree that Eclipse is totally awesome. User interface-wise it's very
innovative. I haven't done a lot of Java development in it (only used
the Python plugin). I'm sure that Eclipse would totally rock for Java,
seeing that Java is what Eclipse was originally designed for.
One drawback of Eclipse is that you need a fairly mean computer to run
it smoothly. On an AMD Athlon XP 2000+ with 256 MB* of RAM it doesn't
really run all that snappy. No, this is still no excuse to go back to
the 80s and run VIM.
(I know that 256 MB of RAM is pathetic. However, when I was younger, we
had a 286 10 MHz with exactly 1 MB of RAM so actually I'm a little
hesitant to call 256 MB pathetic.)
- Or, if you must pay attention to some stupid committee, MiBiBytes :-O
- Or, if you must pay attention to some stupid committee, MiBiBytes :-O
-
@Joost_ said:
I bet you could customize Emacs and VIM to do all that. Then you'd
editor technology from the 80s doing things from the 00s. That would be
so cool. Kind of like fitting an anti-gravity device into a Fiat Panda.
That better not be sarcasm. An anti-gravity Fiat Panda would totally pwn.
-
@Stan Rogers said:
@dhromed said:
Also, the capslock key should be way on the other side of the keyboard...
cAN'T wE jUST gET rID oF tHE cAPSLOCK kEY oNCE aND fOR aLL?
yeS: http://anticapslock.com/
The capslock key should be way on the other side of the commode lid. Mine is...
-
@Joost_ said:
One drawback of Eclipse is that you need a fairly mean computer to run
it smoothly. On an AMD Athlon XP 2000+ with 256 MB* of RAM it doesn't
really run all that snappy. No, this is still no excuse to go back to
the 80s and run VIM.
Why doesn't such a tool run smoothly on a PIII 550 with 128 MB? It's a programming language. It's TEXT, for crying out loud.
Wait.
Is it written in Java?
-
I've been using VI(M) for many years, but half a year ago, I switched
to Slickedit. It's in USD 300k price range, pretty much for an editor
(in fact, it's more like an IDE) but for me, it's worth the money. The
language I use most is PL/SQL, and Slickedit supports that better than
any other editor I know. Of course, like many editors, it does syntax
highlighting.
It also has built in support for completing statements, e.g. when I type "for", it completes it with
" in loop
end loop".
It understands which keywords increase indention level and which keywords decrease it.
Pasted codes is always correctly intended relative to the position where it is inserted.
Things like that may save me a few minutes per day, but thats adds up to many hours during a year.
-
VIM? IDE? What are these? I just increment a text string until it compiles and its the program I need. Yeah, thats it.
Bruteforce programming. :P
-
@ammoQ said:
I've been using VI(M) for many years, but half a year ago, I switched
to Slickedit. It's in USD 300k price range, pretty much for an editor
(in fact, it's more like an IDE) but for me, it's worth the money.
At that price I hope it writes complete systems using autocompletion of single words...
-
@bugmenot said:
@ammoQ said:
I've been using VI(M) for many years, but half a year ago, I switched
to Slickedit. It's in USD 300k price range, pretty much for an editor
(in fact, it's more like an IDE) but for me, it's worth the money.
At that price I hope it writes complete systems using autocompletion of single words...
LOL
Of course it's USD 300,-
-
@Joost_ said:
Have you ever tried to work on a keyboard with a Delete key that's two keys high? With the Insert key God-knows-where? Or a keyboard with not a F1-F4, F5-F8, F9-F12 row but F1-F5, F6-F9, F10-F12 row? Yes, I can cope with change, but not all the time, we're talking muscle memory here. If I'm on one keyboard today, I don't want to feel lost on another keyboard tomorrow. It degrades my blind-typing skills. As for the location of the caps lock, I've never seen it in the Ctrl place, even though I've used computers since the late 80s. Maybe I'm just unsophisticated.
I'm actually on one right now, and glad for it. I personally HATE accidentally hitting the insert key, and accidentally beginning to erase a line rather than inserting before it.
And as long as the keyboard is still in QWERTY layout, moving the other buttons around shouldn't affect much other than the keystrokes used to edit - the insert and delete keys aren't used in many keystrokes that I'm aware of.
-
@Joost_ said:
I bet you could customize Emacs and VIM to do all that. Then you'd editor technology from the 80s doing things from the 00s. That would be so cool. Kind of like fitting an anti-gravity device into a Fiat Panda.
I agree that Eclipse is totally awesome. User interface-wise it's very innovative. I haven't done a lot of Java development in it (only used the Python plugin). I'm sure that Eclipse would totally rock for Java, seeing that Java is what Eclipse was originally designed for.
One drawback of Eclipse is that you need a fairly mean computer to run it smoothly. On an AMD Athlon XP 2000+ with 256 MB* of RAM it doesn't really run all that snappy. No, this is still no excuse to go back to the 80s and run VIM.
(I know that 256 MB of RAM is pathetic. However, when I was younger, we had a 286 10 MHz with exactly 1 MB of RAM so actually I'm a little hesitant to call 256 MB pathetic.)
* Or, if you must pay attention to some stupid committee, MiBiBytes :-OSo you're saying that dropping $60 on 1GB of RAM is a worse option than using EMACS and VIM, giving up an integrated IDE/debugger, refactoring, code completion, and a billion other things. I'm a cheap bastard and my laptop has 2GB of RAM. RAM makes me more productive and pays for itself very quickly.
BTW, EMACS and VIM can be made to do autocomplete for all the API stuff, but can you make it autocomplete calls to the stuff you wrote yesterday? Any IDE that can call itself good will save a ton of busy work. If I inherit from a class with abstract methods or if I implement an interface, I want ALL of the necessary for compilation stuff to just appear. If I have to type it, the best I can do is to not make a mistake. I want my IDE to automatically link my event procedures to the event generating object. I want to have my most used autocomplete item initially selected.
In Visual Studio, finding an bug takes very little time. How much work is it to debug a three tier application using Web Services in VIM? How about a multithreaded application? A service (daemon)? All this is integrated with the editor. I can fix bugs quickly, it's finding them that takes most of my time. I love my conditional breakpoints, hover-over variable values, locals window, and all that other stuff right in the IDE.
-
@jsmith said:
So you're saying that dropping $60 on 1GB of RAM is a worse option
than using EMACS and VIM, giving up an integrated IDE/debugger,
refactoring, code completion, and a billion other things. I'm a
cheap bastard and my laptop has 2GB of RAM. RAM makes me more
productive and pays for itself very quickly.
Definitely a valid point, even for a VIM user.
BTW, EMACS and VIM can be made to do autocomplete for all the API stuff, but can you make it autocomplete calls to the stuff you wrote yesterday?
Yes. Maybe not easily on the fly, but you were asking for "yesterday", enough time to rebuild the tag file.
Any IDE that can call itself good will save a ton of busy work. If I inherit from a class with abstract methods or if I implement an interface, I want ALL of the necessary for compilation stuff to just appear. If I have to type it, the best I can do is to not make a mistake. I want my IDE to automatically link my event procedures to the event generating object. I want to have my most used autocomplete item initially selected.
At a certain point you have to ask yourself: If the IDE does so much work automatically for me, why is this work necessary in the first place? Maybe the language is not expressive enough and forces me to violate the DRY principle?
People who prefer a relatively simple editor probably have a different approach to software development than you.
In Visual Studio, finding an bug takes very little time. How much work is it to debug a three tier application using Web Services in VIM?
In a perfect world, you have well defined interfaces and unit tests and contracts and stuff; so you do not have to debug the application as a whole, but each tier seperately.
How about a multithreaded application? A service (daemon)? All this is integrated with the editor. I can fix bugs quickly, it's finding them that takes most of my time. I love my conditional breakpoints, hover-over variable values, locals window, and all that other stuff right in the IDE.
There is no reason to assume that a VIM user cannot use an external debugger to debug his stuff. Tight integration between Editor and Debugger (as in a IDE) makes rapid edit-compile-debug cycles easier, but the doesn't necessarily mean you are able to do your job much faster.
-
Tricky debate... I do love vim - just finished a Perl project, 73
modules, 20k lines, all done in an 80x25 terminal window in vim!
However, I've discovered the commercial down-side of doing with an IDE- I'm running my own business and when I add up the hours I spend,
compared to some guys who are writing an app for me using an IDE, the
difference converts into obvious dollar savings.
- I'm running my own business and when I add up the hours I spend,
-
FYI, vim supports autocompletion. Refer to :help compl-keyword.
No, I'm not arguing for IDE's, but let me throw this out for consideration: Why not use IDE's and vim?
-
"for" should be "against" in the above post.