digitalmars.D - Interesting language comparison article
- Walter Bright (1/1) Mar 12 2006 http://www.cabochon.com/~stevey/blog-rants/tour-de-babel.html
- Hasan Aljudy (7/14) Mar 12 2006 Just like me!!
- John Demme (2/3) Mar 13 2006 Has anyone told him about D yet?
- Tom (9/10) Mar 13 2006 I think it's wiser to use just a subset of C++ features (the good and us...
- Charles (6/24) Mar 13 2006 So true :).
- Ben Phillips (3/7) Mar 13 2006 Theres nothing wrong with the indentation (imo), its the required newlin...
- Hasan Aljudy (3/13) Mar 13 2006 I think emacs is stupid. :)
- Kyle Furlong (2/19) Mar 13 2006 Have you ever seen an experienced emacs user work? o_0
- J C Calvarese (9/16) Mar 14 2006 I disagree. Python will complain about invisible errors due to its rever...
- Hasan Aljudy (6/29) Mar 14 2006 Good point.
- Jarrett Billingsley (6/11) Mar 14 2006 I take personal offense at that.
- Hasan Aljudy (4/22) Mar 14 2006 :P
- Jarrett Billingsley (6/8) Mar 14 2006 I never understood this whole hard-tab-hating stuff. Everything lines u...
- Hasan Aljudy (11/24) Mar 14 2006 Tabs are a bit inconsistent.
- Unknown W. Brackets (16/43) Mar 14 2006 That's only because they are used inconsistently. The general rule is
- Don Clugston (6/9) Mar 15 2006 That's a good rule, but you also need to make sure that lines with tab
- Unknown W. Brackets (8/18) Mar 15 2006 Ah, yes, that's a good point as well. I'm very careful to only use
- Hasan Aljudy (11/35) Mar 15 2006 This is why I said it's kind of a high level concept. Too many
- Unknown W. Brackets (12/52) Mar 15 2006 How in the world can you write code efficiently with a mouse? If I had
- Hasan Aljudy (8/23) Mar 15 2006 I wasn't talking about coding, but about browing.
- Oskar Linde (7/11) Mar 15 2006 I would agree with you totally had I not watched one particular
- Sean Kelly (8/17) Mar 14 2006 Look at some code that was written with different tab settings from
- Oskar Linde (32/41) Mar 15 2006 I think Emacs is to blame for many of the problems with hard tabs. Emacs...
- Unknown W. Brackets (5/21) Mar 14 2006 Same here.
- Fredrik Olsson (7/19) Mar 16 2006 And I take offewnse as well! It should be two speces! Four spaces is a
- Charles (3/44) Mar 15 2006 If you were using emacs you could change to that in 1/2 a second :P.
- Hasan Aljudy (4/11) Mar 15 2006 I know, alot of edtiros have that option, but not all of them, hence the...
- Sean Kelly (8/8) Mar 14 2006 It's an interesting article with some quotable tidbits, but that the
- Kyle Furlong (4/14) Mar 14 2006 Emacs is extremely difficult to grok for someone brought up in the RAD e...
- Hasan Aljudy (4/23) Mar 15 2006 Real "gurus" don't need computers; they carry everything in their
- Kyle Furlong (4/30) Mar 15 2006 Actually, that wasn't my point at all. Editing text in Emacs is, once le...
http://www.cabochon.com/~stevey/blog-rants/tour-de-babel.html
Mar 12 2006
Walter Bright wrote:http://www.cabochon.com/~stevey/blog-rants/tour-de-babel.htmlI loved C++ in college, because it's all I knew. When I heard that my languages prof, Craig Chambers, absolutely detested C++, I thought: "Why? I like it just fine."Just like me!! I used to love C++, because it was all I knew! When I heard my prof (who also goes by the first name Craig) say it's the worst language he'd used, I thought to myself, "Why? it's a great language!" Now I hate C++!C++ is the dumbest language on earthso true!
Mar 12 2006
Walter Bright wrote:http://www.cabochon.com/~stevey/blog-rants/tour-de-babel.htmlHas anyone told him about D yet?
Mar 13 2006
In article <dv2gj0$169t$1 digitaldaemon.com>, Walter Bright says...http://www.cabochon.com/~stevey/blog-rants/tour-de-babel.htmlI think it's wiser to use just a subset of C++ features (the good and useful ones) than to make fun of or utter than you hate the language. I do also dislike very C++ things and also hate other languages (as Perl for example). But I know they could be useful if wisely used. In the same way I actually love D, I do also miss features that it lacks (e.g. constness) and not because of that I stand against it. IMHO that article is more making fun of languages with which the author doesn't like than anything else. Tom;
Mar 13 2006
IMHO that article is more making fun of languages with which the author doesn't like than anything else.Yes, but alot of his rants ring true for me. Like whitespace and python , any language that makes whitespace meaningful is hard to take seriously.All of the greatest engineers in the world use EmacsSo true :).Emacs has the Quality Without a Name.I think D shares this Quality. Charlie Tom wrote:In article <dv2gj0$169t$1 digitaldaemon.com>, Walter Bright says...http://www.cabochon.com/~stevey/blog-rants/tour-de-babel.htmlI think it's wiser to use just a subset of C++ features (the good and useful ones) than to make fun of or utter than you hate the language. I do also dislike very C++ things and also hate other languages (as Perl for example). But I know they could be useful if wisely used. In the same way I actually love D, I do also miss features that it lacks (e.g. constness) and not because of that I stand against it. IMHO that article is more making fun of languages with which the author doesn't like than anything else. Tom;
Mar 13 2006
In article <4415EF50.7010101 nowhere.com>, Charles says...Theres nothing wrong with the indentation (imo), its the required newline problem that kills Python for me.IMHO that article is more making fun of languages with which the author doesn't like than anything else.Yes, but alot of his rants ring true for me. Like whitespace and python , any language that makes whitespace meaningful is hard to take seriously.
Mar 13 2006
Charles wrote:> IMHO that article is more making fun of languages with which > the author doesn't like than anything else. Yes, but alot of his rants ring true for me. Like whitespace and python , any language that makes whitespace meaningful is hard to take seriously.That's a completely irrational argument.I think emacs is stupid. :)All of the greatest engineers in the world use EmacsSo true :).
Mar 13 2006
Hasan Aljudy wrote:Charles wrote:Have you ever seen an experienced emacs user work? o_0> IMHO that article is more making fun of languages with which > the author doesn't like than anything else. Yes, but alot of his rants ring true for me. Like whitespace and python , any language that makes whitespace meaningful is hard to take seriously.That's a completely irrational argument.I think emacs is stupid. :)All of the greatest engineers in the world use EmacsSo true :).
Mar 13 2006
In article <dv4uo9$1337$1 digitaldaemon.com>, Hasan Aljudy says...Charles wrote:I disagree. Python will complain about invisible errors due to its reverence for whitespace. I wasted a ridiculous amount of time before I figured out that Python wouldn't compile my program because it saw a difference between a tab and the equivalent number of spaces. Now I know what I did was wrong, but a tab and several spaces still look identical on my screen. IMHO Python would be better if it used something visible (such of {}, begin/end, etc.). jcc7> IMHO that article is more making fun of languages with which > the author doesn't like than anything else. Yes, but alot of his rants ring true for me. Like whitespace and python , any language that makes whitespace meaningful is hard to take seriously.That's a completely irrational argument.
Mar 14 2006
J C Calvarese wrote:In article <dv4uo9$1337$1 digitaldaemon.com>, Hasan Aljudy says...Good point. I say the clurpit is the evil tab character, it should be removed from all computer systems in the world!! :P The "Tab" keyboard button should just be a `macro` for 4 spaces, not a separate character!!Charles wrote:I disagree. Python will complain about invisible errors due to its reverence for whitespace. I wasted a ridiculous amount of time before I figured out that Python wouldn't compile my program because it saw a difference between a tab and the equivalent number of spaces. Now I know what I did was wrong, but a tab and several spaces still look identical on my screen. IMHO Python would be better if it used something visible (such of {}, begin/end, etc.). jcc7That's a completely irrational argument.IMHO that article is more making fun of languages with which the author doesn't like than anything else.Yes, but alot of his rants ring true for me. Like whitespace and python , any language that makes whitespace meaningful is hard to take seriously.
Mar 14 2006
"Hasan Aljudy" <hasan.aljudy gmail.com> wrote in message news:dv83h7$1op3$1 digitaldaemon.com...Good point. I say the clurpit is the evil tab character, it should be removed from all computer systems in the world!! :P The "Tab" keyboard button should just be a `macro` for 4 spaces, not a separate character!!I take personal offense at that. ;) I will use hard tabs till the day I die. You will have to pry my tab key from my cold, dead hands.
Mar 14 2006
Jarrett Billingsley wrote:"Hasan Aljudy" <hasan.aljudy gmail.com> wrote in message news:dv83h7$1op3$1 digitaldaemon.com...:P Stick to the tab key all you want. I want to kill the ascii code for the "so called" tab character!!Good point. I say the clurpit is the evil tab character, it should be removed from all computer systems in the world!! :P The "Tab" keyboard button should just be a `macro` for 4 spaces, not a separate character!!I take personal offense at that. ;) I will use hard tabs till the day I die. You will have to pry my tab key from my cold, dead hands.
Mar 14 2006
"Hasan Aljudy" <hasan.aljudy gmail.com> wrote in message news:dv84il$1q3l$1 digitaldaemon.com...Stick to the tab key all you want. I want to kill the ascii code for the "so called" tab character!!I never understood this whole hard-tab-hating stuff. Everything lines up on nice neat columns, they can be set to whatever width you want, and it's much quicker to move through them using the arrow keys. What's so great about spaces?
Mar 14 2006
Jarrett Billingsley wrote:"Hasan Aljudy" <hasan.aljudy gmail.com> wrote in message news:dv84il$1q3l$1 digitaldaemon.com...Tabs are a bit inconsistent. They are, as you say, a bit costumizable, but the result is that they're also not "portable"! They aren't reliable for text layout. When you write a piece of code that uses tabs and try to insert it in forums (I mean real forums, not NGs), they won't always look like what you expect. Plus the python problem mentioned above! I think "tabbing" is a kind of a high level concept, shouldn't be implemented in ascii. Just like "bold", "italics", and "underline" aren't implemented in ascii.Stick to the tab key all you want. I want to kill the ascii code for the "so called" tab character!!I never understood this whole hard-tab-hating stuff. Everything lines up on nice neat columns, they can be set to whatever width you want, and it's much quicker to move through them using the arrow keys. What's so great about spaces?
Mar 14 2006
That's only because they are used inconsistently. The general rule is that tabs should never be used after a non-tab character on a line. Bam, instant portability and everyone gets their own tab size. It's the crazies that try to indent equal signs with tabs that give hard tabs a bad name. That should be spaces because you're lining up characters, not indenting. Plus I like my files slightly smaller. I checked once, and at 4 spaces to a tab I save a surprising amount of space. This is probably because I'm a prude about one statement per line and such. As for forums, being that I wrote forum software previously, I can tell you with some assurity that this is only caused by using crappy forum software. The software I was involved with supported tabs just fine, and I used them in the code examples I posted with it. Tabbing is elementary. I don't bold parts of my code. No one complains about language Z requiring thing X to be italic. -[Unknown]Jarrett Billingsley wrote:"Hasan Aljudy" <hasan.aljudy gmail.com> wrote in message news:dv84il$1q3l$1 digitaldaemon.com...Tabs are a bit inconsistent. They are, as you say, a bit costumizable, but the result is that they're also not "portable"! They aren't reliable for text layout. When you write a piece of code that uses tabs and try to insert it in forums (I mean real forums, not NGs), they won't always look like what you expect. Plus the python problem mentioned above! I think "tabbing" is a kind of a high level concept, shouldn't be implemented in ascii. Just like "bold", "italics", and "underline" aren't implemented in ascii.Stick to the tab key all you want. I want to kill the ascii code for the "so called" tab character!!I never understood this whole hard-tab-hating stuff. Everything lines up on nice neat columns, they can be set to whatever width you want, and it's much quicker to move through them using the arrow keys. What's so great about spaces?
Mar 14 2006
Unknown W. Brackets wrote:That's only because they are used inconsistently. The general rule is that tabs should never be used after a non-tab character on a line. Bam, instant portability and everyone gets their own tab size.That's a good rule, but you also need to make sure that lines with tab indentation aren't being mixed with lines with space indentation. Most editors don't enforce this, but it ought to be solvable. The problem with tabs might simply be that so many text editors don't handle them correctly.
Mar 15 2006
Ah, yes, that's a good point as well. I'm very careful to only use reasonable-quality editors, such as Visual Studio (which actually auto-corrects this issue and clears lines that are just whitespace if you don't type anything on them.) And, another point about tabs is that it makes it a lot easier to navigate code with the carrot. I always assume people who hate hard tabs must not like arrow keys or something.... -[Unknown]Unknown W. Brackets wrote:That's only because they are used inconsistently. The general rule is that tabs should never be used after a non-tab character on a line. Bam, instant portability and everyone gets their own tab size.That's a good rule, but you also need to make sure that lines with tab indentation aren't being mixed with lines with space indentation. Most editors don't enforce this, but it ought to be solvable. The problem with tabs might simply be that so many text editors don't handle them correctly.
Mar 15 2006
Unknown W. Brackets wrote:Ah, yes, that's a good point as well. I'm very careful to only use reasonable-quality editors, such as Visual Studio (which actually auto-corrects this issue and clears lines that are just whitespace if you don't type anything on them.)This is why I said it's kind of a high level concept. Too many complicated tasks to take care of. The low cohesion principle says that hard-wired tab character should be removed because putting it in ascii code makes things way too complicated, when they should be very simple! Tabs are not elementary; spaces are.And, another point about tabs is that it makes it a lot easier to navigate code with the carrot. I always assume people who hate hard tabs must not like arrow keys or something....You know .. I wasn't there (where "there" refers to the whole computer scene) before mice & guis. I generally think that arrow keys are not the way to go for browsing text. Just use a mouse!-[Unknown]Unknown W. Brackets wrote:That's only because they are used inconsistently. The general rule is that tabs should never be used after a non-tab character on a line. Bam, instant portability and everyone gets their own tab size.That's a good rule, but you also need to make sure that lines with tab indentation aren't being mixed with lines with space indentation. Most editors don't enforce this, but it ought to be solvable. The problem with tabs might simply be that so many text editors don't handle them correctly.
Mar 15 2006
How in the world can you write code efficiently with a mouse? If I had to use my mouse with any sort of frequency, it would probably halve my efficiency right there. Then again, I've gotten comments about my speed before. I did a lot of programming in DOS. It's all about knowing your keyboard. I don't even have to worry about saving anymore, it's a knee-jerk reaction - I just hit Alt-F-S every then and again like some people breathe. Do you use your mouse for that too? And even back then, there were editors that handled tabs well - but none that handled italics. It's not that hard to get right, some people just don't try anymore these days. -[Unknown]Unknown W. Brackets wrote:Ah, yes, that's a good point as well. I'm very careful to only use reasonable-quality editors, such as Visual Studio (which actually auto-corrects this issue and clears lines that are just whitespace if you don't type anything on them.)This is why I said it's kind of a high level concept. Too many complicated tasks to take care of. The low cohesion principle says that hard-wired tab character should be removed because putting it in ascii code makes things way too complicated, when they should be very simple! Tabs are not elementary; spaces are.And, another point about tabs is that it makes it a lot easier to navigate code with the carrot. I always assume people who hate hard tabs must not like arrow keys or something....You know .. I wasn't there (where "there" refers to the whole computer scene) before mice & guis. I generally think that arrow keys are not the way to go for browsing text. Just use a mouse!-[Unknown]Unknown W. Brackets wrote:That's only because they are used inconsistently. The general rule is that tabs should never be used after a non-tab character on a line. Bam, instant portability and everyone gets their own tab size.That's a good rule, but you also need to make sure that lines with tab indentation aren't being mixed with lines with space indentation. Most editors don't enforce this, but it ought to be solvable. The problem with tabs might simply be that so many text editors don't handle them correctly.
Mar 15 2006
Unknown W. Brackets wrote:How in the world can you write code efficiently with a mouse? If I had to use my mouse with any sort of frequency, it would probably halve my efficiency right there. Then again, I've gotten comments about my speed before. I did a lot of programming in DOS. It's all about knowing your keyboard. I don't even have to worry about saving anymore, it's a knee-jerk reaction - I just hit Alt-F-S every then and again like some people breathe. Do you use your mouse for that too? And even back then, there were editors that handled tabs well - but none that handled italics. It's not that hard to get right, some people just don't try anymore these days. -[Unknown]I wasn't talking about coding, but about browing. I always hit ctrl-s subcounciously, even more, I always hit ctrl-a ctrl-c when I post anything on the net. I was talking about "browsing" code. If you know your shortcuts, you should also know that ctrl-arrow takes you to the next word aotumatically, no matter how many spaces/tabs there are. I've seen work in DOS too.
Mar 15 2006
Unknown W. Brackets skrev:How in the world can you write code efficiently with a mouse? If I had to use my mouse with any sort of frequency, it would probably halve my efficiency right there. Then again, I've gotten comments about my speed before.I would agree with you totally had I not watched one particular professor coding using only his mouse. Copy-paste, copy-paste,... He was incredibly fast. Unbelievable. He only resorted to using his keyboard when really necessary, like typing in a new identifier or similar. So, you can code efficiently with a mouse. I've seen it. :) /Oskar
Mar 15 2006
Jarrett Billingsley wrote:"Hasan Aljudy" <hasan.aljudy gmail.com> wrote in message news:dv84il$1q3l$1 digitaldaemon.com...Look at some code that was written with different tab settings from yours. Now have someone else who uses the "tabs to spaces" setting make some changes and look at it again. Things get jumbled enough if people only indent standard code lines, but if they're trying to line up declarations or functions parameters or whatever as well, this process can quickly produce unreadable formatting. SeanStick to the tab key all you want. I want to kill the ascii code for the "so called" tab character!!I never understood this whole hard-tab-hating stuff. Everything lines up on nice neat columns, they can be set to whatever width you want, and it's much quicker to move through them using the arrow keys. What's so great about spaces?
Mar 14 2006
Jarrett Billingsley skrev:"Hasan Aljudy" <hasan.aljudy gmail.com> wrote in message news:dv84il$1q3l$1 digitaldaemon.com...I think Emacs is to blame for many of the problems with hard tabs. Emacs doesn't use tabs for indentation. It uses spaces. Tabs are used to optimize the number of spaces needed. The problem with this is that the tab width isn't standardized. (8 used to be more or less the standard, but not anymore) This has some implications. If you use emacs with 3 character indentation, (and the default 8 character tab width) you get: (. is space, - is tabbed space) ...if (1) { ......if (1) { --------.if (1) { --------....if (1) { --------.......if (1) { ----------------..if (1) { etc... (The Phobos and DMD front end sources are an example of using 4 character indentation and width 8 tabs: ....for (i = 0; i < global.params.objfiles->dim; i++) ....{ --------if (i) --------....cmdbuf.writeByte('+'); Even when you use the same tab width as indentation width, you get problems when lining up lists, like: void myfunc(int firstArgument, --------....int secondArgument, --------....int thirdArgument) IMO, the best strategy would be to use tabs for indentation and spaces for alignment. That way, the code would look good at any tab-size setting (adjustable by user preference) and arguments would still line up properly. /OskarStick to the tab key all you want. I want to kill the ascii code for the "so called" tab character!!I never understood this whole hard-tab-hating stuff. Everything lines up on nice neat columns, they can be set to whatever width you want, and it's much quicker to move through them using the arrow keys. What's so great about spaces?
Mar 15 2006
Same here. It allows me to work with other developers who have different opinions on what size a tab should be. I can't understand why people hate it so much, except that they want things to look exactly like *they* like them. -[Unknown]"Hasan Aljudy" <hasan.aljudy gmail.com> wrote in message news:dv83h7$1op3$1 digitaldaemon.com...Good point. I say the clurpit is the evil tab character, it should be removed from all computer systems in the world!! :P The "Tab" keyboard button should just be a `macro` for 4 spaces, not a separate character!!I take personal offense at that. ;) I will use hard tabs till the day I die. You will have to pry my tab key from my cold, dead hands.
Mar 14 2006
Jarrett Billingsley skrev:"Hasan Aljudy" <hasan.aljudy gmail.com> wrote in message news:dv83h7$1op3$1 digitaldaemon.com...And I take offewnse as well! It should be two speces! Four spaces is a waste of space. But then tabs are good. If everyone would use tabs properly, everyone could view and edir their code with as huuuuuge of more visually pleasing, tab size as they like. // FredrikGood point. I say the clurpit is the evil tab character, it should be removed from all computer systems in the world!! :P The "Tab" keyboard button should just be a `macro` for 4 spaces, not a separate character!!I take personal offense at that.
Mar 16 2006
The "Tab" keyboard button should just be a `macro` for 4 spaces, not a separate character!!If you were using emacs you could change to that in 1/2 a second :P. Charlie Hasan Aljudy wrote:J C Calvarese wrote:In article <dv4uo9$1337$1 digitaldaemon.com>, Hasan Aljudy says...Good point. I say the clurpit is the evil tab character, it should be removed from all computer systems in the world!! :P The "Tab" keyboard button should just be a `macro` for 4 spaces, not a separate character!!Charles wrote:I disagree. Python will complain about invisible errors due to its reverence for whitespace. I wasted a ridiculous amount of time before I figured out that Python wouldn't compile my program because it saw a difference between a tab and the equivalent number of spaces. Now I know what I did was wrong, but a tab and several spaces still look identical on my screen. IMHO Python would be better if it used something visible (such of {}, begin/end, etc.). jcc7That's a completely irrational argument.IMHO that article is more making fun of languages with which the author doesn't like than anything else.Yes, but alot of his rants ring true for me. Like whitespace and python , any language that makes whitespace meaningful is hard to take seriously.
Mar 15 2006
Charles wrote:> The "Tab" keyboard button should just be a `macro` for 4 spaces, not a > separate character!! If you were using emacs you could change to that in 1/2 a second :P. CharlieI know, alot of edtiros have that option, but not all of them, hence the inconsistency. It should be that way *everywhere*.
Mar 15 2006
It's an interesting article with some quotable tidbits, but that the author ended by praising Ruby with such enthusiasm made me skeptical of his earlier claims. I also thought it was a bit odd that his section on Lisp was really a section on Emacs. About the only conclusion I could draw is that "Emacs is awesome and the tool of uber gurus, and Emacs is tightly integrated with Lisp, therefore Lisp is uber cool but also only for uber-gurus." And even that's a stretch. Sean
Mar 14 2006
Sean Kelly wrote:It's an interesting article with some quotable tidbits, but that the author ended by praising Ruby with such enthusiasm made me skeptical of his earlier claims. I also thought it was a bit odd that his section on Lisp was really a section on Emacs. About the only conclusion I could draw is that "Emacs is awesome and the tool of uber gurus, and Emacs is tightly integrated with Lisp, therefore Lisp is uber cool but also only for uber-gurus." And even that's a stretch. SeanEmacs is extremely difficult to grok for someone brought up in the RAD era. It gives me a headache trying to use it "like a guru" :-P
Mar 14 2006
Kyle Furlong wrote:Sean Kelly wrote:Real "gurus" don't need computers; they carry everything in their head!!! /sarcasm Seriously, why does relying on old technology makes a person a "guru"?It's an interesting article with some quotable tidbits, but that the author ended by praising Ruby with such enthusiasm made me skeptical of his earlier claims. I also thought it was a bit odd that his section on Lisp was really a section on Emacs. About the only conclusion I could draw is that "Emacs is awesome and the tool of uber gurus, and Emacs is tightly integrated with Lisp, therefore Lisp is uber cool but also only for uber-gurus." And even that's a stretch. SeanEmacs is extremely difficult to grok for someone brought up in the RAD era. It gives me a headache trying to use it "like a guru" :-P
Mar 15 2006
Hasan Aljudy wrote:Kyle Furlong wrote:Actually, that wasn't my point at all. Editing text in Emacs is, once learned, many times faster than "normal" text editing. My point was that this method of editing takes much practice and latent skill to master. Yes Emacs is old, but old does not mean outdated or less useful, in this case it means (almost) bug free.Sean Kelly wrote:Real "gurus" don't need computers; they carry everything in their head!!! /sarcasm Seriously, why does relying on old technology makes a person a "guru"?It's an interesting article with some quotable tidbits, but that the author ended by praising Ruby with such enthusiasm made me skeptical of his earlier claims. I also thought it was a bit odd that his section on Lisp was really a section on Emacs. About the only conclusion I could draw is that "Emacs is awesome and the tool of uber gurus, and Emacs is tightly integrated with Lisp, therefore Lisp is uber cool but also only for uber-gurus." And even that's a stretch. SeanEmacs is extremely difficult to grok for someone brought up in the RAD era. It gives me a headache trying to use it "like a guru" :-P
Mar 15 2006