Slashdot Mirror


Elastic Tabstops — An End to Tabs vs. Spaces?

An anonymous reader writes "Along with Vi versus Emacs, the tabs versus spaces argument must rank as one of the classic holy wars among coders. Here's an attempt to solve it by making tabstops expand or shrink to fit their contents. The concept's pretty cool to use, so be sure to have a play with the demo!"

2 of 263 comments (clear)

  1. Re:A standard tab length would be easier by Daniel_Staal · · Score: 5, Insightful

    Actually, it is attempts to do that which have created the current confusion. Some were obviously too long, some obviously too short, and the end result is tabs which aren't useful.

    I actually like this idea, because it actually you from using this seemingly-simple but in actuality horribly complicated idea that tab = x*space. Instead they have an actually simple idea: Each tab is a seperate column of text. Line up items in the same column with each other. (Of course, how simple this is in practice is yet to be deterimined, but it seems simpler to me.)

    This idea is actually about seperateing sementic and content info. Programmers use tabs (those who do) to convey sementic info. If we can make the program understand that, then we can offer more flexiblity to the user on how to present the information.

    --
    'Sensible' is a curse word.
  2. Re:A standard tab length would be easier by peterpi · · Score: 5, Insightful
    And they make the fundamental misunderstanding in the very first sentence! Why is consistency desireable? Why should my text editor render code consistently with yours? We could be using a different font in a differerent point size at a different resolution. Is that important too? I have white text on a black background on one machine, black on white white for the other. If you specifically need some lines of text to be lined up with each other (consistency within the confines of the document), use space. If you just need it to be shunted over to express intent, use tab. That way we can both set tab to look exactly how we want it to.

    eg: (---> means 'tab', '.' means 'space')


    void foo ()
    {
    --->if (something)
    --->{
    --->--->/* I like to format my comments so that
    --->--->.* the stars make a vertical line,
    --->--->.* but I don't care how much you like to
    --->--->.* indent */
    --->--->bool something = SomeLongFunction() &&
    --->--->.................Another()
    --->}
    }


    This code satisfies everybody with a good text editor. If you like 8 spaces, set your editor so. If I like 2, 7 or 3.14 I can set mine. Pressing space n times annoys everybody who likes 2n, n/2 or any other number of spaces.

    That way they can get on with arguing over important issues like the placement of {

    ;)