Why tabs are clearly superior

If you follow me on twitter or have heard one of my talks you’ll probably know I despise spaces for indentation with a passion. However, I’ve never gone into the details of my opinion on stage, and twitter isn’t really the right medium for advocacy. I always wanted to write a blog post about my take on this old debate, so here it is.

Tabs take up less space

Yes, this might be an insignificant difference after gzipping and a nonexistent one after minification. But it means you need these processes to keep your code size reasonable. You depend on them, for no reason. Comments for example are useful, and it’s worth having them even if you knew you couldn’t minify or gzip your code. Tabs could do the same thing as spaces, so you’re just bloating your code for no reason.

Tabs can be personalized

The width of a tab character can be adjusted per editor. This is not a disadvantage of tabs as commonly evangelized, but a major advantage. People can view your code in the way they feel comfortable with, not in the way *you* prefer. Tabs decouple the code’s presentation from its logic, just like CSS decouples presentation from HTML. They give more power to the reader rather than letting the author control everything. Basically, using spaces is like saying “I don’t give a rat’s ass about how you feel more comfortable reading code. I will force you to use my preferences because it’s my code”.

Tabs are better for collaboration

Personalization is incredibly valuable when a team is collaborating, as different coders can have different opinions. Some coders prefer their indents to be 2 spaces wide, some coders prefer them to be 4 spaces wide. Rather than manually or automatically converting the code post-pull, and then back pre-commit, it would be adjusted automatically, depending on the editor’s tab-width setting, so every coder could start editing right away, with their favorite type of indent.

You don’t depend on certain tools

When using spaces, you depend on your editor to hide the fact that an indent is actually N characters instead of one. You depend on your editor to insert N spaces every time you press the Tab key and to delete N characters every time you press backspace or delete near an indent. When you have to use something that’s not your editor (for example when writing a snippet of code on a webapp that embeds something like codemirror) you will have to face the ugliness of your decision. Especially with codemirror, everyone else will have to face the ugliness of spaces too, as it converts tabs to spaces 🙁

Tabs are easy to select

Assume for some reason you want to select all indents and double them or convert them to spaces. This is very easy with tabs, because that’s their sole meaning. Tabs were invented for this sort of thing. Spaces on the other hand, have many meanings, so you can’t just find & replace space characters. And how do we usually call the practice of using things for a different purpose than they were made for? Yup, that’s right, using spaces for indentation is a hack.

Code indented with tabs is easier to copy & paste

As pointed out by Norbert Süle in the comments, when you copy and paste code that’s indented with spaces, you have to manually adjust the indentation afterwards, unless the other person also happens to prefer the same width indents as you. With tabs, there is no such issue, as it’s always tabs so it will fit in with your (tabbed) code seamlessly. The world would be a better place if everyone used tabs.

But what about the web? Tabs are super wide there!

This used to be a big problem, and even the enlightened coders that prefer tabs usually convert them to spaces before posting code online. However, CSS3 solves this problem, with the tab-size property. It’s supported by Opera, Firefox and very soon by WebKit too. It also degrades gracefully: The code is less pretty, but still perfectly readable.

Are spaces always evil?

Spaces are the best choice for aligning, rather than indenting. For example, in the following code snippet:

var x = 10,
    y = 0;

you need 4 spaces to make the variables line up. If you used tabs, they would only line up when the tab width is 4 and the formatting would look messed up in every other case. However, if this code snippet was also indented, the indents could (and should) still be tabs.

Another example is aligning CSS3 properties with different vendor prefixes. The indent should be done with tabs, but the aligning with spaces, like so:

