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.



  • @Daga said:



    Looks just as bad, but is a more correct misspelling :P




    coreckt!



  • "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
    only if I'm willing to learn keystrokes like :sqII)(*&@xx to put an editbox in the form. After all, this is 1975. My gigabytes of RAM are empty, like they should be. My system is totally snappy, because it's doing absolutely nothing.

    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


  • @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 :-O

    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.

    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.


  • 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.


Log in to reply