Fatal flaw in D design which is holding back widespread adoption

Matt euroquigs at hotmail.com
Tue Mar 30 11:52:47 PDT 2010


Hello all.  I've been so fascinated with D ever since I first read about it a few years ago.  I read the design descriptions and language features just for fun sometimes at work when I'm bored.

It makes me so sad, though, that the language will never take off because of one fatal flaw that plagues the widespread adoption of the language.  It's a flaw that makes educated people move on because they simply won't take the language seriously.  I daresay there have been millions who were about to learn D and then found out this flaw, unfortunately figured it was a beginner's language, and moved on to another exciting new language.

The fatal flaw is that tabs are 8 characters in D's official style guide, including Phobos and other official D source code.  WTF???? Lolz, is it 1968?  Not only that, but INDENTION IN D is 4 CHARACTERS.  That's right, I'm not kidding... tabs are 8 characters but indention is 4 characters.  I truly apologize to you people who were born in 1950 or earlier who actually don't understand why this idea is retarded.  Tabs have been 4 characters for DECADES now.  

What's that comment from the back?  Speak up!  Oh, haha well, you say that most printers use 8 characters for tabs, so D should consider them the same?  HAHAHAHA I think you want me to throw this pie in your face.  This is 2010.  We don't print source code with dot matrix printers!  Not only that, we don't F'N PRINT SOURCE CODE, have you ever heard of the Internet?  Why would you waste paper anyways?  We won't be printing ANYTHING in an office in another decade.

Oh you guys, stop telling me it's no big deal and I need to try it.  I did!  Can you believe it, the source code that comes with the D implementations is indented by 4 characters... but get this, whoever wrote this stuff used 4 spaces on odd columns, and tabs for 8 spaces on even lines!  No kidding?  Have you tried maneuvering with the arrow keys around that crap?  Yeah, it's like a joke source code, something you give to someone on April Fools day to give them a hard time.  You never know what pressing UP, DOWN, LEFT, or RIGHT will get you when you're navigating the indented space to the left of the source code.  Sometimes it jumps left by 2 columns (i.e. 8 characters), but sometimes it only moves 1 character.  You never know until you try it.

I mean, who goes through the trouble of pressing tab, then figuring out he didn't want to indent 8 characters because he's on an odd column, so he presses backspace and then the spacebar 4 times.  Of course, he has to do this all the time because when he's not concentrating on indention, he doesn't remember which column uses spaces and which ones he'll have to press tab for.  Or does he always use spaces, and then go back and optimize any 8 spaces he finds in the indented area with tabs?

And then, as always, the comments that MY editor is too old to handle this, and that all modern editors should be able to automate the indention process.  They should, in theory, use the tab key to generate spaces when needed, or tab characters when needed.  Or, they should automate save actions which affect the indention area, defined as whitespace on a line before non-whitespace, by replacing 8 character spaces with tabs.  Hhhmph, so it's my fault now?  I shouldn't be using notepad, I should be using YOUR editor which makes your faulty method work?  Oh sure, blame me.  But I'm not the retard who said tabs are 8 characters, indentions are 4 characters, and just mix 'em up and have fun!

Maybe there will be a D 3.0 which will fix this fatal absence of logical design and reasoning.  Well, a boy can dream...

http://www.digitalmars.com/d/2.0/dstyle.html




More information about the Digitalmars-d mailing list