div {
	-webkit-transition: 1s;
	   -moz-transition: 1s;
	    -ms-transition: 1s;
	     -o-transition: 1s;
	        transition: 1s;

It’s just a pointless detail, are you seriously that obsessed?

Um, ok I am exaggerating a bit when I say how spaces suck. I do think they suck, although I admit the world has much bigger problems than coders who use spaces for indentation.

For example, coders that don’t name their variables properly. Or the ones that prefer Emacs over Vim 😉

Further reading

Thanks to Oli  for his proofreading!
  • Tab Atkins

    Final reason: because I’ve never met anyone named “Space”.

    • Brandon Z.

      Does Kevin Spacey not count?

  • Anonymous

    Yup. Totally agree. Thanks for putting the reasons in writing. =)

  • Sander Aarts

    em vs px

  • Anonymous

    YES! Another strong win for us Tab people! Thank you 🙂 
    another disadvantage of space-indented code is what I call the “asshole” principle. If I were using spaces to indent, I could be an asshole and indent with 1 space per level! Any normal person that opens the file would have to make sure his/her IDE or text editor is configured correctly to convert the spaces,  and convert back (like you said with committing). It’s just a mess.

    • butlerpcnet

      Coming back to reverse my opinion! I’m now a 4-spaces indenter!! Python 3 standard is 4 spaces, and PHP PSR-2 standard is also 4 spaces. Go away tabs!!

  • Tabs don’t decouple a code’s logic from its presentation.  A structure-aware editor is what does that decoupling.  We need more tools that can understand the shape of our code and free us from these kinds of pointless debate.  Graphic designers don’t put up with manually serializing their PNGs and JPEGs, why do all of us who write code put up with tools that make us constantly decide about pointless ephemera like this?

    But, until everyone uses such tools, following local convention is far more important than any particular rule.  For new projects, you may feel free to use tabs; unless you’re using Python, where 4 spaces is always the rule :).

    • antred

      Python doesn’t require 4 spaces per indentation level, it’s merely recommended (sadly).

  • Spaces AND tabs!? What new devilry is this!????

    Also, everyone knows Emacs is teh best. What do you mean, a world PROBLEM!?!?


  • Heresy! I shall attempt a rebuttal:

    1. Less space. Commenting on this point would waste too much space!

    2. Can be personalized. My code is a precious, precious work of art and you should not be changing the indentation! That would mess everything all up! (Slightly serious. I’m also religious about 80 characters per line, for reasons of space efficiency: if some lines are much longer than average then most of your editor window will be empty space to accommodate them.)

    3. Better for collaboration. See above.

    4. Certain tools. You do depend on them! More so! Because everything will be fubar unless the editor is set to interpret tabs the way you intended. You’re saying you depend on your editor to insert N spaces when you hit tab. I guess so, but aren’t you relying on editor cleverness to jump you to the right indent level anyway? I use 2 spaces per indent so not much difference in my mind.

    5. Easy to select. You often want to slide a block of code right or left, and I suppose that with tabs you have another option for doing so (not a very good option, I don’t think). You never want to do a global search and replace on tabs, except of course to convert them to spaces!

    6. Spaces aren’t evil, unless mixed with tabs. Like you say, you want spaces sometimes for aligning things. But you suggest that in that case you can just *mix spaces and tabs*. That hurls us into a dark pit of befuddled despair!

    I too may be exaggerating. I actually feel more strongly about indentation being only 2 spaces wide than I do about spaces vs tabs. So I’d rather you give me code with tabs than code with 4-space indentation. Which may mean I just defeated my whole case.

    • Which may mean I just defeated my whole case.

      Yes you did, haha 😀

    • The 80 characters is a very good point though. If we strive for short line lengths for portability, hope do we cope with someone with a large tab-width setting?

      True portability can only be achieved if you can control how the output will be displayed, and this can only happen with spaces.

      P.S: 2 spaces? you madman!

    • E pluribus unum

      why? come on… it’s easier, you can convert a code indented religiously to 4 spaces… just replace ^4 spaces to 2. 🙂

  • Anonymous


  • Back in the 90s there was no gzipping on the web and trust me, table layout code was usually huge AND needed to be indented correctly. No need to say you wanted to use Tabs instead of spaces with those tiny modems… Yep, size mattered and still does. I’ve always used Tabs and will always use them.

    • im a tabs person myself, but most professionals use minifiers in their build to (among other things) *preserve space* I think this is the point that tries to totally invalidate the size argument.

  • I still maintain that tabs and coding style are a presentational issue. Our tools are failing to abstract us from the underlying implementation of the code.  Whether I use tabs or spaces, Allman or K&R style should be irrelevant; the code is code, not the layout of the characters in the file. I wrote a note about this a few years ago:

    “I would like it to know that a source code file should be stored in a certain format. This would allow me to use tabs and Allman style, whilst other colleagues could use spaces for indentation, and K&R style. I suspect it would then either be a case of the SCM storing the code in the most efficient format and converting to user-style when the file is retrieved from the repository. This would still allow me to use my preferred text-based diff tool to compare code written by myself and others, without having to worry about extra blank lines and braces in the wrong place, tabs and space indentation. The focus would not be on code-representation, but the code itself.”Source:  http://bernhardhofmann.blogspot.com/2009/06/source-control-and-diff-software.html

    • Completely agree!

    • Anonymous

      I still maintain that tabs and coding style are a presentational issue. ”
      Couldn’t agreee more. That’s all that it is. 
      I just 

    • Stephen Wotton

      I completely agree Bernhard, this would be the most comprehensive solution.

    • jurchiks

      And how convenient it would be to compare edited local files with VCS clean copies after such “converting to user-style when the file is retrieved from the repository”… Potentially all indentation is different so all lines are marked as changed (I know this can be ignored in some diffs, but nevertheless), all the braces are different (same/next line), or even added/removed (required/optional braces on single-line blocks), and lots of other things that break this dream of yours.
      You might be insane enough to suggest that every time you do a comparison it reformats the code to the VCS style and then back again once you’re done comparing, but that would be ridiculous.

      • Miles Rout

        I think you miss the point being made here. Code should be stored *semantically*, not as text. Code should be diffed *semantically*, not as text. I don’t want to know that one line of text was removed and one line of text was added. I want to know that one expression was substituted for another expression.

        • brianm101

          That concept presumes a wonderful world where we all have diff’s that really can compare ‘semantically’. In the real world this is sadly not so! Hence spaces are best…..!

        • Miles Rout

          I have never encountered a diff that could not be compared semantically. Even if I did, I could just use a textual diff on it, because the VCS that I use (git) allows me to use whatever diff tool I like.

  • Panagiotis Astithas

    I used to share your preference years ago, as well as most of your arguments. In my case, the first one that got shot down was the tools. At first it seems that tabs leave you free to set your editor to your personal preference, but the reality is that not all tools are as configurable. And of those that are, you are not always in a position to alter them. Think of hg, git, cat, diff, etc. Not what you’d normally think of as “your tools”, but it’s what all of us use along with our editors. Not much configuration there for tabs. And then think about other tools that embed these tools, like GUI apps and web apps. Like Google Code, or GitHub. Can you get those to use 4 characters per tab?

    Everybody agrees that it’s more important to not mix both tabs and spaces, than to pick a horse in this race. But reaching an agreement about indentation size (or maximum line size, etc.) is predominantly a collaboration concession. It just happens to tie in with the tool limitations. If you prefer 8 char tabs and I prefer 2 char spaces, when one of us reviews the other’s diff on Google Code or Bugzilla, won’t he necessarily have to concede to read code in an unfamiliar format?

    The collaboration card is held by spaces. If you need to work with others, it’s in your best interest to remove all obstacles to collaboration and in most cases, this means settle on a common denominator. Spaces are solid. They cannot be misinterpreted. They don’t change from one workspace to another.

    If they were people, you’d be hanging out with them and buying them beer!

    • Sigh. 

      Frankly, I don’t think you read *anything* past the titles in this post. I have addressed pretty much all your points in it.

      • Panagiotis Astithas

        To be fair, I did read all of it before commenting. Twice actually. Three times by now, after reading your comment. I still don’t see your counterpoints, but maybe I’m just dumb. That’s OK. At least I should get some credit for trying! 🙂

        • Ok, lemme try to help:
          a) Your points about web apps are answered with tab-size. It could be in your user stylesheet too ;)b) “Everybody agrees we shouldn’t mix tabs and spaces” -> Um, no. Many people, including myself think the best way to go is using tabs for indenting and spaces for alignment. Everybody agrees we shouldn’t be inconsistent, as in, using spaces for indentation in one code block and tabs in another.
          c) Your point on collaboration doesn’t even attempt to refute my arguments about how tabs are better for collab. It’s as if you never read that part beyond the heading.
          d) “If you prefer 8 char tabs and I prefer 2 char spaces” Then we just use tabs and I set a width of 8 and you set a width of 2. Problem solved.

          Also, I’ve never, ever had issues with git & tabs, so not sure what you’re talking about there.

        • Statements and Blocks

          The interesting thing is that tabs were designed for alignment. Originally, they were tab stops, and they were at specific “distances” from the margin. 

          So the real problem here is that your editors are all broken wrt tabs, since tabs actually have nothing to do with spaces originally. (Hint, look at any word or desktop publishing program, tabs are not set by # of chars)

    • billy bob

      “Spaces are solid. They cannot be misinterpreted. They don’t change from one workspace to another.”
      This is wrong!  TextEdit (on a Mac) vs Notepad on a PC vs DW code view vs BBEdit. Character spacing is different in nearly every editor available.

      You’ve never tried to convert an MS Word Doc to another Editor before have you ?

      • Are you seriously suggesting that anyone would use MS Word as a programmer’s text editor?

      • Br. Bill

        We are clearly not talking about situations in which a proportional font is being used. That is entirely different from most programming editors.

  • Hanzi Fey

    spaces just feel more right for indentation

  • I’m using spaces! Yes, I said that.
    Did you try to code in textareas where Tab key means switching to next element? I hate this kind of pages, but there is no another option((
    In this case I prefer use 2 spaces, not Shift + Tab.

    In my own projects – 2 spaces. My code – my habits. If you want to read it, you can easy convert spaces to tabs.
    Every project must have code guidelines, so all contributors can easy “understand” each other.

    P.S. Search&Replace (or automatic feature) can stop the “holy war”

    • Tim

      When tabs are used for indents (and indents only), it’s safe to search and replace. But spaces are used in data and other whitespace, so a search and replace would destroy that data in horrible ways. Tabs are more semantic!

  • Totally agree. I hope that trend will change in the future. I had to change my tabs to spaces in order to fit in the coding world.

    Tabs FTW 🙂

  • Decent points, however I challenge you to copy a block of code formatted using tabs and try pasting it into a REPL (for example irb) to evaluate it.

    • Doug

      I doubt that anyone will take you up on your challenge. I also doubt that anyone will answer my question above.

  • Or the ones that prefer Emacs over Vim

    Thank you for the compliment.

  • Well, interesting post,

  • Isaac

    Trying to propose the absurdity that indenting != aligning is a sidestep of the failure of your argument. Long live spaces.

    • antred

      You say that indenting is the same as aligning and yet YOU have the nerve to claim that her argument has failed??

    • Pato Ezequiel

      Guards, please take this ignorant infidel to the dungeons.

  • Norbert Süle

    Totally agreed. It is a pain in the a$$ when you have to adjust some external code you just pasted into your code, because that code is indented with 3 spaces, while yours are not

  • Paul d’Aoust

    Just wanted to offer my support and approval; you hit the nail on the head! I love being able to choose my own tab stops, thank you very much.

  • You might have me sold on this, but Dabblet doesn’t allow me to customize tab-size so I’ll be using spaces in the meantime. 😉

  • Valid points, but there is one big, important tool that unfortunately does not support customizing your tabs: **GitHub**

    Before I could really consider moving away from soft-tabs as an organization that one would have to be fixed. 

    • Yes it does, same way as every web app: User stylesheet + tab-size.

  • Pingback: Why tabs are clearly superior | Lea Verou « Grailbox()

  • Your own dabblet.com is a prime example of why tabs are horrible: they get set to 8 spaces by default.

    • And your comment is a prime example of why commenting on blog posts you haven’t actually read is horrible.

      • I read it and you have some very good arguments. I’m very much on the “I don’t mind, but lets stick to either tabs OR spaces” side of the fence (a.k.a on the fence?).
        The default of 8 spaces per tab is the one thing that always drags me back into the world of spaces, as it bugs me that I need to spend time converting code sometimes.

        • If you read the blog post, you would have read about tab-size.  Put that in a user stylesheet and you’re done: Every page now has a proper tab width (unless they specified otherwise).

        • Is this only supported in firefox? How about when you click “view source”? I always, always use tabs when programming, because it’s faster to type than 4 spaces.

          However, when I write HTML, especially if I have to use the WordPress editor, an 8 space tab just kills me. I read the post, I read your comments. I read all the comments down to this one… I just don’t understand what this property does for me.

        • Opera and Firefox at the moment. WebKit is working on it and should be in it soon (I linked to the bug report, you can follow the progress).

          You can use this property in both websites you make, and in user stylesheets so that every other website conforms to it. View Source (at least in Chrome) is also styled by a CSS file, which could have tab-size I guess.

        • Thanks Lea. I’ve been making websites for years, and I didn’t realize what a user style sheet was until today.  Thanks for the great post. I can’t wait to start using tabs in my HTML again. 

        • Alain

          I love tab for all my C/C++ code (Visual Stuido/Xcode/Dreamweaver) but I can’t figure out how to make Chrome/Firefox/Webkit(coming) apply to when doing ‘view source’. Please add detail steps for those…

  • Rob Steward

    Haha, yes! Vim FTW!

    Seriously, as with many things the true way lies in combining both approaches. As you rightly point out:

    Tabs for indentation
    Spaces for alignment

    …and the world is a better place.

  • mks

    I’m with you. Smart tabs are semantic.

  • I’ve always preferred tabs for the simple reason that it takes less button hits to get your cursor in the correct place (especially when editing existing code using a non-gui editor such as VIM (terminal) where you can’t point and click to place the cursor). The problem is not all the devs here use the same code editors, in fact almost all of us have a different preference. We’ve simply found it’s easier to set a standard of say, 4 spaces for tabbing than configuring common ‘tab’ behaviour across a range of editors and devices

    • Ar Shui

       For whose who prefer space instead of tab, does you only use one editor or IDE, so you doesn’t know how painful when using different editors/IDEs?  Since NOT ALL EDITORS behave the same when dealing indent with space.


      • all the more reason to use tabs and fix your editor to do it the right way, whoever came up with spaces should be — your choice of methodic violence goes here —

      • Juan Marco

        I use spaces because I use multiple editors.
        And I want the code displayed the same in all editors.
        All editors with mono spaced font treat space the same way.

        Also… Sometimes I do 2 spaces per tab for HTML and 4 spaces
        per tab for JavaScript. In the same file. Because HTML line length
        gets really long really quick and I try to keep it to 80 columns.

        • I also use multiple editors, and am able to get it to display the same despite using tabs.

          By using spaces, you’re forcing YOUR preferences on other developers.

  • Anonymous

    Tab oriented languages not withstanding, I think spaces could use a little defense here:
    1. Less space. Any distribution which is concerned about space goes through a packing process before delivery, so this point seems irrelevant.

    2. Can be personalized. Isn’t this the kind of mentality that leads project members to allow their text editor to rewrite tab/space/newline settings? Don’t you conform to the standards of the project you work in? if you merrily let your editor handle it settings who knows what kind of havoc you can create?(answer: the guy who manages the repo knows). 

    3. Better for collaboration. The best thing for collaboration is the thing which creates consistency among collaborators, a view which maps 1:1 to representation is what creates that. If you had said ‘better for balkanization of code by letting each dev set their own standards’, I’d wholeheartedly agree with you.

    4. Certain tools. I don’t depend on auto-spacing any more than you depend on auto-indention. Yes this is a useful feature which save me many keystrokes, but no I would not suddenly regret my decision. In fact often times when I’m in a remote editor or using raw text for something that I am pleased at the uniformity spaces provide. So I would say the person noodling with how their tabs look is they guy depending on a tool. My code always looks right, in any editor, all day(’till some jerk finds a bug). 

    5. Easy to select. I usually band, line or block select, so this drawback isn’t something I’d considered. If I use a select within the editor I can easily select indentation by selecting a string of continuous chars, so again… not something that impacts me. Most importantly, if I walk over to someone else’s editor under a ‘spaces’ regime I don’t see what looks like a ransom note from a third person mingling spaces and tabs without realizing it. For some reason it’s always *that* guy that wants the whole project to switch to tabs. 

    6. Spaces aren’t evil. Spaces mixed with tabs just wreck readability. completely. But on the plus side… this sort of thing leads me to refactor shitty code.

    • Kencrismon

      Glad you did this.  Your responses are spot on.  I am a space guy and your conforming to the standards is well put.  Bottom line.  I do what the coding standards of the project say to do.  Bar none, ALL coding standards in my 20+ years of doing this have been NO TABS; Sorry Mr. Atkins, spaces are to be used.

      Just my $0.02 worth but regardless of the religious side you take, a good blog and some good comments.

      • Agreed – after following no-tabs coding standard since the late 1980s, I joined a company that insisted on hard tabs in files, then watched the Version Control System go nuts tracking all the tabs-to-spaces-to-tabs conversions as people with different tab width preferences “fixed” misalignments. Just as I had always suspected would be the case.

        • Which is why spaces should be used for **alignment**. Tabs only for **indentation**.

          Tabs for indentation
          Spaces for alignment
          Tabs for indentationSpaces for alignment
          La la la

          (I should turn it into a song. It will be a hit)

        • Marcus H.

          And how many spaces for alignment? And what would happen to that magic number when someone who uses a different tab stop views the code? Is this not the bone of contention?

        • No, not at all. If you use tabs & spaces right, people can view your code with ANY tab size and it will still look fine and things will be perfectly aligned.

        • antred

          “And how many spaces for alignment?”

          What??? What kind of question is that? As many spaces as it takes to __align__ … that’s why it’s called ALIGNMENT. Geez!

        • Daniel Chatfield

          You have clearly not understood.

        • This complaint is nonsensical. If everyone on the project was following the tabs standard that they were supposed to be using, there would be no “tabs-to-spaces-to-tabs” conversions happening at all. If that was happening, it could only be caused by some set-in-his-ways jackass who insisted on spaces refusing to do as he was told.

        • tasoili

          He’s referring to people that place tabs in order to align – not indent.

          See this:

          function someFunction() {
          var x = 10,
          y = 0;

          The second var, y = 0, should have one tab to indent and 4 spaces to line up the y with the x above it. If you use a tab to indent followed by another to align, it will only line up for people that have tabs represented as 4 spaces.

        • The best thing you can do is to setup your editor to display a tab as 3.7 spaces, so you will not even be able to use tabs for proper alignment, unless you reach a ten-level indentation, which means your code already sucks anyway.

        • Guest

          This is wholly untrue.

          If “var x” is preceded by one tab, and “y” is preceded by one tab and four space, they will *always* match regardless of tabstop.

          You use one tab at the start of each line — so it will always match that far.

          Now you use four spaces on the second line – it will also always match (if you use a fixed-width font), because you are skipping the width of four characters (be they ‘v’ ‘a’ ‘r’ and space or space space space and space).

        • John Runyon

          This is wholly untrue.

          If “var x” is preceded by one tab, and “y” is preceded by one tab and four space, they will *always* match regardless of tabstop.

          You use one tab at the start of each line — so it will always match that far.

          Now you use four spaces on the second line – it will also always match (if you use a fixed-width font), because you are skipping the width of four characters (be they ‘v’ ‘a’ ‘r’ and space or space space space and space).

        • tasoili

          Sounds like we agree?

          I’m saying use tab to indent, then spaces to align. It wouldn’t work consistently if instead you used two tabs preceding the “y = 0;” part.

        • Franklin Yu

          Seems others are confused about your position, ha! [shake hands] I am also a “tab for indent, space for align” guy.

    • Anonymous Coward

      I think your point of view is slightly skewed.

      2) Personalizing the layout is a non-issue as long as your repository is semantic. Even if your repository isn’t semantic, most decent repos have pre-submit scripts, which you can can fix the formatting for you, and most decent programming editors/IDEs are able to reformat code to your preferences.

      3) The best thing for collaboration is what makes every participant understand the code easier. Getting everybody to the lowest common denominator is counterproductive. If somebody has a problem with 2 spaces indents, but that’s the norm in the project, his productivity will be lowered for no benefit, at least for some time.

      4) This is a non-issue. Tabs and spaces, when used consistently, provide the same consistent view, regardless of the editor you use.

      5) What editor are you using? Thing is, a newer editor will automatically fix up the mess created by older tools mixing spaces and tabs, so that after saving the file it will look consistent across all editors.

      6) You’re right on this one. Still, making some code look readable to me is more difficult if the code uses an indent of five spaces instead of tabs.

      The purpose of code indentation is readability. Using spaces instead of tabs is like any other sort of hard-coding.

      • Anonymous

        2) So you are telling me I should force scaffolding on everyone else because tabs are better? I say they’re not precisely because I need *no* management overhead, project/editor/repository settings or anything else for consistency.

        3) I suppose it’s a difference in perspective: You are focused on comprehension while I am focused on contribution, I prefer to let coding standards facilitate the contributors.

        4) Tabs mingled with spaces (for ‘code prettiness’) produces some pretty horrific layouts, if I use spaces I can make the code as pretty as I want without someone using a different tab stop ‘correcting’ this prettiness. then you’re playing repository ping-pong just tempting conflicts the whole time. WHich leads me to:

        5) if you are using an editor that rewrites your code (line-breaks, tab-stops, etc.) on file-save, you are pure evil. This create such a great rate of change in the repository(unless you force semantic repos/precommit hooks on every project you ever touch) you are almost certain to create conflicts and overwrite other’s work. I’ve heard “No, this will be better, you’ll see” only to trace down reverted bugfixes to checkins of their major feature. Sure this sort of flow *should* work, but in practice all I’ve seen is heartache.

        6) Sweet, we agree! 🙂

        • Statements and Blocks

          This entire argument is based on the assumption that code should sit in a file as it appears on screen. This flawed assumption causes a “broken by design” implementation that we currently have across the board, as no one has looked at the real cause of the problem (the assumption) vs just bandaiding the symptoms (various display preferences, etc), 

        • Anonymous

          No, it’s based on the assumption files should be edited in the format they are written. The next step down this slippery slope of symbolic code storage is being able to substitute equivalent logic structure, or maybe I layout my files or comments differently than you. maybe I like ant as my build script or maven or fabric or I just get crazy in the shell. The point is a project is an accumulation of these decisions, for better or worse and the aggregate of all these standards is a type of culture, within the code itself. To me, all this talk of I want to look at things ‘my way’ seems totally disrespectful to whoever laid down all that code. Maybe you should be pleading for developers to adopt tabs in new code or for editors that allowed you to use your own formats in translative way to minimize file rewrites and thus project collisions.

          I think your assumption is that indention layout is a trivial user preference, while I say it’s part of the project’s dialect and not something up for alteration.

        • Sean Goheen

          Absolutely, the guidelines of a project should be followed, and there should be no conversion. But if the guidelines for all projects were to use tabs to indent and spaces to align, and they were all being used, then there would be no reason to convert, everyone would get there preference, and everything would ALWAYS line up.

          Furthermore, have you never had code that at times ends up being displayed in a non-monospaced font? Anything that doesn’t use tabs is a horrific nightmare when that happens…

        • Juan Marco

          With tabs, adjusting it from what the original author used may make your code exceed 80 columns. And printing out code is still valuable. People print out copies of papers they are proof reading. I do it with code. And I actually find errors.

        • Sean Goheen

          A.) That assumes that the author bothered with keeping lines under 80 columns in the first place.
          B. ) Since you are the one changing the size of the tabs, you can change it to something printing appropriate when printing, if necessary.
          C.) I don’t know of an editor that is worth it’s salt that can’t wrap lines at 80 columns, or any other number for that matter. So, I am against using line breaks to keep lines under an arbitrary length in the first place. It limits other people’s options. (Want a smaller font broken at 100 columns so you can use less paper? Legally blind and need it to be a larger font at 40 Columns so you can even read it? Sucks to be you, whoever hardcoded the line breaks didn’t care about your needs…)

          I’m sorry, but there is absolutely NO reason to force your viewing preferences on everyone else in your project. All decent text editors are capable of displaying and printing sensibly formatted text in whatever format the user requires. Use tabs for indents, spaces for aligning and your editor’s word wrap feature for keeping lines under 80 columns.

    • Mecki

      2. When you work on different projects, in different communities and companies, there is no one standard to follow and this is a problem. Project one uses X spaces, company one uses Y spaces, project two uses Z spaces and organization XYZ use whatever spaces. The code looks different all time, you always need to adapt, chances to make it wrong are huge. Or you use tabs and everything is okay: If everyone uses one tab to express one indention level, everyone gets code the way he prefers, everyone is happy and nobody ever needs to adopt to any special standard, at least as far as indention goes.

  • Hits the nail on the head. Tabs are for semantic indentation, spaces are for presentational indentation.

    • Br. Bill

      There are situations where this will break if everyone doesn’t use exactly the same tab length.

      • No, not really. When you split a single statement over 2 lines, you still have to indent them the same way. After this indentation you can use spaces, and then it won’t break.

        • Br. Bill

          You know, I actually take back my previous statement, as you are correct about this. I guess the real problem is that developers rarely do it properly.

        • Joshua Lee Junon

          4 years later and this still isn’t solved. Then again, they haven’t done spaces properly either.

        • brianm101

          How can you do spaces differently or is it the final frontier

    • james

      Tabs are for tabulation not indentation.

      • Karl Schipul

        sounds like splitting hairs.

        all I know and care about is that tabs make real world code easier to read and work with, in multiple programs.

      • forresthopkinsa

        Tabs on *typewriters* were for tabulation, they’ve always been for indentation on computer keyboards.

  • +1 pro tabs. Using spaces for indentation in code is like using ‘& ‘ for margin on webpages.

    Also annoying with spaces: when clicking on the beginning of a line in the editor, the cursor is anywhere. With tabs: the cursor is at a defined position.

    Spaces for aligning? I’m not sure. The concept relies on monospaced fonts. I prefer proportional fonts in my editor even for coding.

    • Hm, I had tried to post a follow-up… Am I not allowed to answer my own postings? I’ll give it another shot.

      The character entity references got resolved , unfortunely. What I was gonna say is: Using spaces for indentation in code is like using NBSP for margin on webpages.

      To quote Terry Pratchett: “Multiple exclamation marks are a sure sign of a diseased mind.” Doesn’t this hold true for multiple spaces as well? 😉

      • Hi Gunnar,
        I see both “Edit” and “Reply” in my own comments, you don’t? Maybe I misconfigured something on DISQUS.

        •  I see “Reply”, but not “Edit”. I’d have to register, I guess.

  • Anonymous

    #1 – If you are so worried about space why are you not minifying your output in production?
    #2 – This is why you have coding standards such as PEP8
    #3 – You’re counting on your editor understanding the correct tab key behaviour. If I hit tab here does it indent, or does it change focus from the textarea? I can always enter spaces. So your certain tools point works both ways.
    #4 – Every editor I have ever used has some implementation of smart-tabs to cope with this.
    #5 – So I copy code with tabs and it doesn’t fit me cause I use spaces? Can’t please all the people all of the time.
    #6 – “Enlightened coders”? Sod off.
    #7 – Tabs and spaces, mixed. Now you’re being really stupid.
    #8 – Nope not just pointless detail. For us Python programmers it is a big deal. 

    • 1. Who says I’m not? I only don’t do it in sites targeted to developers, as I believe in View Source.
      2. So that everyone can be coerced into a certain preference, whereas with tabs they could have their cake and eat it too? Cool story bro.
      3. You can always copy the tab character and it’s still one keystroke. Even *pasting* tabs manually is less work than pressing the Space key four times.
      4. Not every editor does and indentation shouldn’t dictate your choice of editor. 
      5. Which is why I said the world would be a better place if everyone used tabs. You could have different tab widths and it still would fit.
      6. Go get a sense of humor, it’s on sale these days I hear.
      7. Haha, I know I’m winning a debate when the opponent starts resulting to childish insults over logical arguments. Well done!
      8. My condolences. 

      • Anonymous

        > Go get a sense of humour, it’s on sale these days I hear

        > Haha, I know I’m winning a debate when the opponent starts resulting to childish insults

        Shall I pick up a spare sense of humour for you while I’m there?

        #1 – So on these sites where you don’t minify size isn’t an issue, so why worry?
        #2 – Yes everyone should follow the same standards. Otherwise you end up with horrible to maintain code, regardless of wether it has tabs or spaces. You do understand the importance of shared standards yeah? Cutting edge or not…
        #3 – Yay for hacks and work arounds!
        #4 – If an editor doesn’t have such a basic function, it is going to have much bigger problems.
        #5 – No it wouldn’t, what about your “awesome” idea of mixing tabs and spaces? If you have different tab widths then your alignment is going to be off all the time. But a space is always the same width.
        #8 – No condolences required. I much prefer working in a real programming language. You have fun marking things up though 🙂

        • > Shall I pick up a spare sense of humour for you while I’m there?

          Sure, if you’re paying. More can never hurt. But I doubt you’d have the taste to pick a good one 😉

          1. It’s always an issue, just being open is a more important one.
          2. Of course standards are important, where there actually is a dilemma. With tabs, nobody has to give up their indent width preferences, so forcing a fixed indent on them is pointless coercion.
          4. I assure you, there are plenty of such editors that are widely used and adored. E.g. Espresso by MacRabbit.
          5. Firstly, it’s not only my idea, as you seem to suggest. It’s a widely accepted coding style, as is evident by both the linked articles and some of the comments here. Secondly, you seem to be failing to understand the distinction between indentation and alignment. If you use tabs for indentation only, no matter the tab width, your code is perfectly aligned. 
          8. Your ignorance shows by the fact that you think that front-end languages are limited to markup languages. Or you actually think that JavaScript is “marking things up”? I can’t decide what’s more ignorant.

        • Anonymous

          From the Espresso preferences – http://cl.ly/Doj2

          You can’t make a sweeping statement that mixing tabs and spaces is widely accepted, even the suggestion of it is likely to make a Python developer gag. So perhaps in your language(s) it is, but not all. Where-as if you spaces for indentation as well, you never have to mix 🙂

          I don’t think all front-end languages are markup languages, that was a joke. I do think they’re (by-and-large) horrible inconsistent messes. But I think the same about many server-side languages (such as PHP). But I don’t think they’re all markup languages. I would still rather gnaw my own arm off than spend my days writing Javascript, but I know it is not a markup language.

        •  I appreciated this back and forth 🙂

          Aaron, I develop in both Python and PHP and I fully agree w/ the author. If anything, since Python depends on indentation as a language construct, it makes all the more sense to use tabs instead of spaces. As Lea said, each developer should be able to quickly specify their own indentation prefs when looking at code.

          As for PHP, I have taken over a couple of projects recently where the author apparently had no indentation standards at all. It’s an absolute smorgasbord of both spaces and tabs and it’s driving me insane >_<

        • Anonymous

          Have you never heard of PEP8?

        • > From the Espresso preferences – http://cl.ly/Doj2

          I thought you meant preferences for converting pasted indents to your preferred indentation style. Of course every editor has preferences for using spaces instead of tabs. Your point being?

          > You can’t make a sweeping statement that mixing tabs and spaces is widely accepted, even the suggestion of it is likely to make a Python developer gag.

          So? Since when are Python developers a majority in the coding world? And as Brade commented, it’s not even true about all Python developers either. I was talking about C-style languages where indentation doesn’t have meaning (like it does in Python).

          > I do think they’re (by-and-large) horrible inconsistent messes.  But I think the same about many server-side languages

          Apparently you seem to think all languages suck, except maybe Python. Maturity at it’s finest (NOT).

        • Anonymous

          Since when did “many” become synonymous with “all except one”? I was amused however by your comments on my maturity, followed by a large “NOT”. Pot calling the kettle black?

          And I’d like to refer you back to your earlier comment;

          > Haha, I know I’m winning a debate when the opponent starts resulting to childish insults over logical arguments. Well done!

        • arcussinus

          There are ALL KINDS of chemistry sparking between the two of you 😉

    • Anonymous Coward

      You Python programmers … I agree, the nastiest joke you can do on a Python programmer is mess up his indentation settings. But that is your choice. EVerybody likes it, although it’s obviously fragile.

  • I am forced to use spaces by coders at two jobs now. I’m not sure why they don’t use tabs and auto-adjust the width. Perhaps it is an adoption issue in the opensource community.

  •  … wow, so many words on so less content

    • Statements and Blocks

      >>words <<content

      • Statements and Blocks

        >> words <<content

  • Anonymous

    Spaces!! Spaces!!

  • Yousuckalot

    You sire, are an idiot.

    • Maybe, but I’m certainly not a sir (or a sire)

    • Really? What a worthless comment. It’s a little over the top for one, and completely lacking evidence for another. Your opinion is yours to have of course, but it’s completely worthless without an explanation.

      • Brian M

        At least he tried to be polite – but that didn’t quite work, clearly a bit spaced out….. !

      • yousuckalot is a spam bot

  • At the risk of being “that guy”, I don’t care either way, just as long as everyone is using the same thing.
    At the moment I’m writing mostly Python which, if you’re adhering to PEP 8, dictates 4 spaces as recommended indentation. 
    It isn’t the spaces or tabs I value, it’s the fact that the code in our team is written in a common style.

  • Sure, tabs are neater when you need block structures, like loops, or if you need multiple lines for your algorithm.  The ‘dependence on a pre/post processor’ argument is a light one, considering how trivial I find them to build.

  • Brian M

    Use to be in favour of tabs – but have gone across to the dark side 🙂
    The main reason is for consistency, code layouts should look the same no matter who’s screen or editor you are looking at.
    Not to mention the temptation of coders to randomly use spaces or  tabs depending on their caffeine levels is no longer an issue, so we set tabs to generate spaces –  Sorry I know this is not good for your blood pressure :)As we like to say Code shops are not a democracy they are a dictatorship………

    • Joshua Lee Junon

      > The main reason is for consistency, code layouts should look the same no matter who’s screen or editor you are looking at.

      For like the 100th time, not sure how this is broken by /tabs to indent, spaces to align/. It’s really not that hard.

      • brianm101

        Unfortunately that’s the problem! The tab spacing is dependent on whatever the system/editor is set to – so by definition they are inconsistent, write once and read different everywhere!

  • Jonny Cook

    I agree 100%.

  • Spacer

    I usually prefer spaces because of formatting/alignment concerns. But your point about using spaces for that, and tabs for indenting, has really hit me.

    Since you also seem to prefer vim, is there a good way or any tricks for editing code with mixed tabs/spaces? Something as easy as setting expandtab, shiftwidth etc. in the .vimrc. That’d do it for me.

    • Tim Locke

      This is not a new idea. No one who prefers tabs over spaces has ever suggested tabs be used for alignment.

  • Frieder

    Couldn’t agree more. Great post.

  • Thaddee Tyl

    I am pretty sure I cannot convince anyone here, and I will always maintain consistency with the coding style that is currently used in the file I’m editing. This being said, the only reason I don’t use tabs is that there is no reason for a single Unicode character, in a monospaced font, to have a size bigger than another character. Tabs undermine the very philosophy of monospaced fonts. That point was not answered to in your article, hence this very comment.

    The way I see it, this issue is very much related to the Markdown vs. Github Markdown conflict. The former lets you put newlines in your paragraph in order to maintain the 80 characters limit, while the latter breaks the paragraph on each line feed.

    Independently of whether the 80-c limit is a good or a bad thing, programmers that want their lines to fit in their editing window implicitly expect everyone to have tabs of the same width. They only enter a line feed if the line they are on goes past that sacred width. Those with a bigger tab width have their line go past the limit. What should they have done? If everybody must count on their editor’s line wrapping, how should the editor know how much to indent the line, so as to please the eyes? Those issues only come up because tabs break the monospace philosophy. Imagine a world without tabs. All those issues would be solved.

    By the way, tabs were invented with certain characteristics. Tabs are not designed to look like eight spaces. Tabs are designed so as to align on the 8th slot, 16th slot, 24th slot, etc. in the 80-slot editor (each slot being able to contain one character, except for tabs, which span across slots). That’s what was called “tab stops”.

    Believing that nobody expects tabs to behave this way still today is wrong. The Go community (based around the programming language) still use this a lot, and their tabs *must* conform to the original idea of a tab (which means that code is indented by 8 slots). They are very vocal about it. (They are very vocal about hating syntax highlighting, too, but that is another issue.)

    • Alpheus

      I’m not convinced that each unicode characters are all supposed to be the same size. Have you looked at Ancient Hittite characters? Is the heiroglyph for “Freedom” *really* supposed to be the same size as the letter “A”? Even if we limit ourselves to the English language, there are plenty of fonts where each character has a different width; sometimes, characters even have different widths, based on what other letters are nearby!

      When we’re talking about computer programming, I generally like fixed-width fonts…but I also like the idea of having a character that means “this is the next indentation level”, and the tab character (which, historically, wasn’t meant to be fixed to the size of “8”, but became so in the initial transition from typewriter to computer…although even now, some programs allow you to preset tab stops) seems to be an ideal character to comandeer for this purpose.

      Now that I think about it, there are even Unicode characters that aren’t meant to be printable at all! Their purposes are to control how data is transmitted and/or presented. Horizontal Tab, Vertical Tab, Carriage Return, and Line Feed are all examples in this class of characters…as are EOL, EOF, and ACK. (Whenever I get bogged down in the details of a transmission standard, sometimes I wish we would use these “characters” more heavily than we do…)

  • Your arguments here are about as useful as the arguments for or against CR vs. CR/LF, with one glaring difference. Spaces always work. ALWAYS WORK. The very fact that tabs require special consideration to work across systems, editors, HTML/CSS display, user accounts, source control, etc. makes working with them a nightmare unless you are all alone in your development arena.

    You can keep your tabs and their lousy way of appearing different for every freaking user. Your position is akin to proposing that shoes only come in sizes 4, 8, 12 and 16.  And that if that doesn’t work for you, just change the size of your foot.

    • Tim

      “Spaces always work”? Uhh, no, they don’t. They’re a hard-coded hack that spits on anyone who doesn’t use the author’s preference for indent widths. Spaces “require special consideration” for editors to override the tab key, the backspace key, need to implement their own indent/deindent of spaces, and most don’t even bother fixing the overhead of moving the cursor over these unnecessary characters.

      You obviously paint yourself as an exclusively-Windows user, because CR hasn’t been used by any OS for years now. Mac and Linux use LF. They also have default apps that handle both types of line endings just fine, unlike Notepad.

      Elastic tab size is a feature to allow multiple people to be happy and trade code without conversion, and you label that as a defect with your nonsensical foot analogy?

      • Br. Bill

        You couldn’t be more wrong about me, Tim. But nice try. And if you believe that a tab of 8 and a tab of 2 can ever be compatible just by changing a setting on my editor, then you don’t know tabs any better than you know me.

        • Tim Locke

          I would never hire you because you don’t understand tabs.

        • Br. Bill

          How many tabs are in this line, Tim? You’ll never know.

        • brianm101

          and probably true to say you don’t understand the concept of maintaining a consistent layout across systems either!
          Have worked with engineers who insisted on using tabs and their code was a nightmare to read by other team members unless you had exactly the same tab settings – There can be no excuse for the use of tabs unless they convert immediately to spaces as they where original designed to do on typewriters!

    • how are tabs “not portable?”

      • Br. Bill

        Read the post. If you set tabs at 4 and I set them at 8, then you have TWO TABS for my every one for any code line that is continued from the previous line (if you’re coding for readability), and things get wonky. Seriously. Not portable.

        • Blego

          If you’re running out of horizontal space that frequently, this is the least of your problems.

          And no, you don’t have “two tabs”, you each have tabs and yours are TWICE AS LARGE on your editor. Tabs != spaces. Tabs = ANSI Tab character.

          I would rather have a uniform ONE unit indent character than an ever changing amount of spaces, for the rare event that my lines are blasting past 80 characters horizontally.

        • Br. Bill

          You (and others) continue to fail to see the issue of readability formatting. Even if the lines are not continued, if you are writing for maximum readability by another developer, you will run into this problem.
          It is not possible for me to format code here, so I cannot illustrate the problem for you. But if you are running 4-space tabs and you — for any reason — indent twice past the previous line’s indent, so that something on the two lines matches up, they will only and forever match up if everyone else uses 4-space tabs. For anyone who doesn’t, the careful formatting is useless now.
          I do not see how any experienced programmer has never seen this before.

        • Blego

          You just said what I said. My point is that this is the ONLY occurrence of things not lining up while using tabs for indentation and spaces for aligning. Everything else works no matter what tab setting people have, making it very universal. For spaces to work you MUST have the same as everyone else, making it a very isolated method.

        • Br. Bill

          Spaces are always the same size. If you set your tabbed space settings different from me, that only affects how I enter them. They still look the same no matter what anyone reads them with, unless they use proportional fonts, and that discussion isn’t even worth having.

        • Blego

          Yes your code will look the same to everyone – but not everyone can edit it from the get-go. If someone is a 2 space indenter and you’re a 4 space indenter, there’s a lot of changing to be had. There may be some software for that but then your own argument of aligning comes into play – so that must be changed as well.

          How do you edit another space indenters’ code?

          I feel like there’s a misunderstanding here, because you keep swapping the words tab and spacing and indent around. Are you saying you use the tab key on the keyboard, which then converts to a set amount of spaces via your text editor? Is that what you mean by “tabbed space settings”? And how does me changing the settings affect how you enter them?

        • Br. Bill

          Q. “How do you edit another space indenter’s code?”
          A. However they did it. Smart editors handle some of the smart indentation for me. Otherwise, I bang the spacebar a few times and everything works. My spacebar makes spaces that are the same size as everyone else’s, which I like.

          In response to your other question, yes, “tabbed space settings” is my phrase to describe the autoconversion of my tab key into spaces by my editor. My point is very much that if you have different settings than I do, it doesn’t matter a lick. The spaces will look the same in your editor as they do in mine. Very much not true of tabs.

        • Seriously, just reading the post refutes that argument. That’s a feature of tabs, not an issue. Just don’t use them for alignment, only for indentation. Let developers see your code the way THEY feel comfortable, not the way YOU want.

        • Im not sure how that applies to the term “portable”? But … The argument that your modern editor can’t detect the tab size is moot, no matter what stupidity people throw at it. Also the idea that anyone sets tabs at 8 is kinda silly. Have you really ever seen anyone do this? That’s what you call coding for readability? Two words Code Review. Also with regard to “things get wonky” the same argument applies to space indentation… I hate having to move the cursor over twice or hit delete twice (or four times for God sake!) to get to the next level of indentation, Again, most editors handle that as well, but try editing that space delimited file in notepad? Anyone who says spaces is better has to have a better argument than “they look different for every user” that’s non-sense and a TAB is an IDE setting away from always looking the same no matter where you are. Spaces? Uhm how many do you use again? Spaces are a ploy by the medical industry to give us all carpel tunnel syndrome. Pure evil my friend, pure evil.

        • Tim Locke

          > If you set tabs at 4 and I set them at 8, then you have TWO TABS for my
          every one for any code line that is continued from the previous line

          You don’t understand how tabs work.

    • antred11

      “Your position is akin to proposing that shoes only come in sizes 4, 8,
      12 and 16. And that if that doesn’t work for you, just change the size
      of your foot.”

      Huh?? There is nothing that stops you from configuring your text editor to display one tab as 3, 5, 7 or 9 spaces. It’s not tabs that limit choices, it’s spaces that do that. If you write your code with 2 spaces per indentation level then everyone viewing that code is stuck with that setting. If you had used tabs for indentation instead, everyone could view your code with the indentation width they feel comfortable with.

    • Christopher Sanders

      I used to use tabs but the code was so damn ugly and didn’t work across platforms that I had to stop and use spaces.

  • Ever wonder why the make programs to “detab” code? I have never seen one to do the reverse?  The real problem is that in my line of work, the indentation is dictated for the project by a coding standards document. Many editors allow you to define the tab points but they often revert to their default and use of another editor or printing the code or cutting a snipit to include in a document is sure to be messed up. I have terabyte HDs so no need to sweat the extra space… it prints fine, pastes into a document fine and looks the same in any editor.

    • Tim

      It’s trivially-easy to replace tabs with spaces. On the other hand, it is a pain in the ass to convert space indentation back the other way into tabs. Tabs are semantically more valuable than hard-coded spaces.

      Nevertheless the “expand/unexpand” unix commands already exist to do those conversions, so you obviously haven’t looked very hard.

  • Dale King

    Spaces are 100% portable, tabs are not. End of  discussion.

  • JW

    You’ve concentrated on some irrelevant arguments (like saving disk space, who cares these days?), but have missed some of the key advantages of tabs:

    1) Tabs reduce typing effort (Yes, editors will insert groups of spaces automatically when you press tab, but cursor movement and deletions must be done one at a time).

    2) Tabs make typing consistent – inserting/deleting/moving past an indent is always a single keypress. With spaces, one keypress creates an indent, but then you need to press delete an *indeterminate number of times* to remove the indent. That means I have to watch what I’m doing and press delete until my cursor lines up with the previous line, or (3) occurs.

    3) Tabs are indivisible. With spaces it is easy to end up on a non-tab column, and then you have either messy code or waste time tidying up the indentation. Tabs eliminate this problem by “snapping” code to the correct indentation column automatically.

    • All very good points, but I thought editors mask these issues? I thought only web editors have them, due to their inherent simplicity. I’ve always used tabs all my life so I don’t know how well editors manage to hide the fact that they’re N characters instead of one.

      • Editors try to mask these issues but poorly imo. Something catches a double space or whatever and instantly you have a mess of tabs and spaces. some editors have an auto indent feature, but the varying spaces used by developers seem to confuse it. Also along those lines, tabs can be changed to look like two spaces which voids the “I have to see everything in 80 columns” argument. I’m going to continue to use tabs, these three points alone sell it. Honestly when I look in the sources, it seems I’m the only person that cares anyway. 🙂

  • ozmosys

    Couldn’t disagree more! Why infect your source code with non-printable characters, when any self respecting IDE can reformat to suit whatever coding standard anyway (we adhere to the language’s published coding standards so this is not an issue).

  • barBill

    Agree. Setting up a tab helps to avoid fighting for space at the bar.

  • Pingback: PAYcast 39 » PAYcast()

  • Pingback: Indentation: tabs or spaces?()

  • Excellent article, thank you very much. We must try!

  • Richard Lopes

    At last someone that feels the same way I do about spaces and tabs ! I had to recently switch back to spaces but it cause me more trouble than anything. Will soon go back to tabs only for sure.

  • thumbs up Lea. I also find Tabs to be my default standard – because of:
    * selecting with keyboard is easier
    * less characters 🙂
    * “feels” materialistic and clean – also in some way – it forces these
    * can be customized with its width (any number of spaces)

  • Pingback: My Coding Style and Guidelines | @drublic()

  • Here’s my cat, Tabitha. She prefers tabs, no question about it.

  • if you work with multiple developers you soon find out that tabs in the code make the code hard to read. over the last 35 yrs of developing spaces always won.

    • antred

      If you mix both indentation styles in the same file then of course everything gets messed up and hard to read. If you use only tabs to indent (or even only spaces) then everything will be just fine.

  • Mecki

    I totally agree. Tabs are far better than spaces and most people arguing about it failed to understand the difference between indention and aligning. Tabs are for indention, spaces are for aligning, it’s that simple.

  • theMountinman

    The problem with tabs is that they aren’t characters, and very few fonts represent them consistently. If source is moved across media boundaries, tabs will INEVITABLY fuck up it’s appearance. It also confounds parsers. I NEVER have that problem with spaces. Since IDE’s can be configured to auto indent the number of spaces that is standard for your shop, using spaces isn’t laborious (I’ve never found it to be so even without auto indent).

    In my experience, the people who bitch about spaced indentation don’t care how the code looks and are simply lazy.

    The bottom line is that argument is like religion: everyone has their own view, and NO ONE is right. I don’t begrudge anyone their view as long as they don’t try to push it on me.

  • Br. Bill

    Even though I’m anti-tabs, one thing that makes my life so much better in an environment where you can’t prevent people from using whatever they want: showing tabs as visible characters. Komodo does a fantastic job with this, and display tab characters is on all the time. Super useful.

  • Nasga

    I agree with hard tabs (except about space, because no-ident style will win uppon both).

    But most languages recommends to use spaces :
    – Python with PEP8
    – Php with PSR-2
    – Node js with npm coding style.
    – Ruby with https://github.com/bbatsov/ruby-style-guide#source-code-layout

    – Many more…

    Then why keep hard tabs in codes ?
    Spaces are really easy to manage with vim and most of your arguments could be cleared by a descent vimrc…

  • AnonymousForAReason

    Another potentially valid discussion ruined by the author’s insistence on assuming anyone who disagrees didn’t read the article in the first place. Egotistical writing with a splash of superiority complex. Go on, tell me I didn’t read the article (twice). I dare you.

    • Well, if somebody replies with an “argument” that I addressed in the article, there are two obvious explanations: Either they didn’t read it, or they’re dumb. I sincerely apologize for assuming the former; judging by this comment of yours, it’s clearly the latter.

    • antred

      You’ve either not read the article, failed to understand it or you’re so set in your ways that you’ve decided not to let reason get in the way. There’s no other explanation for why you would still favor spaces over tabs for indentation. But don’t worry, 80% of all people seem to share your condition.

  • I don’t get the “alignment” argument, since that’s why the tab character was invented. You could also simply battle it by not using a space after your declaration, but a tab. Of course no one does that 😉

    I’d have to say I still prefer spaces for this reason. I find it more predictable to work with spaces, especially when stuff gets aligned like the vendor prefix example you have.

  • Brandon Frohs

    CodeMirror supports tabs (and doesn’t convert them to spaces by default… or at all, AFAIK). Perhaps you’re talking about an older version of CodeMirror? Or maybe the site/app that embeds CodeMirror is doing this? See http://codemirror.net/demo/visibletabs.html or http://codemirror.net/mode/markdown/index.html.

  • I also prefer Tabs for the same reason as explained. However, I respect others choices, so I encourage people to use .editorconfig ( http://editorconfig.org ) and you should too.

  • nateabele

    Fuckin’ nailed it. Thanks for compiling such a comprehensive list of why tabs are awesome.

  • I don’t care if you use tabs or spaces for indents.

  • I disagree 100.0% on every single point made. No offense intended, just a perfectly contrasting view 🙂

    In my opinion, the file size is completely irrelevant, personalization is actually a drawback because I can no longer ensure horizontal scrolling isn’t needed, collaboration is the same point made again (and there’s more about formatting that can get in the way than just tabs), tabs are completely tool-dependent, selection with tabs in code is a bitch (no more linear cursor movement), copy & paste still has different coding style and indentation, the web _is_ an issue regardless of obscure expert settings in selected browsers and mixing in spaces for alignment is the final nail in the coffin (try mixing tabs with spaces in Python where indentation has meaning).

    I laid out my own reasons for why nobody should ever use tabs in detail here: http://blog.nuclex-games.com/2013/02/why-you-should-indent-with-spaces/

    • Brian m

      Spot on! But everyone to their own, except on any projects I’m managing, I’ve seen tabs really messing up the the dev environment. Only saved by tab to space converter and a lot of clean up editing. Crazy to use tabs, their only consistency is their lack of it!

    • I can no longer ensure horizontal scrolling isn’t needed

      You can’t ensure that anyway, it depends more on the window and screen size than your code. Also, another developer might prefer better readability than no horizontal scrolling, why not give them the choice?

      tabs are completely tool-dependent

      If you think tabs are tool-dependent, try working with spaces in an editor with no indentation conveniences. You’ll almost certainly end up using inconsistent indentation, like 2 spaces here and 3 there. When working with spaces you depend on your editor to mask the fact that you’re using multiple characters instead of one. It even happens with proper editors, as they’re not perfect. Most code I’ve had to edit that was space-indented had this.

      copy & paste still has different coding style and indentation

      Only for those who use spaces. For those who use tabs, regardless of tab width settings, it will match their style.

      the web _is_ an issue regardless of obscure expert settings in selected browsers

      If you don’t know what something is, it’s wiser to google it up than to try to pretend you know. tab-size is not a setting in browsers, it’s a CSS property you can add to your code and it will work in every browser that supports it (practically all browsers in use today except IE).

      • > You can’t ensure that anyway,

        I can and do. Anyone who arranges his IDE to display 100 characters can view my code without any horizontal scrolling. Most monitors at typical font sizes would manage at least 200 characters, leaving enough room for panels, choice of font size, etc.

        You statement seems to associate long lines with better readability. In my view, overlong lines are the very antithesis of readable code. You have to reach for the mouse, scroll right, remember what you’ve seen, scroll back, locate where you’ve left off. Thus, breaking the line is always preferable to me.

        > You’ll almost certainly end up using inconsistent indentation, like 2 spaces here and 3 there

        I’ve been programming professionally for 15 years and I can honestly say that never happened to me nor have I ever seen any space using code where that happened. Perhaps a simple check of a few Open Source projects would be worthwhile, maybe there are cases of that happening.

        Regarding the editor “masking” spaces – from my point of view, tab are what editors have to mask and hide:

        – With spaces, when you’ve indented by 2/4/8 columns there are 2/4/8 very real spaces that aren’t masked or hidden in any way. Or are you referring to convenience features, like going back to the higher indentation level with backspace or padding new lines upon pressing return? They’re like line a rectangle drawing tools in a bitmap editor to me, I wouldn’t want to add a special color that becomes 8 pixels or something to bitmaps.

        – With tabs, you see 2/4/8 columns, but it’s only 1 real character. To achieve linear cursor movement, the editor has to act as if it was possible to move around inside the tab character (and turn it into spaces if you actually start to type inside a tab). Or alternatively, let the cursor jump over the tab causing a sudden cursor speedup that I at least greatly dislike.

        > Only for those who use spaces. For those who use tabs, regardless of tab width settings, it will match their style.

        I’m talking about copy & pasting code from another library. Chances are, it uses a different brace style, different casing, that the code was placed at a different indentation level in the first place, and so on.

        Copy & paste (as bad as it is for programmers) that takes place within the same codebase has the same indentation rules anyway, but I accept that tab users that work with different tab widths (which I consider a drawback due to the line length and alignment issues, as I’ve laid out in my post) will at least not mess up the indentation (unless they aligned with tab characters, which is likely to happen if the code had aligned lines, from my point of view).

        > If you don’t know what something is, it’s wiser to google it up than to try to pretend you know.

        No need to get personal or to assume malice.

        There was or is an obscure setting in Firefox that lets users configure the tab size, reachable via the expert settings (enter about:config in the address bar). I last used that with Firefox 3 and all I can dig out now is devtools.editor.tabsize, which doesn’t sound like it would apply to normal page display.

        I must have skipped over your mention of CSS3 and concluded that you meant aforementioned browser setting (because it was once mentioned to me by another tab advocate). For that I’m sorry.

        As far as I can see it has already made its way into Firefox, Opera and Chrome. If it eventually reaches all major browsers, it might get tabs to display just as well as spaces (though leaving the alignment issue unsolved).

      • Doug

        A developer here brought up inconsistent indenting. As long as the 2,3, or 4 spaces is consistent within the same block, I don’t care too much, that is, I still much prefer spaces over tabs.

    • crashfr0g

      You can mix tabs and spaces in Python, so long as you’re doing it in the only place where you should be doing it – using Python’s implicit line joining to prevent 200-character-long function calls. And you should still be tabbing over to the appropriate level of indent, then adding spaces to make the arguments line up.

    • 1) tab-size is not a browser setting, it’s a CSS property, so your whole counter-argument on that is utterly ridiculous and makes you look like an ignorant fool.
      2) You cannot ensure horizontal scrolling isn’t needed anyway, because you don’t know what screen and window size your code will be viewed in
      3) Tabs are not tool dependent and I’ve never seen them interpreted as “insert X spaces here” ANYWHERE. If there is some obscure app doing this, it’s a bug.
      4) The linear cursor movement thing doesn’t sound like a real problem. OCD much?

  • arcussinus

    Listen… I am aware that I am about to make a dangerous assumption, but seeing your complete devotion to this kind of discussions simply makes me wonder. If you have studdied (and finished) computer sciences at mathematics faculty and were engaged in a development of s e r i o u s software I can, with 100% certainty, claim that you would not even think about “code formatting” or “tabs vs spaces”… instead, you would be consumed by algorithm development, theory of computation, construction of predicate models and counter models… When I read source material, I really don’t give a d a m n about formatting, as long as there is a n y indentation and one instruction per line. Oh, wait, that’s what separates computer scientists from “coders”. I guess coders are needed. After all, we do require dactilography experts with an ego trip. But, just to think how a simple call to a simple program like GNU Indent… Anyway, this read was fun. I wanted to watch a movie while my better half was at her dance nigh, but I somehow ended up here 😛

    • So basically, what makes someone a computer scientist is their disregard for code formatting. Thankfully, I’ve met many great computer scientists who have passed the cocky stage of considering certain things below them and better left to the CS plebeians. You still have way to go. I hope you’re young, otherwise, there’s not much hope left.

      PS: I have a hard time wrapping my head around the idea that a real Computer Scientist (or any kind of scientist, really) would make such logical leaps and assumptions with little data, especially with “100% certainty”. LOL, good story bro.

  • I’m totally with you that tabs are superior to spaces but I’m stuck in a world where spaces are demanded and most people around me (e.g., colleagues, open source community, etc.) think that using 2 spaces for indentation is preferable and more compatible across the various mediums code can be consumed. Even if I did convince enough people that tabs were a better idea and that we should switch, we’d have to convert a huge codebase to use tabs, thus losing a lot of git blame information, and that’s not even considering all the sites out there that use the project, or legacy codebases for that matter.

    Even getting people to properly follow coding standards is difficult. As you mentioned, poorly named variables are very annoying. As is not using the standard format for inline documentation (or lack thereof), poor code style (even simple things like avoiding writing long, dense blocks of code without any whitespace to logically separate sections), and not creating reusable/abstracted code. At the end of the day, these things only truly matter in terms of readability, maintainability, and flexibility, which are important factors in their own right, but are seemingly less important than the fact it is fit for purpose (it works, is secure, performant, and so on).

  • Doug

    So, I know I can configure vim so that a tab displays 2,3, or 4 spaces. How do I configure putty so that when using grep/sed/awk, a tab expands to less than 8 spaces? This is a major annoyance of mine.

    • Doug

      In case the above comment was too subtle, let me rephrase…tabs are inferior, end of story.

  • francois


    I agree with you on the fact that tab is better for indentation than space.
    However, you can also use tabs to align, within a line: true, it takes a bit more effort than just using spaces, but I find the benefits sizeable.
    Please check out my article:


  • We hope that you find this information useful and look forward to assisting you in the future. Thank for this support.http://usb3gvn.com

  • Pingback: Tabs or spaces? I use both. | JHH's blog()

  • I am using tab because sometimes I wrote my code using non-monospace fonts like Times New Roman or Myriad Pro. If bored to death, Wingdings.

  • Matt Inglot

    Hell yes! 😀 Thanks for the great article, I am updated our coding standards at Tilted Pixel and will be citing this for why we use tabs.

  • Max

    Big thanks for the article. Tabulation it is cool. From Russia with love.

  • Jader Feijo

    Fully agree! Tabs rule!

  • Chris

    Pretty much the argument for tabs boil down to just, “You can choose your own indentation” Everything else is just stupid (Makes the file smaller by a few bytes on my 3TB hard drive, wow!)

    Except this too is really a minor point. You might have a preference but it’s not that bloody hard to change.

    The reason spaces are better is because, as you pointed out you should use spaces should be used for alignment. In theory, using tabs for indentation doesn’t screw this up, but in practice, it leads to people using tabs in their alignments. It’s just much easier to just never use tabs.

    • It’s not the 3TB hard drive only, it’s also the bandwidth when people download the file, in web dev at least. Yes, you can always minify, but most people don’t minify everything.

      Also, is your argument really that spaces are better because people are lazy?

      • Chris

        My argument is people make mistakes. The benefit of being able to change your indentation is minimal at best. The advantages of aligning your code is huge – more readable, clearer intent, reveals redundancy, more maintainable. By using tabs, you’re making a big sacrifice for minimal gain.

        Most IDEs to indent with tabs means the tab key will always insert a tab character.

        Most developers don’t use visible white space and if you want to align something which is 10 spaces away, it’s faster to hit the tab key a few times instead of hit space ten times. Doing this they don’t realize they have inserted tabs.

        By always inserting spaces you eliminate this problem completely.

        • antred

          Unless your shoe size exceeds your IQ it would be almost impossible to get confused by a concept as simple as “tabs to indent, spaces to align”.

        • Jonathan Neufeld

          I think you have nailed the fundamental problem here, well done.

          Now onto tackling network effects with our new-found wisdom.

        • Robin Munn

          And yet I see the results of such confusion all the time. In theory, theory and practice should be identical. In practice, they’re different. In theory, tabs would be ideal because they would let everyone use their preferred indentation. In practice, they cause more headaches than they’re worth, because almost everyone forgets to use them correctly.

        • Simon

          My thoughts exactly.

      • Chris

        I recently wrote up my reasons in full – https://github.com/cpmcgrath/codealignment/wiki/Tabs-&-Alignment

  • aka

    In erlang how to propertly use tabs to do this
    1.function_name_which_is_usually_quite_long(argument1, argument2, argument3,
    2. argument4, argument5, argument6) ->
    3. body.

    In spec there are also types of those arguments, which usually are longer than names itself) which makes very long indent.

    in line 3 – I understand that I should use tab, what about line 2?
    You say spaces?
    But life is not ideal – there will be somebody who forget/will be too lazy/ to do it.
    The same thing is using spaces for alignmnet – there will be somebody who will do it other.

    Second arguments – speed of editing.
    What if there will be need to add argument between 4 and 5, and 6 must go to other line. Then we can again align this by putting horrible amount of spaces. Or just use tabs, to hit less, and because editor expands them on spaces we will be quicker.

    Spaces are portable. Tabs are not.

  • jasonm23github

    > Or the ones that prefer Emacs over Vim

    Someone needs to try Evil mode in emacs.

  • Bianchi Mario

    “Tab” stands for tabulation and its real meaning was moving the cursor on a table.
    There are 2 kinds of tabs. Horizontal (t) and Vertical (v) in the ASCII table.

    Are not invented to be converted in space as you mention here

    “Assume for some reason you want to select all indents and double them or
    convert them to spaces. This is very easy with tabs, because that’s
    their sole meaning. Tabs were invented for this sort of thing.”

    neither for indentation.
    That said, could be a good alternative to space.

  • Jonathan Vitela

    “For example, coders that don’t name their variables properly. Or the ones that prefer Emacs over Vim”+1 For that!

  • tab-lolz

    Seriously, mixing tabs and spaces? Thats the answer? And they take up space? Code compile you know, or minify. Real programmers know that. Just admit it, have you ever encountered a problem reading a space indented source? Now what a about a tabs indented, how much time do you usually have to spend on “customizing” it? Insta-win for spaces.

  • Erik van der Neut

    Lea, I agree with you 100%, but I would take the “Tabs take less space” section out, as its irrelevance weakens your argument.

  • Erik van der Neut

    I don’t believe that the indentation level with spaces (e.g. 2 versus 4) can be saved on a per-project basis in Xcode. Thus, simultaneously working on projects with different spaces-indentation standards forces you to change this setting each time you switch projects. A nuisance that tab indentation would fix as well.

    • Erik van der Neut

      In the meantime I have learned that my comment above was incorrect (sort of). Xcode does allow you to specify _for each source code file individually_ how many spaces each tab should be. I learned this on a project where the majority of source files kept forcing 3 spaces instead of the 4 I had set in my Xcode settings. You can select multiple source files at once and adjust this setting (if you really wanted to do that).

  • Dave Stewart

    I can’t tell you how much I love this article. I may even put it on the back of my business cards!

  • Pingback: Convertir facilement les espaces en tabulations avec Sublime Text | feub.net()

  • Andre Z Sanchez

    I use spaces because tabs are annoying to traverse since they take more horizontal space. Spaces are more consistent with other characters. If it weren’t for that I wouldn’t mind using tabs.

    • Tim Locke

      Tabs are great because they require less energy to traverse. Who wants to press arrow keys more often?

  • Marcelo

    Tabs is all about respect others preferences and keep your code clean. I really don’t know why there are people who still uses spaces as “Standard”

  • Lutz

    Just found your blog post after I read a comment on twitter about indenting 🙂 I like your convention to use tabs for indentation and spaces for alignment (e.g. vendor prefixes in css or the var statement in js). Nice to read code style recommendations that differ from http://javascript.crockford.com/code.html :). Kudos

  • shxfee

    Use tabs if you prefers tabs. Use spaces otherwise. But don’t mix them up! Be consistent! If you want everything perfectly aligned, use only spaces. Otherwise give up some alignment and use tabs.

    • antred

      You can perfectly enforce alignment and still stick to tabs-for-indentation-spaces-for-alignment. In fact, this article explained very well how to do it. Besides, it should be obvious to anyone with at least a double-digit IQ.

  • Alpheus

    I first encountered this idea several years ago, and it made sense to me: an “indentation” is part of the code; when we use tabs for indent, we’re putting in a little bit of information about where that indentation is supposed to go…but if we convert all those tabs to spaces, then we lose that little bit of information.

    For the most part, this doesn’t matter if we’re using a curly-bracket language (or even a parenthetical language like Common Lisp); we can recover the indentation solely by bracket and syntax convention. If we’re using Python, though, and we’re using PEP 8, however, then we lose (or never put in) that information, and that’s a little sad…

    When I understood this idea–that tabs should represent indentation–I threw together a Python script, and converted all the indentation levels to tabs, and all alignment done with spaces: I made sure that a function had multi-line arguments (both in definition and in calling), and put in a couple of hairy lists. Any alignment done beyond the indentation level was filled with spaces. And then, I adjusted the tab length. Set it to 2, then 8, then 4, then (my personal favorite) 3. And the formatting remained constant the entire time!

    Every so often, I get lost in a long script; to see what’s going on with indentation, I’ll sometimes convert beginning spaces to “—|” or some other character sequence. Using tabs, however, it’s trivial to “display tabs” in most editors, and see what the indent level is, without having to convert back and forth to impromptu methods.

    I’ve always been a little saddened that I could not use this technique at any place I work. The flexibility is very nice, because while I generally like 3 spaces for indentation, there are times in which I wish I could shrink or expand the indentations, to make it easier to see what’s going on…

    It’s amusing to see the hostility to the different camps here. One the Emacs Wiki “Smart Tabs” page, there’s a cartoon where two people are saying “Spaces!”, “Tabs”…and when a third person says “both”, the first to gang up on the third. It’s funny to see the comment equivalent happen right here! 🙂

  • GBMonious

    13ish years using spaces. clicka-clicka-clicka-clicka-clicka… Never thought to use tabs and wondered why my boss’s code looked so much better (indent 8 spaces). Now that I was forced to switch to tabs, my hands no longer hurt and that tasty wide-ass indent makes my code more readable. Good for multiple body parts! I may be really late to this argument btw…

    • Yet another fool that hasn’t yet discovered the tab size setting in their editor…

  • brianm101

    This is going to run and run. Just happy I’m not picking up the tab for this as I don’t have a space in my life for them!

    The bottom line is tabs are nice, spaces are safe.

  • zajawka

    I’m a developer for more than 25 years, did stuff for Commodore 64 etc. This topic was discussed several times as hell. In my experience people that use spaces instead of sane tabs are just stupid, nothing else. That’s my statement, if you try to convince others to use spaces then you are stupid and should think about this over and over again. Tabs are for identation, spaces are for one letter space. That’s all.

    • Franklin Yu

      What if you work with stupid people, or the project may be taken over by stupid people in the future? That’s probably the case in a company. My argument: use tab for hobby project, non-profit free software (like Linux kernel); use space in company.

      • Tim Locke

        Don’t hire stupid people.

        • Franklin Yu

          I think you mean don’t get a job in a company there is any stupid people which I am not able to achieve currently. There will be stupid people in most company.

  • My thoughts on this tabs vs spaces argument:


  • bmintz

    Elastic tabstops FTW.

    • Franklin Yu

      The only problem with elastic tabstops is popularity. Only if it was born earlier.

  • Matt

    Hmm, I always used spaces and got used to it. But when I think about it, it was the messy look in the first editors I used. I will start rethinking today! 😀

  • Oh. My. Gawd. You just turned my world upside down. You have made me a believer. Tabs are obviously better. No, I’m not being sarcastic. I’m sticking with spaces, though, because I do Ruby, and Ruby always indents with 2 spaces. It’s not negotiable. But, man, now I’ll use spaces with some trepidation instead of smug confidence. I wonder if I’ll ever be happy again. :/

    • Tim Locke

      Yeah, some languages are crappy.

  • Franklin Yu

    I am totally on this side until I found the only problem: what if I want my code to always fit in 80 character width? That’s why I now switch to “space only” policy except for some case where I do not want my code to fit in certain width (LaTeX in my case).

    • Tim Locke

      Your comment strongly suggests that you use monospaced typefaces in your programming editor. Heathen!

      • Franklin Yu

        Wait, isn’t everyone using monospaced typefaces in their programming editor? Actually I don’t know of any programming editor that does not use them.

        • Tim Locke

          Perhaps by default, but most I’ve seen allow you to choose a proportional typeface. I find some of them easier on the eyes.

        • Franklin Yu

          Then how do you read some code from others assuming monospaced typefaces? Switching fonts temporarily?

          Actually my LaTeX editor is using proportional typeface, because I don’t read LaTeX code from anyone else. Among the proportional typefaces I think serif is necessary to tell small L from capital i.

  • I totally agree!

  • chrisleonard

    But … tabs, while working well for initial indentation, still suck bigger than suckage for alignment since everybody has different tab stop settings. It seems like most people who use tabs use tabs for alignment also, because that’s how their editor preferences are set up.

    Compare this with spaces, which can elegantly handle both indentation and alignment. All someone has to do to edit your code is to change the size of their spaces-per-tab setting so that they indent the same amount as the original. But you have to do the same thing if you’re using tabs because if one person displays tabs at 3 spaces and you use 4, and their code has a 3-tab indent, you can’t match it with your 4-space default tab.

    This all correlates with my anecdotal experience: about half the time I open up code written by tabbers, it looks like Picasso wrote the code after a drinking binge.

    Bottom line: no downside for using spaces. Show some love.

    • Jon Borknøyfjord

      The downside with tabs for indentation is that it looks like shit when the author does it wrong.
      The downside with spaces for indentation is that it looks like shit regardless of whether the author does it right or not. What do you think happens when you change the indentation width on a file that uses spaces for both indentation and alignment?

    • Tim Locke

      No one who prefers tabs is suggesting they be used for alignment.

  • mcepl

    I won’t fall into the trap of this pointless discussion (see also Emacs v. Vi), but let me just note that Tabs are absolutely inappropriate in communities where they are specifically not allowed. Case in the point: PEP8 disallows use of TABs, so for all Python scripts it should be spaces-only all the time.


    • antred

      PEP8 is a not a law, it’s a recommendation, and a stupid one at that. I for one will not follow recommendations that are clearly idiotic.

  • Pingback: 阅读 为什么我选择用 tab 而不是 space 来缩 进 | 麦客工场()

  • Pingback: universal - Which code indentation style is the de facto standard? - indentation()

  • Pingback: Google()

  • opus131

    Of course spaces and not tabs. kthxbye.

  • Pingback: kona coffee()

  • Pingback: dent removal schools()

  • Pingback: coffee beans()

  • Pingback: kona coffee()

  • Pingback: kona coffee()

  • Pingback: verizon small business()

  • Pingback: kona coffee()

  • Pingback: kona coffee()

  • Pingback: led light aquarium()

  • Pingback: porn()

  • Pingback: coffee beans()

  • Pingback: coffee beans()

  • Pingback: coffee beans()

  • Pingback: coffee beans()

  • Pingback: coffee beans()

  • Pingback: Google()

  • Pingback: coffee beans()

  • Pingback: royal blue html color codes()

  • Pingback: motorcycle service in Jacksonville fl()

  • Pingback: cargo van shelving()

  • Pingback: Pop Up Banners()

  • Pingback: have a peek at this site()

  • Pingback: school for dent repair class course()

  • Pingback: Apparel and Footwear()

  • Pingback: kemal facebook()

  • Pingback: bbw porn videos()

  • Pingback: 폰섹()

  • Pingback: sohbet hatları()

  • Pingback: trechos de filmes para retrospectiva infantil()

  • Pingback: мъжки тениски()

  • Pingback: great hotels()

  • Pingback: work from home ideas()

  • Pingback: clothing store()

  • Pingback: Movies Drama()

  • Pingback: bad judge hawaii()

  • Pingback: West Album()

  • Pingback: john barban chest workout()

  • Pingback: t20 world cup live score()

  • Pingback: boom lift rental Miami()

  • Pingback: garmin tracker()

  • Mark S

    So much people actually share the same “sane” principles of how proper indentation should look like in the 21st century. But FIG somehow could still just force the world to adapt to the inferior space indentation. Sad story indeed.
    Anyway, whoever wants to join in: Use PSR2R: https://github.com/php-fig-rectified/fig-rectified-standards
    I wrote a sniffer for it: https://github.com/php-fig-rectified/psr2r-sniffer It is already way more powerful than any of those rulesets out there. Try it, help to improve it, spread the word!

  • Pingback: Buy Facebook Likes for fan page()

  • Pingback: Apple deals()

  • Pingback: hualalai estate coffee()

  • Pingback: Opciones Binarias()

  • Pingback: doral()

  • Pingback: chanel brille()

  • Pingback: automotive education()

  • Pingback: site()

  • Pingback: pdr training()

  • Pingback: seo services company()

  • Pingback: this content()

  • Pingback: slinky lingerie()

  • Pingback: Latest gadget news()

  • Pingback: read()

  • Pingback: Car GPS Tracker()

  • Pingback: Luxury Watch Exchange()

  • Pingback: Wristwatches()

  • Pingback: Watch Auctions()

  • Pingback: play free slots games()

  • Pingback: look at this web-site()

  • Pingback: fishing paddle board()

  • Pingback: buy 5000 facebook likes()

  • Pingback: pdr training course()

  • Pingback: AG Dental plus Thailand()

  • Pingback: how to do background check()

  • Pingback: woodworkers store()

  • Pingback: custom logo grommet()

  • Pingback: customized logo rivet()

  • Pingback: ring snaps()

  • Pingback: jeans button()

  • Pingback: bespoke order snaps()

  • Pingback: pearl snaps for babies()

  • Pingback: gripper snap fastener tool()

  • Pingback: colored snaps baby clothes()

  • Pingback: race car quick change gears()

  • Pingback: convert youtube to mp3 high quality()

  • Pingback: donate your car to charity()

  • Pingback: find a local dentist()

  • Pingback: Buy Followers Facebook()

  • Pingback: During Production Inspection(DUPRO)()

  • Pingback: bantningspiller()

  • Pingback: Portable Counter()

  • Pingback: Banner Stand Supplier()

  • Pingback: Demonstration Counter()

  • Pingback: Shell Scheme Graphics()

  • Pingback: Top Bluetooth speakers()

  • Pingback: plantas purificadoras()

  • Pingback: buy facebook page likes cheap()

  • Pingback: filme noi()

  • Pingback: top news of world()

  • Pingback: check my source()

  • Pingback: homegoods()

  • Pingback: kona coffee()

  • Pingback: kona coffee()

  • Pingback: kona coffee()

  • Pingback: kona coffee()

  • Pingback: biaxin()

  • Pingback: Homepage()

  • Pingback: cool woodworking projects()

  • Pingback: kona coffee()

  • Pingback: 폰섹()

  • Pingback: insta likes()

  • Pingback: How to promote business on facebook()

  • Pingback: Buy and sell classifieds()

  • Pingback: free music downloads at Miraclepianist.com/free-music-downloads-mp3()

  • Pingback: how to make money()

  • Pingback: canlı sohbet hattı()

  • Pingback: options strategy()

  • Pingback: kumpulan lagu terpopuler terupdate()

  • Pingback: blotter art()

  • Pingback: elektronik sigara()

  • Pingback: pdr training()

  • Pingback: dent tools()

  • Pingback: Headphones()

  • Pingback: geodesic dome kit()

  • Pingback: Full Article()

  • Pingback: gourmet coffee()

  • Pingback: 출장마사지()

  • Pingback: rimless glasses()

  • Pingback: KASINO LIVE Indonesia()

  • Pingback: filme hd online()

  • Pingback: daily fantasy rankings()

  • Pingback: orologi da polso in legno()

  • Pingback: babagroup.it()

  • Pingback: プラセンタ()

  • Pingback: プラセンタ注射()

  • Pingback: electronic components()

  • Pingback: limousine()

  • Pingback: visit this site right here()

  • Pingback: purificadoras de agua()

  • Pingback: hop over to here()

  • Pingback: plantas purificadoras()

  • Pingback: Click This Link()

  • Pingback: try here()

  • Pingback: her explanation()

  • Pingback: 7 piece patio set()

  • Pingback: see page()

  • Pingback: read what he said()

  • Pingback: visite site()

  • Pingback: corso web marketing()

  • Pingback: Jueza Berdión de Crudo()

  • Pingback: colored pill binder()

  • Pingback: aeroponics tower garden systems()

  • Pingback: hawaiian beans()

  • Pingback: natural health()

  • Pingback: classic kona coffee single-serve()

  • Pingback: kauai-coffee/coconut-caramel-crunch-coffee-kauai-12-single-serve()

  • Pingback: mac nut coffee kcups()

  • Pingback: sansei french coffee()

  • Pingback: kona coffee()

  • Pingback: Muslim Art()

  • Pingback: ground coffee()

  • Pingback: Pittsburgh Web Design Firm()

  • Pingback: hawaiian-isles-coffee/chocolate-macadamia-nut-coffee-ground-10-oz()

  • Pingback: ??? ??????()

  • Pingback: hawaiian-isles-coffee/100-pure-kona-coast-coffee-ground-7-oz()

  • Pingback: coffee beans()

  • Pingback: acheter des likes()

  • Pingback: ground coffee()

  • Pingback: party tents()

  • Pingback: keyword Uber Promotion()

  • Pingback: spiro michals attorney()

  • Pingback: iptv()

  • Pingback: best work from home companies()

  • Pingback: Miami, Ohio()

  • Pingback: goldenseal extract()

  • Pingback: butt plugs()

  • Pingback: look what i found()

  • Pingback: kona coffee()

  • Pingback: click resources()

  • Pingback: The MLS Listings()

  • Pingback: kona coffee()

  • Pingback: free apps for android()

  • Pingback: compact sleeping bag()

  • Pingback: Family lawyer()

  • Pingback: how to build an app()

  • Pingback: Miniclip.com()

  • Pingback: The MLS Homes For Sale()

  • Pingback: make your own app()

  • Pingback: perusahaan anti rayap()

  • Pingback: backlinks()

  • Pingback: kwatery nad morzem()

  • Pingback: free slots no download or registration()

  • Pingback: More hints()

  • Pingback: urgent dental()

  • Oliver Baum

    Is there such thing as a special “Entab…” button in any text editor that will only convert spaces used for indentation to tabs and keep spaces used for alignment instead of converting with the rest?

    • Yeah this is one thing where editors fall down somewhat. Webstorm for me nicely aligns all my code, but then all the linters fire off saying I’ve got mixed tabs and spaces *sigh*.

    • Franklin Yu

      Are you looking for smart tab?

  • Pingback: Compacting()

  • Pingback: new movies()

  • Pingback: hd wallpapers()

  • Pingback: rialudi()

  • Pingback: international news online()

  • Pingback: acheter followers twitter()

  • Pingback: знакомства с Украинскими девушками()

  • Pingback: zootopia 2016()

  • Pingback: film online 2016 free ua ru kz()

  • Pingback: acheter des likes facebook()

  • Pingback: undiscovered talents()

  • Pingback: Дивергент, глава 3: За стеной / Allegiant, Высотка / High-Rise,()

  • Pingback: earn money from home()

  • Pingback: gem residences floor plan()

  • Pingback: agence web montpellier()

  • Pingback: acheter des fans()

  • Pingback: try here()

  • Pingback: hawaiian coffee()

  • Pingback: kona coffee()

  • Pingback: kona coffee()

  • Pingback: coffee beans()

  • Pingback: coffee beans()

  • Pingback: Denver web designer()

  • Pingback: container homes()

  • Pingback: micro gps tracker()

  • Pingback: лучшие фильмы 2016 2016 года список новые фильмы()

  • Pingback: girne üniversite()

  • Pingback: gourmet coffee()

  • Pingback: kona coffee()

  • Pingback: kona coffee beans()

  • Pingback: farmers choice kona coffee()

  • Pingback: ground kona coffee()

  • Pingback: kona coffee k cups()

  • Pingback: earn money online()

  • Pingback: hualalai coffee()

  • Pingback: royal kona coffee()

  • Pingback: royal kona coffee()

  • Pingback: kona coffee()

  • Pingback: kona coffee()

  • Pingback: kona coffee()

  • Pingback: http://aftonbladet.se()

  • Pingback: kona coffee()

  • Pingback: Sell used hard drives()

  • Pingback: Florida Judgment Collection()

  • Pingback: Chicago Waste Management()

  • Pingback: Steel Mold for cement tile()

  • Pingback: лучшие фильмы года 2016()

  • Pingback: http://expressen.se()

  • Pingback: jykfqy abkmvs cvjnhtnm ,tp htubcnhfwbb()

  • Pingback: Garantiedividende()

  • Pingback: Strom()

  • Pingback: Colored Pill Binder()

  • Pingback: cheap huawei p9()

  • Pingback: lima()

  • Pingback: mypsychicadvice.com()

  • Pingback: http://gp.se()

  • Pingback: Free Train Games()

  • Pingback: Credit repair solutions()

  • Pingback: Free Alien?Games()

  • Pingback: Tarot()

  • Pingback: iPhone Wallpapers()

  • Pingback: coffee()

  • Pingback: http://www.coffeefromkona.com()

  • Pingback: http://www.konacoffeeinc.com()

  • Pingback: Find Out More()

  • Pingback: fuck google()

  • Pingback: fuck google()

  • Pingback: Ruksis780()

  • Pingback: fuck google()

  • Pingback: fuck google()

  • Pingback: fuck google()

  • Pingback: fuck google()

  • Pingback: http://vlt.se/()

  • Pingback: fuck google()

  • Pingback: porno izle()

  • Pingback: fuck google()

  • Pingback: fake taxi()

  • Pingback: porno izle()

  • Pingback: porno izle()

  • Pingback: 他媽的谷歌()

  • Pingback: 他妈的谷歌()

  • Pingback: http://imdb.com()

  • Pingback: porno()

  • Pingback: mobil porn()

  • Pingback: porno()

  • Pingback: floor lamination()

  • Pingback: Metering pumps for plastic industry()

  • Pingback: 他妈的谷歌()

  • Pingback: 他妈的谷歌()

  • Pingback: car detail san diego()

  • Pingback: Android()

  • Pingback: coffee from kona()

  • Pingback: more()

  • Pingback: 他妈的谷歌()

  • Pingback: 他妈的谷歌()

  • Pingback: 手錶手機色情()

  • Pingback: myprotein()

  • Guest mcfarlane

    The episode of HBO’s Silicone Valley that just played used this webpage for a concept and for lot of the dialogue surrounding that concept. They even added in the “emacs over vim” comment. Crazy.

    • Tim Locke

      I think most of the silicone is south of Silicon Valley.

  • Pingback: لایسنس ویندوز سرور()

  • Pingback: peaberry coffee()

  • Pingback: film()

  • Pingback: check my blog()

  • Pingback: 我他媽的谷歌()

  • Pingback: Web Wealth System Scam()

  • Pingback: my company()

  • Pingback: check my blog()

  • Pingback: agen shobet()

  • Pingback: mls homes()

  • Pingback: ukraine girl kiev lviv()

  • Pingback: beylikdüzü escort()

  • Pingback: Fire Sale()

  • Pingback: ukraine girl kiev lviv 2016()

  • Pingback: how to make money()

  • Pingback: beylikdüzü escort()

  • Pingback: beylikdüzü escort()

  • Pingback: beylikdüzü escort()

  • Pingback: beylikdüzü escort()

  • Pingback: helou zis me()

  • Pingback: helou zis me()

  • Pingback: Web developers in new york()

  • Pingback: clic here()

  • Pingback: smartphone repair()

  • Pingback: pop over to these guys()

  • Pingback: Google()

  • Pingback: investigate this site()

  • Pingback: go to my blog()

  • Pingback: free slot games with bonus rounds()

  • Pingback: fukuidatumou()

  • Pingback: fukuidatumou()

  • Pingback: greek iptv()

  • Pingback: 他妈的谷歌()

  • Pingback: 色情管()

  • Pingback: clic()

  • Pingback: IM 体育()

  • Pingback: gourmet-hawaiian-coffee()

  • Pingback: www.best-coffee-inc.com()

  • Pingback: Google()

  • Pingback: beylikdüzü escort()

  • Pingback: www.coffee-beans-inc.com()

  • Pingback: my review here()

  • Pingback: saltwater fish()

  • Pingback: elder care richmond va()

  • Pingback: program indir()

  • Pingback: hop over to this website()

  • Pingback: e cig juice()

  • Pingback: SEO Norway()

  • Pingback: www.escortsinorlando.com()

  • Pingback: Buy Instagram Likes()

  • Pingback: indir ücretsiz()

  • Pingback: multilingual seo()

  • Pingback: http kmakehitz com()

  • Pingback: earning money()

  • Pingback: the beats store()

  • Pingback: 他妈的谷歌()

  • Pingback: عروض الموبايلات()

  • Pingback: hawaiian coffee company()

  • Pingback: gourmet coffee()

  • Pingback: hawaiian kona coffee()

  • Pingback: wholesale jackets()

  • Pingback: descargar programs()

  • Pingback: kitchen()

  • Pingback: descargar programs()

  • Pingback: illuziaobmana()

  • Pingback: Fidelity exams()

  • Pingback: earn money from home()

  • Pingback: free app maker()

  • Pingback: stainless steel coffee cup()

  • Pingback: beylikdüzü escort()

  • Pingback: IPhone screen repair 32127()

  • Pingback: Coquitlam condo()

  • Pingback: matures porn videos()

  • Pingback: Tablet Binder()

  • Pingback: interracial porn videos()

  • Pingback: Commercial Bakery Service()

  • Pingback: wildlife removal()

  • Pingback: izmir escort()

  • Pingback: Handyreparatur Bremen()

  • Pingback: zip lookup()

  • Pingback: escort kadıköy()

  • Pingback: HDKINOONLINE()

  • Pingback: fakir selim()

  • Pingback: 色情()

  • Pingback: Firmenaktien()

  • Pingback: Bayern()

  • Pingback: Soft Tip Darts()

  • Pingback: Boat Transport()

  • Pingback: Sac papier luxe()

  • Pingback: 7 color shower()

  • Pingback: porno izle()

  • Pingback: Queen Hair Company()

  • Pingback: farms for sale()

  • Pingback: anani siktim()

  • Pingback: anani siktim()

  • Pingback: why not try these out()

  • Pingback: CV()

  • Pingback: for sale by owner()

  • Pingback: find a boyfriend()

  • Pingback: brazzers porno()

  • Pingback: porno izle()

  • Pingback: fire pit table()

  • Pingback: Impacted Canines Ormond beach()

  • Pingback: refrigerated containers()

  • Pingback: Used cars()

  • Pingback: 他妈的谷歌()

  • Pingback: 牛混蛋()

  • Pingback: 黃牛()

  • Pingback: fotografía publicitaria()

  • Pingback: digital nomad job()

  • Pingback: Star Trek()

  • Pingback: supplies()

  • Pingback: Politics()

  • Pingback: vacation()

  • Pingback: friv()

  • Pingback: mattress for side sleepers()

  • Pingback: porn video tube, hard porn, streaming porn, hq porn()

  • Pingback: hqporn2016()

  • Pingback: mountain coffee classics()

  • Pingback: viagra pills()

  • Pingback: legitimate work from home jobs()

  • Pingback: tower garden companies()

  • Pingback: Piece Of Heaven()

  • Pingback: Лучшие фильмы()

  • Pingback: pornocu pic()

  • Pingback: Лучшие фильмы2()

  • Pingback: ТелефоновСамсунг2016()

  • Pingback: hot videos()

  • Pingback: finance()

  • Pingback: Precious Metals()

  • Pingback: siktir git()

  • Pingback: como instalar complementos en kodi()

  • Pingback: sunnyleone()

  • Pingback: sunnyleonelatest()

  • Pingback: toilehtml()

  • Pingback: tubepatrolporn()

  • Pingback: sikerler()

  • Pingback: Taxi Airport Innsbruck St. Anton()

  • Pingback: 오나홀릭()

  • Pingback: online virtual number buy for verification()

  • Pingback: Jaydani()

  • Pingback: embroidery thread()

  • Pingback: BSM20GP60()

  • Pingback: Ugoos UT4()

  • Pingback: life insurance lawyer()

  • Pingback: London ballet()

  • Pingback: how to make money()

  • Pingback: tampa bay magazine()

  • Pingback: افلام جديدة()

  • Pingback: oakley shop()

  • Pingback: rechargeable flashlight()

  • Pingback: virtual card online shopping()

  • Pingback: free virtual number()

  • Pingback: matka()

  • Pingback: Fenster()

  • Pingback: 可憐的私生()

  • Pingback: picccc()

  • Pingback: skypepsyxologmoskvakiev()

  • Pingback: gourmet kona coffee()

  • Pingback: silicone containers()

  • Pingback: Detention()

  • Pingback: jouer de la guitare()

  • Pingback: pittsburgh web design()

  • Pingback: gourmet hawaiian coffee()

  • Pingback: gourmet hawaiian coffee()

  • Pingback: gourmet hawaiian coffee()

  • Pingback: gourmet hawaiian coffee()

  • Pingback: custom paint()

  • Howard Pepper

    You expressed my exact thoughts on this. I despise using spaces for indentation, and trying to “fix” Vim to indent my Python code with tabs instead of spaces is driving me bonkers! I’m fed up, and am seriously contemplating jumping ship to a more sane editor, at least for Python.

  • Pingback: Home Automation Florida()

  • Pingback: viagra()

  • Pingback: saleforiphone()

  • Pingback: Home Security()

  • Season 3 of the awesome sitcom “Silicon Valley” actually focuses an episode on the “tabs vs spaces” issue (episode 6, “Bachmanity Insanity”).

    Personally, I prefer spaces to tabs, mostly because (1) the default tab with is different for different editors and (2) not all editors allow tab width to be configured.

    Copy-pasting tab-indented code between Netbeans, Gedit, JSFiddle, Stack Overflow, … easily becomes pretty annoying, especially considering (AFAIK) you can’t configure the tab settings of either JSFiddle and Stack Overflow, which both are different.

    StackOverflow is particularly nasty in inconsistently using 4 spaces in its traditional markup editor and 8 spaces for its more recent Stack Snippets. In StackOverflow, changing tab-indented code from one format to the other requires consistent editing of the indentation. Editing legacy code that mixes tab-indented and space-indented becomes a nightmare as I illustrate @ http://meta.stackoverflow.com/questions/319377/inconsistency-of-indentation-of-tabs-between-markup-editor-code-samples-and-st.

    Consistently using the same number of spaces (I prefer 4) across different code-bases prevents issues like this. And why the f*** would I want people to personalize the indentation of my code anyway? I fail to see why we should allow everyone to use their own indentation standards, when we try to standardize almost everything else…

    • I agree with your sentiments around SO and different editors; but that is an issue for the editor to address. I’m simply going to avoid using tools which don’t allow me to configure how I like to view my code.

      Push comes to shove, I’ll open DevTools and set the tab-size CSS property. It’s not that hard.

      You argue that we should standardise indentation – yet, if tabs were the standard, then everyone could view their code with the indentation they prefer: 2/3/4/17 whatever.

      I want a consistent experience across the editors I use, and not be forced to use 2 spaces just because the original author had their preferences that way.

  • Pingback: education()

  • Pingback: poweful taweez for love()

  • Pingback: http://www.pinui-dira.co.il/()

  • Pingback: more info()

  • Pingback: details()

  • Pingback: baltic siker()

  • Pingback: baltic sikerr()

  • Pingback: baltic siker oç()

  • Pingback: Sexy buttons()

  • Pingback: baltic siker o.ç()

  • Pingback: Cheap Printed Legging Online()

  • Pingback: live auction info()


  • Pingback: vispoets.com()

  • Pingback: ski resorts()

  • Pingback: how to make money on the internet()

  • Pingback: регистрация ооо в Киеве()

  • Pingback: Photography()

  • Pingback: mypsychicadvice()

  • Pingback: funny pictures()

  • Pingback: black magic()

  • Pingback: 注管理システム()

  • Pingback: kala jadu()

  • Pingback: home decor()

  • Pingback: Latex Inks distributor()

  • Pingback: skin beauty()

  • Pingback: satta matka()

  • Pingback: SATTA MATKA()

  • Pingback: panel doors()

  • Pingback: East Hartford Taxes()

  • Pingback: woodworking machinery()

  • Pingback: Download PC Games()

  • Pingback: Play games online()

  • Pingback: questa pagina()

  • Pingback: http://www.autoprotectionoptions.com/autoprotection-homepage()

  • Pingback: consultant()

  • Pingback: tablet repair()

  • Pingback: SEO services in Lahore()

  • Pingback: More information()

  • Pingback: more information()

  • Pingback: download()

  • Pingback: SEO services in Lahore()

  • Pingback: Download PC Games()

  • Pingback: Free download pc games()

  • Pingback: Mens Divorce Law Firm()

  • Pingback: satta matka()

  • Pingback: robert()

  • Pingback: how to fix garage door()

  • Pingback: visit site()

  • Pingback: hawaii volcano lava rock()

  • Pingback: retirement benefits cut by congress()

  • Pingback: light deprivation greenhouse()

  • Pingback: fuck googlee()

  • Pingback: Our Work-AtlantaPiano()

  • Pingback: Pinganillo()

  • Pingback: áîëüøå èíôîðìàöèè()

  • Pingback: kinoklub()

  • Pingback: Videos for The Miracle Pianist()

  • Pingback: SEO services in Lahore()

  • Pingback: T-Shirts bedrucken lassen()

  • Pingback: paper fans()

  • Pingback: cork coasters()

  • Pingback: JUAL Pompa Air Tenaga Surya paket lengkap LORENTZ()

  • Pingback: Wood fired pizza oven Pizza Party()

  • Pingback: Denver office space()

  • Pingback: injection diet()

  • Pingback: Cash for car melbourne()

  • Pingback: more()

  • Pingback: Business reading()

  • Pingback: Visit Website()

  • Pingback: drama2016()

  • Pingback: Fenster und Turen()

  • Pingback: jpmsruvideotoppornovideo()

  • Pingback: seniorcare()

  • Pingback: International Divorce()

  • Pingback: book of ra online free game()

  • Pingback: anabolic stack()

  • Pingback: BALL VALVE manufacturer()

  • Pingback: health benefits of cinnamon()

  • Pingback: online istikhara()

  • Pingback: Computer Repairs NJ()

  • Pingback: Best Companies()

  • Pingback: retouche()

  • Pingback: jpmsru()

  • Pingback: top2017bloomingme()

  • Pingback: edm filter()

  • Pingback: pullulan()

  • Pingback: プラセンタ()

  • Pingback: プラセンタ()

  • Pingback: プラセンタ()

  • Pingback: email processing system()

  • Spaccccessssss 🙂

  • Pingback: tv()

  • Pingback: rebel t3()

  • Pingback: aposta online()

  • Pingback: インフルエンザ()

  • Pingback: インフルエンザ()

  • Pingback: this content()

  • Pingback: mir.dikogo.zapada.ceria.sezon()

  • Pingback: aisti.online.smotret.aisti.mult()

  • Pingback: doktor.strendj.online.kino.()

  • Pingback: UPS()

  • Pingback: free online chat rooms without regestration()

  • Pingback: what does the brain do()

  • Pingback: how does the human brain work()

  • Pingback: personalised wedding shot glasses()

  • Pingback: wooden phone case()

  • Pingback: UPC Shop Innsbruck Hall()

  • Pingback: lanka hot news()

  • Pingback: Egyptian cotton towels()

  • tillie arend

    Great Article. Thanks for the info, super helpful.

  • Pingback: recycling near me()

  • Pingback: dspace;()

  • Cédric Ronvel

    The funny thing: if one day the space-people win, it will not stop the indentation holy war… … … because space-people would immediately split in two factions: 2-spaces and 4-spaces indentation :)))

    Stop the war now. Use tabs.

    • brianm101

      Stop the war now – uses spaces…..
      Tabs are just something you use at a pub or restaurant!
      To prove the point you can’t use tabs to reply to this comment only spaces 🙂

      • Cédric Ronvel

        Wow, someone totally miss the point of my comment… Using spaces wont stop the war.

        • brianm101

          Actually number of spaces doesn’t matter as the layout will always be as the author intended (which is the problem with tabs) – So Stop the war use spaces, however many 🙂

        • Why should the layout be as the author intended? The author might like 2 spaces, and I like 4 spaces.

          With tabs, we can both enjoy our gap preferences and work harmoniously.

          It also means that for certain tabbed files which are deeply nested, I can view them as “2 spaces” if I need to take up less screen space.

        • Cédric Ronvel

          I quote you: “as the “author intended”. The author. Singular. Obviously there is no problem when there is only one author… and no audience, since you want to force your prefs on it.

        • brianm101

          If its a team environment there should be standards anyway irrespective of spaces of tabs. Anything else is a bad idea!
          If downloading source for your own use then do as you feel fit!

        • Cédric Ronvel

          Sigh. This looks like a never ending argument. Ah… the internet!

        • brianm101

          True – its rather nice, been going on for years and I view it as a sort of a link to my (misspent ?) youth and my first post on this article. Bringing up the kids to believe in spaces so they can do the right thing when I’ve gone to the great coding desk in the sky 🙂

  • Pingback: este formulario de contacto()

  • Pingback: car cleaning()

  • Pingback: porn()

  • Pingback: oruspu çocuğu()

  • Pingback: rohm triple x()

  • Pingback: Garments manufacturer()

  • Pingback: Something Better Came Along Tabs Software | Supreme Tablet Deals()

  • Pingback: IT Support()

  • Pingback: scam website()

  • Pingback: Vibrating Finger()

  • Pingback: discount sex toys()

  • Pingback: anal vibrator()

  • Pingback: anal toys()

  • Pingback: anal beads()

  • Pingback: What Are()

  • Pingback: Happy()

  • Pingback: The Way To Happiness()

  • Pingback: Diy Home Energy System Review()

  • Pingback: Flat Belly Fast DVD Review()

  • Pingback: http://drjaydani.com/()

  • Pingback: lightning()

  • Pingback: cut resistant gloves()

  • Pingback: cat food()

  • Pingback: cat food()

  • Pingback: best g spot sex toy()

  • Pingback: Personality Test()

  • Pingback: Online Personality Test FREE()

  • Pingback: new york times bestseller list()

  • Pingback: ebooks free()

  • Pingback: What is Scientology()

  • Pingback: full software download for windows 7()

  • Pingback: aishwarya rai sex story()

  • Pingback: Las Vegas Hair Loss Treatment()

  • Pingback: tamil sex story()

  • Pingback: Servicio de Despachadores()

  • Pingback: Cleanse detox()

  • Pingback: mesothelioma law firm()

  • Pingback: How to clean your system()

  • Pingback: love quote()

  • Pingback: TAXI DUBROVNIK()

  • Pingback: manage dedicated server()

  • Pingback: full software download for windows 10()

  • Pingback: fuck google()

  • Pingback: Toned In Ten Review()

  • Pingback: 10 Minute Fat Loss Review()

  • Pingback: legit work from home jobs no fees()

  • Pingback: wordpress hosting()

  • Pingback: Commercial Gutter Cleaning()

  • Pingback: Online travel agent()

  • Pingback: Most items $ 0.1()


    Good article, Thanks!

  • Pingback: stalik()

  • Pingback: trumpnews()

  • Pingback: Starwood Hotels()

  • Pingback: ananızı sikeceğiz()

  • Pingback: Pet Friendly Hotels()

  • Pingback: molodezhka4seria()

  • Pingback: love quote()

  • Pingback: cloud ibox 2()

  • Pingback: Belladonna Pocket Stroker()

  • Kaiserludi

    “I admit the world has much bigger problems than coders who use spaces for indentation.”
    Sorry, but this is just wrong.

  • Pingback: molodejka()

  • Pingback: best mens sex toys()

  • Pingback: molodezhka4sezon17seriya18192()

  • Pingback: penispump()

  • Pingback: Radio Jahan()

  • Pingback: free download for windows 8()

  • Pingback: ananızı sikeceğiz()

  • Pingback: ananızı sikeceğiz()

  • Pingback: Free personality test()

  • Pingback: ananızı sikeceğiz()

  • Pingback: Myers briggs personality test()

  • Pingback: How does the mind work()

  • Pingback: silicone bunny vibrator()

  • Pingback: Thrusting Rabbit Vibrator Review()

  • Pingback: programas descargar para windows 8()

  • Pingback: nipple clips()

  • Pingback: Aberdeen Web Design()

  • Pingback: インフルエンザ()

  • Pingback: M3U()

  • Pingback: Letras de canciones()

  • Pingback: pc games free download for windows 8()

  • Pingback: Buy Seals Online()

  • Pingback: portable electronics()

  • Pingback: uk penny auctions()

  • Pingback: play online slots()

  • Pingback: European River Cruises()

  • Pingback: pc games free download for mac()

  • Pingback: IPVPN in Saudi arabia()

  • Pingback: Drugs()

  • Pingback: molodejka4sezon21s()

  • Pingback: picture for genital herpes()

  • Pingback: link2016()

  • Pingback: xml18112016()

  • Pingback: xml181120167()

  • Pingback: Trenda Media()

  • Pingback: Vibrators()

  • Pingback: molodezhka4sezon212223seriya()

  • Pingback: extra income()

  • Pingback: molodejka4sezon21seria21seria22seria23()

  • Pingback: download android games()

  • Pingback: free android games()

  • Pingback: istanbul escort()

  • Pingback: ananızı sikeceğiz()

  • Pingback: ananı sikeceğiz cem()

  • Pingback: siktir git()

  • Pingback: adam and eve pocket pussy()

  • Pingback: adam and eve()

  • perryprog

    3 things

    1. Spaces are better than tabs
    2. Emacs is better than Vim (I <3 Evil mode)
    3. Your websites certificate expired about a few hours before I read this.

    P.S. This is mostly a joke

    • Franklin Yu

      Didn’t realise that this site can be served over HTTPS until I read this. (Why no HSTS? Because of mixed content?)

      • Because I don’t have the time to ensure everything works, so https is kind of in beta right now. Also the friend that did my server config has kind of disappeared right now >:(

  • Pingback: zombie steroids porn()

  • Pingback: dragon ball z game for pc()

  • Pingback: free pc 3d games download full version()

  • Pingback: izmir eskort()

  • Pingback: Sexy Pirate Outfit()

  • Pingback: kala jadoo()

  • Pingback: kala jadu()

  • Pingback: shingles and herpes difference()

  • Pingback: molodejka4seria25()

  • Pingback: Buy Email Lists Australia()

  • Pingback: entertaiment news()

  • Pingback: Couples Dildo()

  • Pingback: G-Spot Vibrator()

  • Pingback: slot machine gallina gratis()

  • Pingback: nighties()

  • Pingback: lastssadsafdsa()

  • Pingback: vostro batteries()

  • Pingback: Молодежка4сезон25серия26серия()

  • Pingback: mdansby software()

  • Pingback: casual games for android()

  • Pingback: laptop games()

  • Pingback: work from home job 2017()

  • Pingback: telecommuting jobs()

  • Pingback: Bullet Vibrator()

  • Pingback: paintless dent removal training()

  • Pingback: pc games free download full version for windows xp()

  • Pingback: pc games free download for windows xp()

  • Pingback: pc games free download for windows 8()

  • Pingback: 福井歯医者()

  • Pingback: 福井歯医者()

  • Pingback: 福井歯医者()

  • Pingback: בגדי הריון()

  • Pingback: barrie movers.ca()

  • Pingback: free pc games download full version for windows 8()

  • Pingback: star png()

  • Pingback: free pc games download full version for windows 10()

  • Pingback: Mercedes-Benz()

  • Pingback: love spell caster()

  • Pingback: pic()

  • Pingback: Sunray 800 HD SE()

  • Pingback: life insurance information()

  • Pingback: G-Spot Vibrator()

  • Pingback: pc games free download full version for windows xp()

  • Pingback: windows games free download()

  • Pingback: dadafdf3ddafdsa()

  • Pingback: dadafdf3ddafdsa()

  • Pingback: Marbella clubs()

  • Pingback: kala jadoo()

  • Pingback: prehistorian()

  • Pingback: php video cms()

  • Pingback: Vibrators Women()

  • Pingback: G Spot Vibrators()

  • Pingback: Pips Wizard Pro Review()

  • Pingback: pc games free download full version for windows 10()

  • Pingback: pc games free download full version for windows 7()

  • Pingback: flex vibrator’s bendabl()

  • Pingback: Adam's Extension()

  • Pingback: moving company houston()

  • Pingback: aracade games for windows 7()

  • Pingback: pc games free download full version for windows 8()

  • Pingback: Self Divorce()

  • Pingback: reiki tucson()

  • Pingback: Childwall()

  • Pingback: Self Divorce()

  • Pingback: classic coffee()

  • Pingback: social network chat()

  • Pingback: wholesale xiaomi phone()

  • Pingback: stay at home mom jobs()

  • Pingback: cialis()

  • Pingback: tactical boots for law enforcement()

  • Pingback: SEO services in lahore()


  • Pingback: g-spot orgasm()

  • Pingback: vibrating anal beads()

  • Pingback: anal for beginners()

  • Pingback: Surplus()

  • Pingback: pc games free download for windows 7()

  • Pingback: 1850 Access Point()

  • Pingback: Looking for a business()

  • Pingback: cheap jordan()

  • Pingback: trends()

  • Pingback: Extreme vibrator()

  • Pingback: Silicone G Spot Vibrator()

  • Pingback: Glass Dildo()

  • Pingback: Water Based Lube()

  • Pingback: free download for windows 7()

  • Pingback: free download for windows xp()

  • Pingback: finger massager()

  • mindpower

    Tabs lost the war. You can’t use tabs to make something like this look as tidy:

    config = {
    host: {
    ip: # no place like home
    port: 666 # scary

    • Maybe actually read the post before you spew ignorance in the comments section?

      • mindpower

        I read it. Maybe don’t spew baseless accusations 😛

        • If you read it, then you have comprehension issues. Did you not see that what I’m proposing is spaces for alignment and tabs for indentation?

        • mindpower

          I did, but that solution doesn’t work for the example I gave.

        • It works just fine. Fork this gist and change the tab size in the editor, and you’ll see it too: https://gist.github.com/LeaVerou/942cf5d8ba6ad68d7da3825686d1b867

        • mindpower

          Ok, bad example, what about this:

          function show_example() # you may not agree with the code style
          this_is_an_example = “of how tabs mess up ” # but at least spaces render it the
          + “indentation” # same for everyone

        • Only the first line is actually a problem there, and it seems like a fairly edge case. I’ve been using smart tabs for years, never ran across this. The benefits of everyone being able to view code in their preferred intent size far outweigh the disadvantage of the few edge cases IMO. But thanks for pointing this out!

    • Franklin Yu

      You didn’t get the point, buddy.

  • Pingback: vibrator,()

  • Pingback: Best Tongue Vibrator,()

  • Pingback: Sex Bed Restraints,()

  • Pingback: check out the post right here()

  • Pingback: big truck towing service()

  • Pingback: kona coffee gourmet()

  • Pingback: Consultant()

  • Pingback: Leather slim cases for iPhone 6()

  • Pingback: economical business voice system mississauga()

  • Pingback: buy sex furniture()

  • Pingback: RMUTT()

  • Pingback: WS-C2960XR-24PD-I()

  • David Waters
  • Pingback: work from home jobs online no fees()

  • Pingback: adult store()

  • Pingback: fleshlight masturbation()

  • Pingback: free cupons()

  • Pingback: Women's skirt wholesale in nairobi()

  • Pingback: escort malaysia()

  • Pingback: Webcam model jobs()

  • Pingback: petaxi()

  • Pingback: you could check here()

  • Pingback: Clasificados y Directorios()

  • Pingback: Naughty Kinky Valentines Gifts()

  • Pingback: gifts for him()

  • Pingback: female massager()

  • Pingback: tactical gear()

  • Pingback: used ramp trucks for sale()

  • Pingback: hawaii coffee mountain()

  • Pingback: coffee beans()

  • Pingback: best coffee kona()

  • Pingback: credit repair service()

  • Pingback: foreclosures()

  • Pingback: buy coffee kona()

  • Pingback: pop over to these guys()

  • Pingback: black gold coffee of kona()

  • Pingback: Adamandeve.com()

  • Pingback: passport photos vaughan()

  • Pingback: workfromhomejobs()

  • Pingback: download games for windows 8()

  • Pingback: Stephani Mitchel()

  • Pingback: pc games free download full version for windows 7()

  • Pingback: software for pc()

  • Pingback: dick ring()

  • Pingback: iphone()

  • Pingback: Camiones peterbilt Usados()

  • Pingback: massagem()

  • Pingback: seo kaina()

  • Pingback: Central NJ personal trainer()

  • Pingback: kona coffee company()

  • Pingback: kona coffee company()

  • Pingback: 100% kona()

  • Pingback: casino games()

  • Pingback: directory()

  • Pingback: android apps for pc()

  • Pingback: 美国 作弊 被抓()

  • Pingback: webcam models()

  • Julia Morgan



    I can’t believe my genital herpes is really cured, oh is by this time last year I start feeling bad about my life, I feel pain everyday of my life am very happy now that am really cured I couldn’t have do this on my own I wish is not God that help me with my helper I was searching the internet about this sickness last 3month when I found about great doctor oduwa, the man that keep his words I write the man email about my problem immediately I get a reply from him asking me to fill a form which I immediately did and send back to him after some mines he reply me that he have work on my cure that I need to provide some materials, which can enable him to work on my cure which I did on the next day of it, after some hours he inform me that he have getting the things needed for the cure and he is about to go on with the curing spell he called me again after 50mins that he is done with the cure that I should check my body and also go for test I cant believe I was negative a big thanks to him am very happy now with my family you can also get your self cured too from this sickness by contact him through (dr.oduwaspellhome@gmail.com) OR (http://droduwaspellhome.webs.com/) if you need any information about him contact me by email: jm006251@gmail.com

    He also have a herbal cure for 7 other DISEASES;








    8 HPV

    Contact him today and you will have a testimony…Good luck

  • Pingback: webcam models()

  • Pingback: toys for couples()

  • Pingback: Adult Products()

  • Pingback: clit sex toys()

  • Pingback: hvac duct supplies()

  • Pingback: Dryer vent system()

  • Pingback: Dryer repair service()

  • Pingback: Hitachi Magic Wand()

  • Pingback: Dolphin Vibrator()

  • Pingback: ماطور للبيع()

  • Pingback: android apps for pc download()

  • Pingback: hands free sex()

  • Pingback: ფეხბურთი()

  • Pingback: rabbit vibrators()

  • Pingback: cock ring()

  • Pingback: bitcoin faucet()

  • Pingback: Narcando()

  • Pingback: webcam models()

  • Pingback: best anal vibrator()

  • Pingback: Classic Vibrator()

  • Pingback: bangla choti()

  • Pingback: 100% kona coffee()

  • Pingback: kitchen tiles stickers()

  • Pingback: tiles transfers()

  • Pingback: ps4 games()

  • Pingback: Greg Thmomson()

  • Pingback: pure kona coffee()

  • Pingback: kona coffee()

  • Pingback: Parks in Stockton CA()

  • Pingback: 30 yard dumpster prices()

  • Pingback: hook chain()

  • Pingback: masturbation()

  • Pingback: adult sex shop()

  • Pingback: taxi sölden()

  • Pingback: metal bonded wheels()

  • Pingback: Cash For Trucks Melbourne()

  • Pingback: chat gratis()

  • Pingback: toronto used cars()

  • Pingback: digital marketing philippines()

  • Pingback: Movie Maker Programa Instalacion | Try new animation software()

  • Pingback: Sell house Wichita, KS()

  • Pingback: Discover New Artists()

  • Pingback: pussy power()

  • Pingback: Young Thug Mixtapes()

  • Pingback: Master P Mixtapes()

  • Pingback: gmail.com login()

  • Pingback: 21 Savage Mixtapes()

  • Pingback: adam and eve()

  • Pingback: 2 Chainz Mixtapes()

  • Pingback: Male Enhancement()

  • Pingback: instant chat()

  • Pingback: this is my email address()

  • Pingback: clasificados gratis()

  • Pingback: sex toys()

  • Pingback: Car Wreckers()

  • Pingback: 오버워치 대리()

  • Pingback: sex stories()

  • Pingback: Exercise()

  • Pingback: compare auto insurance()

  • Pingback: towing service provider dearborn()

  • Pingback: mti magnolia telecom reviews()

  • Pingback: Circle Saw()

  • Pingback: Sex Stories()

  • Pingback: adam and eve's naughty rabbit()

  • Pingback: car wrecker melbourne()

  • Pingback: homemade sex toys()

  • Pingback: sexy lingerie()

  • Pingback: superior auto institute reviews()

  • Pingback: water based lube()

  • Pingback: adam and eve sex toy shop()

  • Pingback: sex blindfold()

  • Pingback: Interior design for your home()

  • Pingback: impresoras()

  • Pingback: sex cuff()

  • Pingback: inchiriere apartamente bucuresti()

  • Pingback: aphrodisiacs()

  • Pingback: iPhone broken screen()

  • Pingback: lapidary supply's()

  • Pingback: piezas reemplazo Mazda()

  • Pingback: panels by hawaii solar()

  • Pingback: retirement tax benefits()

  • Pingback: work from home 2017()

  • Pingback: Cock Rings()

  • Pingback: image sharing()

  • Pingback: pronajem plosiny plzen()

  • Pingback: pronajem plosiny()

  • Pingback: lovedolls()

  • Pingback: Caterpillar c 15()

  • Pingback: white morkie()

  • Pingback: anal plug modelleri()

  • Pingback: hammerhead vibrator()

  • Pingback: nearest hotel motel()

  • Pingback: MOBILE DISCO()

  • Pingback: games for windows 7()

  • Pingback: Discount Designer Shoes In Metairie La Zip Code | Online Buy Sneakers()

  • Pingback: games for pc download()

  • Pingback: gmail log in()

  • Pingback: sex toy rabbit()

  • Pingback: best male sex toy()

  • Pingback: House Of Cards 3 Sezon Izlet | Watch House Of Cards For Free()

  • Pingback: facial trauma()

  • Pingback: fix android()

  • Pingback: 스포츠닥터스()

  • Pingback: pure kona coffee()

  • Pingback: buy kona coffee()

  • Pingback: Triple Pleasure Rabbit()

  • Pingback: Rabbit Vibrators()

  • Pingback: https://youtu.be/LGAcnLXbnAw()

  • Pingback: Parking lot Sealcoating Services()

  • Pingback: Berber carpet()

  • Pingback: Nevada Venta de Camiones()

  • Pingback: Penis Stroker()

  • Pingback: usuwanie dpf()

  • Pingback: best sex toys()

  • Pingback: real life sex dolls()

  • Pingback: pc games for windows 8()

  • Pingback: free download for windows pc()

  • Pingback: free tech()

  • Pingback: CTO Indonesia 2017()

  • Pingback: خرید سرور مجازی()

  • Pingback: hunting dogs()

  • Pingback: tan dog()

  • Pingback: robots systems off()

  • Pingback: 100 вопросов сдачи теста на гражданство сша()

  • Pingback: free download for windows 7()

  • Pingback: apps for pc download()

  • Pingback: pdr training()

  • Pingback: nesaporn()

  • Pingback: adam \u0026 eve()

  • Pingback: vibrating rabbit()

  • Pingback: Cock Ring()

  • Pingback: superior auto institute()

  • Pingback: Vacuum trucks()

  • Pingback: House Of Cards Sezon 1 Izle | Watch House Of Cards For Free()

  • Pingback: movies malayalam()

  • Pingback: PHP Music website()

  • Pingback: 24/7 service()

  • Pingback: Acoustic()

  • Pingback: House Of Cards Izle 2 Sezon Kara | Watch House Of Cards For Free()

  • Pingback: edm parts()

  • Pingback: dabjars()

  • Pingback: cattery()

  • Pingback: wRfqnI8IRxk()

  • Pingback: chain saw sharpening CBN wheel()

  • Pingback: superior auto institute()

  • Pingback: luxury watch trading()

  • Pingback: climax the series()

  • Pingback: superior auto institute()

  • Pingback: Dual Vibrator()

  • Pingback: Double Vibrator()

  • Pingback: https://youtu.be/v9MMRSuY4SE()

  • Pingback: free download for windows 10()

  • Pingback: free download for laptop pc()

  • Pingback: pc games for windows 10()

  • Pingback: superior auto institute()

  • Pingback: Photo booths east Greenwich ri()

  • Pingback: anybunny anybunny hd xxx porn tube video videos free online hot movies()

  • Pingback: free download for pc windows()

  • Pingback: pc games for windows xp()

  • Pingback: apps download for windows 10()

  • Pingback: app download for windows 7()

  • Pingback: sexshop atacado()

  • Pingback: kerala()

  • Pingback: lion kona coffee()

  • Pingback: Android Fixed Rom()

  • Pingback: best of 100% kona()

  • Pingback: https://youtu.be/_6FlbFkQdi0()

  • Pingback: buy coffee beans kona()

  • Pingback: apps for pc download()

  • Pingback: apps download for windows 8()

  • Pingback: how to use a dildo()

  • Pingback: best clit vibrators()

  • Pingback: free download for windows 8()

  • Pingback: miniclip()

  • Pingback: penis extender()

  • Pingback: Silicone()

  • Pingback: menage a trois strap on()

  • Pingback: apps download for pc()

  • Pingback: pc games for windows 8()

  • Pingback: Rotating Rabbit()

  • Pingback: Chaga Pilz()

  • Pingback: Sell Your Products()

  • Pingback: Masturbator Toys()

  • Pingback: nike jordan()

  • Pingback: air conditioner()

  • Pingback: House Of Cards Izle Dizilab English | Watch House Of Cards For Free()

  • Pingback: g spot stimulator()

  • Pingback: true wireless headphones()

  • Pingback: mulvadi pure kona()

  • Pingback: mulvadi kona coffee()

  • Pingback: มะละกอ()

  • Pingback: 9A0-372 Certification Dumps()

  • Pingback: House Of Cards Izle Dizipub How I Met | Watch House Of Cards For Free()

  • Pingback: https://youtu.be/kK7UQ9-3-D4()

  • Pingback: rajwap hd xxx porn tube video videos free online hot movies XXX()

  • Pingback: Best G-Spot Vibrator()

  • Pingback: why do wives cheat()

  • Pingback: best rabbit vibrator()

  • Pingback: ways to make money from home()

  • Pingback: adam and eve sex toy()

  • Pingback: telefon sex()

  • Pingback: logo design()

  • Pingback: Buy android reviews()

  • Pingback: stanozolol landerlan comprimido e bombing()

  • Pingback: peru vacation()

  • Pingback: search all craigslist()

  • Pingback: erotik()

  • Pingback: clitoral stimulation()

  • Pingback: most popular vibrator()

  • Pingback: telefonsex mit cam()

  • Pingback: cash loans()

  • Pingback: low carb diet plan()

  • Pingback: telefonsex cam()

  • Pingback: desinfectionpunaisedelit()

  • Pingback: best anal sex toys()

  • Pingback: Sex Toys()

  • Pingback: Phil Doe()

  • Pingback: AdamandEve Thruster Rabbit Vibrator Review | Thrusting Vibrator()

  • Pingback: sex toys()

  • Pingback: Swan Wand Massager()

  • Pingback: penis pump()

  • Pingback: vibrator review()

  • Pingback: female orgasm()

  • Pingback: clitoral vibrators()

  • Pingback: szybka pozyczka()

  • Pingback: e liquid()

  • Pingback: wedding()

  • Pingback: Download 1Z0-407 Certification Dumps()

  • Pingback: healthy slow cooker recipes 8 hours()

  • Pingback: mobile forex app()

  • Pingback: amazon reviews()

  • Pingback: microfoane spion()

  • Pingback: buy real youtube views()

  • Pingback: wireless microphone headset for fitness()

  • Pingback: amkpici()

  • Pingback: amkpici()

  • Pingback: persian setar()

  • Pingback: C17 Certification Exam Questions and Answers()

  • Pingback: sterling dump truck()

  • Pingback: cheapest smm panel()

  • Pingback: pc games free download for windows 7()

  • Pingback: where to buy waterproof vibrator()

  • Pingback: adam and eve sex toy shop()

  • Pingback: vibrator for women()

  • Pingback: the rabit sex toy()

  • Pingback: wet wabbit video()

  • Pingback: sex toy review()

  • Pingback: anal butt plug()

  • Pingback: The Swan Wand()

  • Pingback: best glass dildo()

  • Pingback: sandwich musculation()

  • Pingback: Buy Adipex()

  • Pingback: sex confession()

  • Pingback: recovery data()

  • Pingback: penis()

  • Pingback: anal sex toy()

  • Pingback: dolandırıcı picccccc()

  • Pingback: Pinganillo()

  • Pingback: Cheap Utah Jazz Jerseys()

  • Pingback: Pinganillo()

  • Pingback: PhentermineDispensary.com()

  • Pingback: juggernaut 2.0 pdf()

  • Pingback: practice test()

  • Pingback: 韓国エスコートアガシ()

  • Pingback: Pinganillos()

  • Pingback: Arduino store()

  • Pingback: deep cycle battery()

  • Dillone

    I totally agree with you on preferring tabs rather than spaces.

  • Pingback: software download for pc()

  • Pingback: games for pc download()

  • Pingback: backpackers world travel()

  • Pingback: apps for pc download()

  • Pingback: travel guide washington state()

  • Pingback: sana nefes yok()

  • Pingback: sana nefes yok()

  • Pingback: jr east travel service center haneda()

  • Pingback: traveling o dolly()

  • Pingback: 福井脱毛()

  • Pingback: business travel quota()

  • Pingback: 福井脱毛()

  • Pingback: whole new world travel express()

  • Pingback: 福井脱毛()

  • Pingback: China Import Agent()

  • Pingback: infidelity()

  • Pingback: Site sparkfun: Invalid()

  • Pingback: bhutan demographics()

  • Pingback: awesome travel essentials()

  • Pingback: travel agencies denver co()

  • Pingback: traveling youth zone()

  • Pingback: fashion valley apple store()

  • Pingback: lepore of women's fashion crossword clue()

  • Pingback: decca c fashionable bags()

  • Pingback: fashion week 3d printing()

  • Pingback: kinokradserial()

  • Pingback: brand institute()

  • Pingback: v-tex lifestyle mills()

  • Pingback: Buy rap beats()

  • Pingback: Cheap Tampa Bay Rays Jerseys()

  • Pingback: خرید سرور مجازی()

  • Pingback: ladies cowboy boots()

  • Pingback: dresses cheap()

  • Pingback: 五月女王/五月的情海dvd()

  • Pingback: design element for fashion()

  • Pingback: 5th street fashion()

  • Pingback: all about u home improvements()

  • Pingback: buy kona()

  • Pingback: 100% kona()

  • Pingback: u home review()

  • Pingback: Taxes()

  • Pingback: videos()

  • Pingback: p b home improvements()

  • Pingback: house furniture checklist()

  • Pingback: dirty sex()

  • Pingback: http://motuandpatlugames.com()

  • Pingback: jimmy buffet()

  • Pingback: Water softener()

  • Pingback: home & garden winnipeg()

  • Pingback: web site()

  • Pingback: nSpire Network Signup()

  • Pingback: i 4 home design()

  • Pingback: happy()

  • Pingback: home design 06810()

  • Pingback: sarah j home decor()

  • Pingback: decorating ideas to sell your house()

  • Pingback: h&m wedding shoes()

  • Pingback: http://www.hamptonbaylightinghd.com()

  • Pingback: http://www.motupatlugameshd.com()

  • Pingback: how to tell your partner you have std()

  • Pingback: dating tips()

  • Pingback: adam \u0026 eve()

  • Pingback: New Sex Toys()

  • Pingback: Dildos()

  • Pingback: cana wedding pictures()

  • Pingback: TensorFlow()

  • Pingback: 100% kona coffee()

  • Pingback: oral surgery daytona()

  • Pingback: fishing rod redding()

  • Pingback: wedding invitations n ireland()

  • Pingback: bandra()

  • Pingback: Hollow Strap On Dildo()

  • Pingback: t length wedding dresses uk()

  • Pingback: Best Gaming Keyboards Under $50,Best Gaming Keyboards()

  • Pingback: https://youtu.be/c49tU2i2JSI()

  • Pingback: Cheap Gaming Laptops Under $500,best budget laptop()

  • Pingback: Women Sex Toys()

  • Pingback: daily news()

  • Pingback: Purchase Beer Online()

  • Pingback: Big Bang Theory 5 Sezon | Watch Big Bang Theory Online()

  • Pingback: data science courses()

  • Pingback: c z wedding sets rings()

  • Pingback: t rex wedding cake toppers()

  • Pingback: wedding planning tips on a budget()

  • Pingback: wedding budget website()

  • Pingback: pleasure vibe()

  • Pingback: Gelatin empty capsules()

  • Pingback: events in ventura()

  • Pingback: web application development companies in usa()

  • Pingback: luxury kinds store()

  • Pingback: rehab clinic()

  • Pingback: Cheap jordan shoes()

  • Pingback: wedding bouquet display case()

  • Pingback: 他媽的谷歌()

  • Pingback: learning numbers()

  • Pingback: pure kona()

  • Pingback: kona 100%()

  • Pingback: e learning infection control()

  • Pingback: where to buy cheap love bangle rose()

  • Pingback: everyday deals trademark()

  • Pingback: sex toy review()

  • Pingback: bvlgari jewelry yellow imitation()

  • Pingback: tysyxgggle()

  • Pingback: Double Dildo Video()

  • Pingback: how to make extra money()

  • Pingback: clinica de recuperação()

  • Pingback: Essential Oils()

  • Pingback: Invicta()

  • Pingback: 他媽的()

  • E pluribus unum

    You forget a small detail to why Tabs are superior, but at the same time people make them inferior.

    When you start working with more than 5 people you start clashing with different coding clients and when these clients take tabs and convert them into their favorite length of spaces… and now it’s in tens or hundreds of files in your codebase

    And when you open those files they’re all indented wrong, some are spaces, some are tabs.

    Tabs are only fine when then development environment is really controlled and contained, once you start growing your team you’ll realize you just can’t handle tabs, unless you like to micromanage and waste time on pointless tasks

    • Franklin Yu

      I have seen editors that displays tabs at any size. I have never seen any editor that automatically change the content of a file without my intention. Please tell me which editor it is (so I can avoid it for the rest of my life).

  • Pingback: praxis 2 special education practice test()

  • Pingback: c tech computer education()

  • Pingback: online education information()

  • Pingback: online degree worthless()

  • Pingback: buy usa business email lists()

  • Pingback: robert()

  • Pingback: Make Money Online()

  • Pingback: english education in sri lanka()

  • Pingback: back to school 3rd grade worksheets()

  • Pingback: Modern Family Izle 4. Sezon 24.bölüm | Watch TV Shows Online()

  • Pingback: w&l business school()

  • Pingback: business school fsu()

  • Pingback: wall bed()

  • Pingback: lefkoşa satılık daire fiyatları()

  • Pingback: Spiritual healing()

  • Pingback: sock leggings()

  • Pingback: chinese antiquities()

  • Pingback: snuff bottles()

  • Pingback: home improvement on hulu()

  • Pingback: sex toys for couples()

  • Pingback: lucid dream vibrator()

  • Pingback: learning new things()

  • Pingback: airzone travels erode address()

  • Pingback: sex toy butterfly()

  • Pingback: sex toys cleaner()

  • Pingback: adam eve toys()

  • Pingback: sex toys for clit()

  • Pingback: ride sex toys()

  • Pingback: 2H2D()

  • Pingback: The X Files 5.sezon 19.bölüm | Watch X Files Online()

  • Pingback: ean codes()

  • Pingback: Modern Family 5. Sezon Izle Dizipub | Watch TV Shows Online()

  • Pingback: realistic vibrating dildo()

  • Pingback: X Files 2.sezon 23.bölüm | Watch X Files Online()

  • Pingback: coffee’s best kona()

  • Pingback: tratamento Alcoolismo()

  • Pingback: The X Files Izle 5 Sezon Gry | Watch X Files Online()

  • Pingback: X Files 3.sezon 1.bölüm | Watch X Files Online()

  • Pingback: Barcode kaufen()

  • Pingback: download tama tube()

  • Pingback: Accessories()

  • Pingback: what emac()

  • Pingback: large vibrator()

  • Pingback: vibrating realistic dildo()

  • Pingback: vibrating dildo()

  • Pingback: evolved vibrator()

  • Pingback: top design agencies uk()

  • Pingback: triple rabbit vibrator()

  • Pingback: businessweek p&g()

  • Pingback: marketing events()

  • Pingback: nipple erector set()

  • Pingback: free download for windows 8()

  • Pingback: 2 shed home improvement()

  • Pingback: X Files Izle 3 Sezon Violetty | Watch X Files Online()

  • Pingback: basement remodeling atlanta ga()

  • Pingback: X Files 3.sezon 21.bölüm | Watch X Files Online()

  • Pingback: rollex 11 casino bet()

  • Pingback: business success keys()

  • Pingback: 1000 sheet set()

  • Pingback: real estate 1031 exchange()

  • Pingback: business finance store()

  • Pingback: industry vs inferiority age()

  • Pingback: Cold Forging()

  • Pingback: shopping for a mortgage()

  • Pingback: fitness und beauty 1140 wien()

  • Pingback: business mortgage finance 4 plc()

  • Pingback: rmn 2 small business development()

  • Pingback: 8 educational philosophies()

  • Pingback: fashion q website()

  • Pingback: sfico.info xxx video xnxxx xxx hd wwwxxx()

  • Pingback: xtreme health and fitness antigua()

  • Pingback: q card life insurance()

  • Pingback: rampant rabbit vibrator()

  • Pingback: Modern Family 4.sezon 8.bolum Izle | Watch TV Shows Online()

  • Pingback: 7 healthy habits of a teenager()

  • Pingback: home accessories edinburgh()

  • Pingback: health 180()

  • Pingback: real estate knoxville tn()

  • Pingback: d.g.traveling agency()

  • Pingback: home decorating app free()

  • Pingback: website developers()

  • Pingback: food recalls()

  • Pingback: home renovation 2015 singapore()

  • Pingback: Venture Point Network()

  • Pierre Clouthier

    I totally agree – tabs are the only sane way to indent source code. The tab indent value can be individually configured – why use spaces?

  • Pingback: rabbit vibrator()

  • Pingback: megogoserial.ru()

  • Pingback: jack rabbit vibrator()

  • Pingback: bangal ka jadu()

  • Pingback: all forex brokers()

  • Pingback: but plug review()

  • Pingback: flesh dildos()

  • Pingback: Taoist Real Sex Talk()

  • Pingback: forex no deposit bonus()

  • Pingback: forex bonus()

  • Pingback: eyewear for tactical swat teams()

  • Pingback: how often do married couples have()

  • Pingback: free full download for windows()

  • Pingback: realistic penis()

  • Pingback: rental cleaning Melbourne()

  • Pingback: tire care()

  • Pingback: label baju()

  • Pingback: Mitsubishi trimmer recoil starter()

  • Pingback: g-spot()

  • Pingback: max results pump()

  • Pingback: end of lease clean Melbourne()

  • Pingback: bed bugs extermination cost()

  • Pingback: gay sex toys()

  • Pingback: vibrating butt plug()

  • Pingback: butt plug()

  • Pingback: butt plug()

  • Pingback: Late Night Date Night()

  • Pingback: Surprise Candles()

  • Pingback: dr. kat()

  • Pingback: wet wabbit vibrator()

  • Pingback: sinister smotret online()

  • Pingback: Bond back cleaning Melbourne()

  • Pingback: смотреть()

  • Pingback: bandiera italiana()

  • Pingback: kinogo()

  • Pingback: kala jadu()

  • Pingback: interior design Singapore()

  • EricTbone

    This is textbook Gish Gallop, trying to use volume to suggest substance, when most of the volume is trivial nonsense. Reason #1, #4, #5, #6 are all profoundly idiotic (like… seriously). Reasons #2 and #3 are the same argument, and that is the *only* valid argument in the entire post. Yet that argument is completely cancelled out by reason #8: there’s no way to reliably make things line up using a mixture of tabs and spaces on a single line, and if you line things up spaces, then your indentation there will be inconsistent with the rest of the file. If you use white space at all to convey meaning in your code, and you should, then you should care that it looks to the reader the way you intended. Tabs guarantee you can’t do that.

    • brianm101

      Tabs are fine provide your editor automatically turns them into fixed spaces!

    • Franklin Yu

      Please elaborate there’s no way to reliably make things line up using a mixture of tabs and spaces on a single line given that you have read #8. None of the other comments here has ever provided any example that cannot be properly formatted with “tab to indent, space to align”.

      • EricTbone

        Perhaps a bit of an overstatement. You have two different strategies for placing characters that you must constantly consider, and if you make any mistakes (e.g. using spaces to align something you positioned with tabs), your formatting can break on another person’s machine. The only way to be sure you haven’t screwed up is to turn on visible space and proof read, or change your tab settings and make sure things still look right. With spaces, this is a complete non-issue. You place characters where you want them and that’s exactly where they’ll be on everybody’s machine, period.

        • Franklin Yu

          True, or I would rephrase it as: space is the common fallback in case of lack of decent editors, tools, or programmers.

        • EricTbone

          *rofl* Had to get personal, huh? StackOverflow statistics show that more experienced programmers use spaces (as judged by reputation on their site), and programmers who use spaces make significantly money on average. There goes your shit-for-brains hypothesis.

        • EricTbone

          *rofl* Had to get personal, huh? StackOverflow statistics show that more experienced programmers use spaces (as judged by reputation on their site), and programmers who use spaces make significantly money on average. There goes your hypothesis.

  • brianm101

    Ok the issue is now finally resolved courtesy of Stack overflow survey. See ars article:

    Spoiler alert:
    You are better off using spaces if you want to earn more 🙂

    • Tim Locke

      This is undoubtedly an age issue. Older programmers make more money and are more likely to use spaces.

    • Franklin Yu

      This is just a joke, right? You’re not arguing that space is superior by this, are you?

      • brianm101

        Better pay – A good reason to use spaces (!) but a more logical reason is:
        Tabs were traditionally a fixed number of spaces === Pressing space bar a fixed number of times on manual or electric typewriters.

        These ‘tab’ spaces were permanent as the output was on a piece of paper and could not be altered by the reader – perfect!.

        Computes and their editors are incorrect in they way they use tabs as now a tab spacing depends on what the reader sets and not what the author meant. Its just wrong in every sense!

        Hence using a tab on a computer is like using a broken typewriter! The concept of what the author meant can be lost.

        No wonder ‘space’ users get paid more – they are lot more sensible and more of a team player!

        • Franklin Yu

          Computes and their editors are incorrect in they way they use tabs as now a tab spacing depends on what the reader sets and not what the author meant.

          Yes, that is what the author meant: to indent for one level. By entering the tab character, I don’t mean “4 spaces” (or however many), I mean “one tab” exactly. I don’t care how long the tab is on any editor (just like I don’t care what font you use); I just want it to clearly convey the idea: one single indent.

  • Pingback: adam and eve vibrators()

  • Pingback: adam and eve sex toy shop()

  • Pingback: adam and eve sex toy shop()

  • Pingback: Magic Wand Vibrating Massager()

  • Pingback: Butterfly Kiss Toy()

  • Pingback: 4cyn5et4m5t94c5t9m4vn54cx65()

  • Pingback: Adam And Eve Vibrators()

  • Pingback: Best Male Masturbator()

  • Pingback: Under The Bed Restraints()

  • Pingback: make your husband happy()

  • Pingback: Personal Lubricant()

  • Pingback: personal lube()

  • Pingback: rental bond cleaning Melbourne()

  • Pingback: www.spu.ac.th()

  • Pingback: how to last longer in bed()

  • Pingback: http://falschgeldkaufen.blogspot.com/2017/01/wo-kann-ich-falschgeld-kaufen.html()

  • Pingback: pc app free download()

  • Pingback: pc games for windows 7()

  • Pingback: transformery-posledniy-rycar-2017()

  • Pingback: transformery-5-posledniy-rycar-2017-kinohd720()

  • Pingback: bondage toys()

  • Pingback: web site()

  • Pingback: quick divorce in PA()

  • Pingback: myxxxbase.mobi()

  • Pingback: anal sex vibrators()

  • Pingback: spice up marriage()

  • Pingback: raiola manda y no el panda 2017()

  • Pingback: hot lingerie()

  • Pingback: http://mer99furniture.com()

  • Pingback: g-spot massage()

  • Pingback: pc games for windows 8()

  • Pingback: rabbit vibrator()

  • Pingback: my first anal sex()

  • Pingback: apps for pc download()

  • Pingback: app for windows()

  • Pingback: free download for pc windows()

  • Pingback: #airconditioningmiami()

  • Pingback: rotating rabbit vibrator()

  • Pingback: adam and eve()