Jump to page: 1 26  
Page
Thread overview
Why I don't like D
Feb 10, 2004
Matthias Becker
Feb 10, 2004
Felix
Feb 10, 2004
Ben Hinkle
Feb 10, 2004
Andy Friesen
Feb 10, 2004
imr1984
Feb 10, 2004
Ben Hinkle
Feb 11, 2004
J Anderson
Feb 10, 2004
Ant
Feb 10, 2004
Alex A. B.
Feb 10, 2004
C
Feb 11, 2004
Walter
Feb 11, 2004
Matthias Becker
Feb 11, 2004
Alex A. B.
Feb 11, 2004
Matthias Becker
Feb 11, 2004
Sean Kelly
Feb 11, 2004
Matthias Becker
Feb 11, 2004
Walter
Feb 16, 2004
Robert Jones
Feb 21, 2004
Walter
Feb 16, 2004
Robert Jones
Feb 16, 2004
J Anderson
Feb 17, 2004
Robert Jones
Feb 17, 2004
davepermen
Feb 17, 2004
Robert Jones
Feb 12, 2004
KTC
Feb 12, 2004
Sean Kelly
Feb 12, 2004
KTC
Feb 12, 2004
Walter
Feb 13, 2004
Luke D
Feb 13, 2004
Luke D
Feb 13, 2004
Sean Kelly
Feb 14, 2004
Ilya Minkov
Feb 10, 2004
Ilya Minkov
Feb 10, 2004
MikkelFJ
Feb 11, 2004
Walter
Feb 10, 2004
Ben Woodhead
Feb 10, 2004
Manfred Nowak
Feb 10, 2004
larry cowan
Feb 10, 2004
Vathix
Feb 10, 2004
Ilya Minkov
Feb 10, 2004
Vathix
Feb 10, 2004
Derek Parnell
Feb 10, 2004
kinghajj
Feb 11, 2004
davepermen
Feb 11, 2004
Matthias Becker
Feb 11, 2004
davepermen
Feb 11, 2004
Matthias Becker
Feb 11, 2004
davepermen
Feb 12, 2004
Ilya Minkov
Feb 12, 2004
Walter
Feb 11, 2004
Phill
Feb 11, 2004
Walter
February 10, 2004
"It's a practical language for practical programmers who need to get the job done quickly, reliably, and leave behind maintainable, easy to understand code."

This is a good example for why I don't like D. I like coding. I do it a lot in my freetime. I don't want to get the job done quickly. I want coding to be fun.


"D is the culmination of decades of experience implementing compilers for many diverse languages, and attempting to construct large projects using those languages. D draws inspiration from those other languages (most especially C++) and tempers it with experience and real world practicality"

Rigth. There is nothing new in D. Somebody said somethin like "if a language doesn't change the way you think it's not worth learning it", and D doesn't change anything. It just took some fatures of C++, some of C# and some of Eiffel. That's all, at least that's what it feels like.



"C++ implements things like resizable arrays and string concatenation as part of the standard library, not as part of the core language. Not being part of the core language has several suboptimal consequences."

If you want to know which suboptimal consequences it has you have to read the
articel about D-"strings" (which are actualy simple array, which feels wrong in
a oo-world. It feels much too technical, rather than natural.)
Anyway, in this text you can read that D has a ~-operator to concatenate arrays
(which feels unnatural, as you are used to only use it as a not in C-like
languages). I don't get what this has to do with whether arrays are part of the
language or the library. D can overload operators, so this isn't a plus. The
next point is slicing. Why can't I implement slicing in a self written class?
D-arrays can implicitly converted to a pointer of the same type. This isn't
something special. You could write your own string class that allows implicit
casts to char *. But implicit casts are considered as being bad. So this isn't a
plus, too.
Than "String Switch Statements". Can I do it with any arrays or only with arrays
of chars. I hate inconsitency. If I can do it with any array, why can't I do it
with a self written class, if I want it to be similar to an array (e.g. a list).
As said I hate inconsitency, so this is another point why I don't like D and not
a feature.



But let's leave this string/array-topic.
"Support multi-paradigm programming, i.e. at a minimum support imperative,
structured, object oriented, and generic programming paradigms". But "C++
programmers tend to program in particular islands of the language, i.e. getting
very proficient using certain features while avoiding other feature sets. While
the code is usually portable from compiler to compiler, it can be hard to port
it from programmer to programmer. A great strength of C++ is that it can support
many radically different styles of programming - but in long term use, the
overlapping and contradictory styles are a hindrance."
D's philosophy is too complex for me in this case. I don't understand it. But
how to like a thing, that you don't even understand?


"The general look of D is like C and C++."
As C is very ugly, this is plain stupid. Most people I talked to (not all) don't
like C's general look. So I consider this as being bad.
"This makes it easier to learn and port code to D."
hmm, in C++ '=' means copy, in D it means sometimes reference assignment. Such
very small differences will make it very hard to port code.


"Transitioning from C/C++ to D should feel natural, the programmer will not have to learn an entirely new way of doing things."

I like learning new stuff. I started with a simple Basic a long time ago. Than I learned C++, it was like "WOW". It was amazing. Everything was different. That was what I liked. Than I learned a bit Haskell and I had the same feeling. You can write three lines of code and they do the same thing that would need 50 lines of code in C++, without the feeling of a scripting language with over sepcialized features, that help in some cases but aren't usable in not that common cases. Than I learnd Objective-C and again it changed the way I thought was changed. Lisp was different again, ... . Than I leaned D and it was boring.



"Who D is For [...] Those who decide the promise of C++ object oriented
programming is not fulfilled due to the complexity of it."
So it's for stupid people?





Well these were some specific points mentioned in D's specification. But it's a more general feeling, that I can't describe. Sorry.


February 10, 2004
Nobody says that you are wrong. But if D is just a little bit better than C or
C++ it means progress and it should have its chance.
Basic to D will be as fun as Basic to C.
Even if not the perfect language I think is a step ahead.
Coding should be fun, right; 1. coding with C is fun, but also in D. and 2.
sometimes life is not a matter of fun but one of "to get the job done quickly,
reliably, and leave behind maintenable..." as Walter states it.
I agree with you, but searching only "the Morgana girl" (??? is it ok in
English???) or the Arcadia (Nirvana) is sometimes just an endless quest.


In article <c0afm3$nfg$1@digitaldaemon.com>, Matthias Becker says...
>
>"It's a practical language for practical programmers who need to get the job done quickly, reliably, and leave behind maintainable, easy to understand code."
>
>This is a good example for why I don't like D. I like coding. I do it a lot in my freetime. I don't want to get the job done quickly. I want coding to be fun.
>
>
>"D is the culmination of decades of experience implementing compilers for many diverse languages, and attempting to construct large projects using those languages. D draws inspiration from those other languages (most especially C++) and tempers it with experience and real world practicality"
>
>Rigth. There is nothing new in D. Somebody said somethin like "if a language doesn't change the way you think it's not worth learning it", and D doesn't change anything. It just took some fatures of C++, some of C# and some of Eiffel. That's all, at least that's what it feels like.
>
>
>
>"C++ implements things like resizable arrays and string concatenation as part of the standard library, not as part of the core language. Not being part of the core language has several suboptimal consequences."
>
>If you want to know which suboptimal consequences it has you have to read the
>articel about D-"strings" (which are actualy simple array, which feels wrong in
>a oo-world. It feels much too technical, rather than natural.)
>Anyway, in this text you can read that D has a ~-operator to concatenate arrays
>(which feels unnatural, as you are used to only use it as a not in C-like
>languages). I don't get what this has to do with whether arrays are part of the
>language or the library. D can overload operators, so this isn't a plus. The
>next point is slicing. Why can't I implement slicing in a self written class?
>D-arrays can implicitly converted to a pointer of the same type. This isn't
>something special. You could write your own string class that allows implicit
>casts to char *. But implicit casts are considered as being bad. So this isn't a
>plus, too.
>Than "String Switch Statements". Can I do it with any arrays or only with arrays
>of chars. I hate inconsitency. If I can do it with any array, why can't I do it
>with a self written class, if I want it to be similar to an array (e.g. a list).
>As said I hate inconsitency, so this is another point why I don't like D and not
>a feature.
>
>
>
>But let's leave this string/array-topic.
>"Support multi-paradigm programming, i.e. at a minimum support imperative,
>structured, object oriented, and generic programming paradigms". But "C++
>programmers tend to program in particular islands of the language, i.e. getting
>very proficient using certain features while avoiding other feature sets. While
>the code is usually portable from compiler to compiler, it can be hard to port
>it from programmer to programmer. A great strength of C++ is that it can support
>many radically different styles of programming - but in long term use, the
>overlapping and contradictory styles are a hindrance."
>D's philosophy is too complex for me in this case. I don't understand it. But
>how to like a thing, that you don't even understand?
>
>
>"The general look of D is like C and C++."
>As C is very ugly, this is plain stupid. Most people I talked to (not all) don't
>like C's general look. So I consider this as being bad.
>"This makes it easier to learn and port code to D."
>hmm, in C++ '=' means copy, in D it means sometimes reference assignment. Such
>very small differences will make it very hard to port code.
>
>
>"Transitioning from C/C++ to D should feel natural, the programmer will not have to learn an entirely new way of doing things."
>
>I like learning new stuff. I started with a simple Basic a long time ago. Than I learned C++, it was like "WOW". It was amazing. Everything was different. That was what I liked. Than I learned a bit Haskell and I had the same feeling. You can write three lines of code and they do the same thing that would need 50 lines of code in C++, without the feeling of a scripting language with over sepcialized features, that help in some cases but aren't usable in not that common cases. Than I learnd Objective-C and again it changed the way I thought was changed. Lisp was different again, ... . Than I leaned D and it was boring.
>
>
>
>"Who D is For [...] Those who decide the promise of C++ object oriented
>programming is not fulfilled due to the complexity of it."
>So it's for stupid people?
>
>
>
>
>
>Well these were some specific points mentioned in D's specification. But it's a more general feeling, that I can't describe. Sorry.
>
>


February 10, 2004
ok, I'll bite.

| "It's a practical language for practical programmers who need to get the
job
| done quickly, reliably, and leave behind maintainable, easy to understand
code."

[snip]

| I like learning new stuff. I started with a simple Basic a long time ago.
Than I
| learned C++, it was like "WOW". It was amazing. Everything was different.
That
| was what I liked. Than I learned a bit Haskell and I had the same feeling.
You
| can write three lines of code and they do the same thing that would need
50
| lines of code in C++, without the feeling of a scripting language with
over
| sepcialized features, that help in some cases but aren't usable in not
that
| common cases. Than I learnd Objective-C and again it changed the way I
thought
| was changed. Lisp was different again, ... . Than I leaned D and it was
boring.

[snip]

You'll notice that the first quote didn't include being "not boring" (though I don't find it boring anyway). The goal isn't to be "amazing" - it's to be practical. I don't know what you are looking for in a language - I guess you look for new ideas - but for me this is exactly what I'm looking for.

Without getting into a detailed argument about the other points you make, my general impression is that you seem to expect D to be much more like C++ than it is.

-Ben


February 10, 2004
Comments embedded.

Matthias Becker wrote:

> "It's a practical language for practical programmers who need to get the job
> done quickly, reliably, and leave behind maintainable, easy to understand code."
> 
> This is a good example for why I don't like D. I like coding. I do it a lot in
> my freetime. I don't want to get the job done quickly. I want coding to be fun.
> 

So do I.  I like D because it lets me write code instead of bending over backwards to make the C++ compiler happy.

> 
> "D is the culmination of decades of experience implementing compilers for many
> diverse languages, and attempting to construct large projects using those
> languages. D draws inspiration from those other languages (most especially C++)
> and tempers it with experience and real world practicality"
> 
> Rigth. There is nothing new in D. Somebody said somethin like "if a language
> doesn't change the way you think it's not worth learning it", and D doesn't
> change anything. It just took some fatures of C++, some of C# and some of
> Eiffel. That's all, at least that's what it feels like.

Some languages are simply incremental improvements on what has come before.  C++, Java, and C# all fall into this category.  So does D. It's merely a matter of how much you like the designers decision of how to comingle all those concepts.

> 
> But let's leave this string/array-topic.
> "Support multi-paradigm programming, i.e. at a minimum support imperative,
> structured, object oriented, and generic programming paradigms". But "C++
> programmers tend to program in particular islands of the language, i.e. getting
> very proficient using certain features while avoiding other feature sets. While
> the code is usually portable from compiler to compiler, it can be hard to port
> it from programmer to programmer. A great strength of C++ is that it can support
> many radically different styles of programming - but in long term use, the
> overlapping and contradictory styles are a hindrance."
> D's philosophy is too complex for me in this case. I don't understand it. But
> how to like a thing, that you don't even understand?
> 

It means that a programmer should be able to know D in its entirety. The C++ spec is about 700 pages, as I understand it.  People tend to learn pieces of C++ well, and use those pieces exclusively.  The result is programmers who have difficulty reading code written by others.

> 
> "The general look of D is like C and C++."
> As C is very ugly, this is plain stupid. Most people I talked to (not all) don't
> like C's general look. So I consider this as being bad.
> "This makes it easier to learn and port code to D."
> hmm, in C++ '=' means copy, in D it means sometimes reference assignment. Such
> very small differences will make it very hard to port code.
> 

No matter what the syntax looks like, someone will call it ugly.  You just can't please everyone. :)

I don't think the reference semantics are a big deal.  Java coders get along just fine.

> 
> "Transitioning from C/C++ to D should feel natural, the programmer will not have
> to learn an entirely new way of doing things."
> 
> I like learning new stuff. I started with a simple Basic a long time ago. Than I
> learned C++, it was like "WOW". It was amazing. Everything was different. That
> was what I liked. Than I learned a bit Haskell and I had the same feeling. You
> can write three lines of code and they do the same thing that would need 50
> lines of code in C++, without the feeling of a scripting language with over
> sepcialized features, that help in some cases but aren't usable in not that
> common cases. Than I learnd Objective-C and again it changed the way I thought
> was changed. Lisp was different again, ... . Than I leaned D and it was boring.
> 

I felt quite the opposite.  I thought (and still think) that writing D is like writing C++, except without having to do all the memory babysitting or compiler appeasing. (or like writing Java without being crammed into Sun's idea of what prototypical OO code should be)

> 
> 
> "Who D is For [...] Those who decide the promise of C++ object oriented
> programming is not fulfilled due to the complexity of it."
> So it's for stupid people?
> 

Quite the contrary: lazy programmers are usually smart programmers. ;)

> 
> Well these were some specific points mentioned in D's specification. But it's a
> more general feeling, that I can't describe. Sorry.
> 

A lot of the people coming to D are frustrated with C++'s complexity. Different perspectives are good. :)

 -- andy
February 10, 2004
I totally agree with andy. the only the thing i dont like about D is its name.

In article <c0aqqs$18sv$1@digitaldaemon.com>, Andy Friesen says...
>
>Comments embedded.
>
>Matthias Becker wrote:
>
>> "It's a practical language for practical programmers who need to get the job done quickly, reliably, and leave behind maintainable, easy to understand code."
>> 
>> This is a good example for why I don't like D. I like coding. I do it a lot in my freetime. I don't want to get the job done quickly. I want coding to be fun.
>> 
>
>So do I.  I like D because it lets me write code instead of bending over backwards to make the C++ compiler happy.
>
>> 
>> "D is the culmination of decades of experience implementing compilers for many diverse languages, and attempting to construct large projects using those languages. D draws inspiration from those other languages (most especially C++) and tempers it with experience and real world practicality"
>> 
>> Rigth. There is nothing new in D. Somebody said somethin like "if a language doesn't change the way you think it's not worth learning it", and D doesn't change anything. It just took some fatures of C++, some of C# and some of Eiffel. That's all, at least that's what it feels like.
>
>Some languages are simply incremental improvements on what has come before.  C++, Java, and C# all fall into this category.  So does D. It's merely a matter of how much you like the designers decision of how to comingle all those concepts.
>
>> 
>> But let's leave this string/array-topic.
>> "Support multi-paradigm programming, i.e. at a minimum support imperative,
>> structured, object oriented, and generic programming paradigms". But "C++
>> programmers tend to program in particular islands of the language, i.e. getting
>> very proficient using certain features while avoiding other feature sets. While
>> the code is usually portable from compiler to compiler, it can be hard to port
>> it from programmer to programmer. A great strength of C++ is that it can support
>> many radically different styles of programming - but in long term use, the
>> overlapping and contradictory styles are a hindrance."
>> D's philosophy is too complex for me in this case. I don't understand it. But
>> how to like a thing, that you don't even understand?
>> 
>
>It means that a programmer should be able to know D in its entirety. The C++ spec is about 700 pages, as I understand it.  People tend to learn pieces of C++ well, and use those pieces exclusively.  The result is programmers who have difficulty reading code written by others.
>
>> 
>> "The general look of D is like C and C++."
>> As C is very ugly, this is plain stupid. Most people I talked to (not all) don't
>> like C's general look. So I consider this as being bad.
>> "This makes it easier to learn and port code to D."
>> hmm, in C++ '=' means copy, in D it means sometimes reference assignment. Such
>> very small differences will make it very hard to port code.
>> 
>
>No matter what the syntax looks like, someone will call it ugly.  You just can't please everyone. :)
>
>I don't think the reference semantics are a big deal.  Java coders get along just fine.
>
>> 
>> "Transitioning from C/C++ to D should feel natural, the programmer will not have to learn an entirely new way of doing things."
>> 
>> I like learning new stuff. I started with a simple Basic a long time ago. Than I learned C++, it was like "WOW". It was amazing. Everything was different. That was what I liked. Than I learned a bit Haskell and I had the same feeling. You can write three lines of code and they do the same thing that would need 50 lines of code in C++, without the feeling of a scripting language with over sepcialized features, that help in some cases but aren't usable in not that common cases. Than I learnd Objective-C and again it changed the way I thought was changed. Lisp was different again, ... . Than I leaned D and it was boring.
>> 
>
>I felt quite the opposite.  I thought (and still think) that writing D is like writing C++, except without having to do all the memory babysitting or compiler appeasing. (or like writing Java without being crammed into Sun's idea of what prototypical OO code should be)
>
>> 
>> 
>> "Who D is For [...] Those who decide the promise of C++ object oriented
>> programming is not fulfilled due to the complexity of it."
>> So it's for stupid people?
>> 
>
>Quite the contrary: lazy programmers are usually smart programmers. ;)
>
>> 
>> Well these were some specific points mentioned in D's specification. But it's a more general feeling, that I can't describe. Sorry.
>> 
>
>A lot of the people coming to D are frustrated with C++'s complexity. Different perspectives are good. :)
>
>  -- andy


February 10, 2004
In article <c0afm3$nfg$1@digitaldaemon.com>, Matthias Becker says...

Thank you for letting us know. Many would just leave
never enriching our experience with their point of view.
(ok sounds corny you try to say that in your second language)

[sniped]

>
>I like learning new stuff. I started with a simple Basic a long time ago. Than I learned C++, it was like "WOW". It was amazing. Everything was different. That was what I liked. Than I learned a bit Haskell and I had the same feeling. You can write three lines of code and they do the same thing that would need 50 lines of code in C++, without the feeling of a scripting language with over sepcialized features, that help in some cases but aren't usable in not that common cases. Than I learnd Objective-C and again it changed the way I thought was changed. Lisp was different again, ... . Than I leaned D and it was boring.
>
>

you say: "like learning", "different", "changed the way I thought", "different again"...

that's the problem. If you actully wanted to create something
(not saying you don't, just remember a progaming language is
suppose to let you solve your problem not being a game)
you would see why D has it's place amoung all the other languages.

I share your concerns (for lack of a better word) on the OO
support but I believe a full OO library will have to the build
somehow (maybe we will loose the swich on string - small detail).

Of course D is not perfect.
This last few months with D, making suggestions and seeing how D evolved
made me sure that to have a perfect language you have to write your own.

BTW I don't know if you forgot but on all the languages you listed
you are missing assembler, try it, you'll like it
(I don't know about the intel 386 though... try to check which
is the best one but choose one that you actually have the
hardware support)

Ant


February 10, 2004
> This is a good example for why I don't like D. I like coding. I do it a
lot in
> my freetime. I don't want to get the job done quickly. I want coding to be
fun.

You're latent masochist. ;)

Practical programmer has fun not writing the code, but implementing ideas, and has ultimate fun when it finally works.

>
> Rigth. There is nothing new in D. Somebody said somethin like "if a
language
> doesn't change the way you think it's not worth learning it", and D
doesn't
> change anything. It just took some fatures of C++, some of C# and some of Eiffel. That's all, at least that's what it feels like.
>

I can hardly remember any language in last decade which does really change
something.
If you want to change a way you think you need to learn logic and functional
programming.
And believe me any modern functional language isn't really something new.
D was designed to be native code Java/C# and in this area it doesn't have
much competition.

>
> If you want to know which suboptimal consequences it has you have to read
the
> articel about D-"strings" (which are actualy simple array, which feels
wrong in
> a oo-world. It feels much too technical, rather than natural.)

You are wrong. Representing string as Object is technical too, its not
natural at all.
What's so natural is in representing text as a bunch of string Objects,
which are by
nature not connected with text's meaning, etc. Representing string as array
gives
you understanding of what it really is - simple array of characters.

> Than "String Switch Statements". Can I do it with any arrays or only with
arrays
> of chars. I hate inconsitency. If I can do it with any array, why can't I
do it
> with a self written class, if I want it to be similar to an array (e.g. a
list).
> As said I hate inconsitency, so this is another point why I don't like D
and not
> a feature.

Well that's the only point I do agree.


> D's philosophy is too complex for me in this case. I don't understand it.
But
> how to like a thing, that you don't even understand?

That's your problem. Why should anyone learn that you don't understand nor like it? This info is redundant.

> As C is very ugly, this is plain stupid. Most people I talked to (not all)
don't
> like C's general look. So I consider this as being bad.

So why are you still ranting here? Do you reallly suppose D will go 180
degrees
back or what!? C is not ugly, but ugly are the people who do not understand
the natural flow of life.

> I like learning new stuff. I started with a simple Basic a long time ago.
Than I
> learned C++, it was like "WOW". It was amazing. Everything was different.
That
> was what I liked. Than I learned a bit Haskell and I had the same feeling.
You
> was changed. Lisp was different again, ... . Than I leaned D and it was
boring.

Then skip it. Or go back and learn a little more. You're looking like a
novice student.
D wasn't made for amazement. Furthermore if you'll learn some more
functional/logic
programming I think you'll completely stick to it, unless you need some
practical
programming to be done.

Personally I like to learn new stuff too. Well I have learned a bit more
than you
(and probably there are people who learned a lot more here), but finally I
was
bored by neverending quest for programming knowledge. It all ended up with
a ton of compilers all over my disk, numerous small programs in more than 20
languages written
by me and OVERALL FRUSTRATION. I can write a hundred-page text with rant
like "what's so bad in it!" about any language you can possibly name. That
doesn't
change anything. You should stop sometime learning new stuff and start doing
something really significant. By accident you will find out that all the
stuff you learned
before is plain pathetic.


February 10, 2004
Matthias Becker wrote:
> This is a good example for why I don't like D. I like coding. I do it a lot in
> my freetime. I don't want to get the job done quickly. I want coding to be fun.

No risk, no fun? Missing lengthy debugging orgies? :>

> "D is the culmination of decades of experience implementing compilers for many
> diverse languages, and attempting to construct large projects using those
> languages. D draws inspiration from those other languages (most especially C++)
> and tempers it with experience and real world practicality"
> 
> Rigth. There is nothing new in D. Somebody said somethin like "if a language
> doesn't change the way you think it's not worth learning it", and D doesn't
> change anything. It just took some fatures of C++, some of C# and some of
> Eiffel. That's all, at least that's what it feels like.

The combination makes it new. Eiffel was innovative but increasingly unusable. C# ripped off from us, among others. C++ lacks of features but the user may substitute cludges for many cases.

D drastically reduces the code size requiered to accomplish a task, which also makes code easier to work with.

> "C++ implements things like resizable arrays and string concatenation as part of
> the standard library, not as part of the core language. Not being part of the
> core language has several suboptimal consequences."
> 
> If you want to know which suboptimal consequences it has you have to read the
> articel about D-"strings" (which are actualy simple array, which feels wrong in
> a oo-world. It feels much too technical, rather than natural.)
> Anyway, in this text you can read that D has a ~-operator to concatenate arrays
> (which feels unnatural, as you are used to only use it as a not in C-like
> languages). I don't get what this has to do with whether arrays are part of the
> language or the library. D can overload operators, so this isn't a plus. The
> next point is slicing. Why can't I implement slicing in a self written class? D-arrays can implicitly converted to a pointer of the same type. This isn't
> something special. You could write your own string class that allows implicit
> casts to char *. But implicit casts are considered as being bad. So this isn't a
> plus, too.

D strings don't quite cut the string semantics. This is something to be healed from a standard library. However, real arrays profit to any other use, including string processing.

The ~ operator is important, since it allows to keep + free to later mean memberwise addition. In general, this memberwise operations on the whole array would allow to later trivially write an optimizing compiler which uses up SIMD instruction sets, thus boosting D to a different performance level than most C++ compilers.

And i thought there was opSlice overload in the spec? If it doesn't work, report it as a bug.

C++ is very technical, D is almost as technical as C++, but allows for higher absraction levels. This reminds me, i wanted to write an article explaining where C++ object system is broken, where D has gotten it better and why, and point out one point which has to be heeled in D.

> Than "String Switch Statements". Can I do it with any arrays or only with arrays
> of chars. I hate inconsitency. If I can do it with any array, why can't I do it
> with a self written class, if I want it to be similar to an array (e.g. a list).
> As said I hate inconsitency, so this is another point why I don't like D and not
> a feature.

Switch statement should work on everything which has toHash defined.

> But let's leave this string/array-topic.
> "Support multi-paradigm programming, i.e. at a minimum support imperative,
> structured, object oriented, and generic programming paradigms". But "C++
> programmers tend to program in particular islands of the language, i.e. getting
> very proficient using certain features while avoiding other feature sets. While
> the code is usually portable from compiler to compiler, it can be hard to port
> it from programmer to programmer. A great strength of C++ is that it can support
> many radically different styles of programming - but in long term use, the
> overlapping and contradictory styles are a hindrance."
> D's philosophy is too complex for me in this case. I don't understand it. But
> how to like a thing, that you don't even understand?

What exactly is too complex? There should be a well-defined way to accomplish every task. When language constructs match semantics, every new programmer feels like at home with the code. This has already been one of the major advantages of e.g. Delphi.

> "The general look of D is like C and C++."
> As C is very ugly, this is plain stupid. Most people I talked to (not all) don't
> like C's general look. So I consider this as being bad.
> "This makes it easier to learn and port code to D."
> hmm, in C++ '=' means copy, in D it means sometimes reference assignment. Such
> very small differences will make it very hard to port code.

It is not feasible to port C++ code, but C code can be copied over with changes which are easy to search for. There are tons of tiny snippets which people like to reuse, so while systems cannot be easily moved into D (they should be not ported, but connected), the snippets retain their validity.

I agree that C syntax is flawed. But unfortunately, most people are too narrow-minded to get past learning a new syntax (probably because C was such a pain that they are afraid :> ), and since we intend D to become generally popular, in the industry, and everywhere, this would (sadly) stay the major selling point. There is nothing that can be done with it. I am also a fan of langages of another breed, but seeing that they have no perspective i keep to D.

> "Transitioning from C/C++ to D should feel natural, the programmer will not have
> to learn an entirely new way of doing things."
> 
> I like learning new stuff. I started with a simple Basic a long time ago. Than I
> learned C++, it was like "WOW". It was amazing. Everything was different. That
> was what I liked. Than I learned a bit Haskell and I had the same feeling. You
> can write three lines of code and they do the same thing that would need 50
> lines of code in C++, without the feeling of a scripting language with over
> sepcialized features, that help in some cases but aren't usable in not that
> common cases. Than I learnd Objective-C and again it changed the way I thought
> was changed. Lisp was different again, ... . Than I leaned D and it was boring.

We don't force you. If you don't like it go away or give us an idea of how to improve it.

The advantages of D lie in detail. But they would allow to massively reduce the strain on a programmer who makes himself aquainted with the features, and make systems more provably robust, easier to integrate and change.

> "Who D is For [...] Those who decide the promise of C++ object oriented
> programming is not fulfilled due to the complexity of it."
> So it's for stupid people?

Wait! You just said D was too complex for you!

C++ complexity is not so structural - D contains many more constructs and could thus be considered more complex. C++ complexity is from often unnatural interaction of features. Just go and read any serious article on, e.g. exception safety. Maybe on unsafe upcasting and by-value vs. by-reference vs. by-pointer. Maybe on threads. Maybe on extending STL and where you may run over trouble. Maybe of incompatibe proxy objects. Too many topics too list up. Though this is all written, this is from experience of 100s of people, and no single person would be able to foresee any possible consequence from this or another code snippet in a system large enough. So rules need to be set, limiting the language, which tend to be broken... D offers an in-language solution to many problems, and we target more. Which means setting a syntax apart for this or another solution. For me, D offers me a possibility to say what i mean instaed of thinking of remote consequnces. So it *does* change the way of programming, as compared to C++ at least. Not to say that i actually adore C++ for some purposes, but i find D better for most use.

> Well these were some specific points mentioned in D's specification. But it's a
> more general feeling, that I can't describe. Sorry.

You are tired of learning programming languages which you don't use. :>

-eye

February 10, 2004
Hey,

It seems the people that like d have the same things in mind. :)
I personally really enjoy programming but like you I also don't want to be
done quick, I want to program. Now here is my solution to that problem when
working with d. I just take on bigger tasks :).
The simpler the language the bigger the project that I want to work on. I
end up spending the same about of time but I have more to say about my
accomplishment:

asm -> hello world
c++ -> scene manager
d -> the whole damn video game. :)

Later, Ben


"Matthias Becker" <Matthias_member@pathlink.com> wrote in message news:c0afm3$nfg$1@digitaldaemon.com...
> "It's a practical language for practical programmers who need to get the
job
> done quickly, reliably, and leave behind maintainable, easy to understand
code."
>
> This is a good example for why I don't like D. I like coding. I do it a
lot in
> my freetime. I don't want to get the job done quickly. I want coding to be
fun.
>
>
> "D is the culmination of decades of experience implementing compilers for
many
> diverse languages, and attempting to construct large projects using those languages. D draws inspiration from those other languages (most especially
C++)
> and tempers it with experience and real world practicality"
>
> Rigth. There is nothing new in D. Somebody said somethin like "if a
language
> doesn't change the way you think it's not worth learning it", and D
doesn't
> change anything. It just took some fatures of C++, some of C# and some of Eiffel. That's all, at least that's what it feels like.
>
>
>
> "C++ implements things like resizable arrays and string concatenation as
part of
> the standard library, not as part of the core language. Not being part of
the
> core language has several suboptimal consequences."
>
> If you want to know which suboptimal consequences it has you have to read
the
> articel about D-"strings" (which are actualy simple array, which feels
wrong in
> a oo-world. It feels much too technical, rather than natural.)
> Anyway, in this text you can read that D has a ~-operator to concatenate
arrays
> (which feels unnatural, as you are used to only use it as a not in C-like languages). I don't get what this has to do with whether arrays are part
of the
> language or the library. D can overload operators, so this isn't a plus.
The
> next point is slicing. Why can't I implement slicing in a self written
class?
> D-arrays can implicitly converted to a pointer of the same type. This
isn't
> something special. You could write your own string class that allows
implicit
> casts to char *. But implicit casts are considered as being bad. So this
isn't a
> plus, too.
> Than "String Switch Statements". Can I do it with any arrays or only with
arrays
> of chars. I hate inconsitency. If I can do it with any array, why can't I
do it
> with a self written class, if I want it to be similar to an array (e.g. a
list).
> As said I hate inconsitency, so this is another point why I don't like D
and not
> a feature.
>
>
>
> But let's leave this string/array-topic.
> "Support multi-paradigm programming, i.e. at a minimum support imperative,
> structured, object oriented, and generic programming paradigms". But "C++
> programmers tend to program in particular islands of the language, i.e.
getting
> very proficient using certain features while avoiding other feature sets.
While
> the code is usually portable from compiler to compiler, it can be hard to
port
> it from programmer to programmer. A great strength of C++ is that it can
support
> many radically different styles of programming - but in long term use, the
> overlapping and contradictory styles are a hindrance."
> D's philosophy is too complex for me in this case. I don't understand it.
But
> how to like a thing, that you don't even understand?
>
>
> "The general look of D is like C and C++."
> As C is very ugly, this is plain stupid. Most people I talked to (not all)
don't
> like C's general look. So I consider this as being bad.
> "This makes it easier to learn and port code to D."
> hmm, in C++ '=' means copy, in D it means sometimes reference assignment.
Such
> very small differences will make it very hard to port code.
>
>
> "Transitioning from C/C++ to D should feel natural, the programmer will
not have
> to learn an entirely new way of doing things."
>
> I like learning new stuff. I started with a simple Basic a long time ago.
Than I
> learned C++, it was like "WOW". It was amazing. Everything was different.
That
> was what I liked. Than I learned a bit Haskell and I had the same feeling.
You
> can write three lines of code and they do the same thing that would need
50
> lines of code in C++, without the feeling of a scripting language with
over
> sepcialized features, that help in some cases but aren't usable in not
that
> common cases. Than I learnd Objective-C and again it changed the way I
thought
> was changed. Lisp was different again, ... . Than I leaned D and it was
boring.
>
>
>
> "Who D is For [...] Those who decide the promise of C++ object oriented
> programming is not fulfilled due to the complexity of it."
> So it's for stupid people?
>
>
>
>
>
> Well these were some specific points mentioned in D's specification. But
it's a
> more general feeling, that I can't describe. Sorry.
>
>


February 10, 2004
Well said , I agree with all of your points ( Alex ).

>Than I
>learned C++, it was like "WOW". It was amazing. Everything was different.
That
>was what I liked. Than I learned a bit Haskell and I had the same feeling.
You
>can write three lines of code and they do the same thing that would need 50 lines of code in C++, without the feeling of a scripting language with over sepcialized features, that help in some cases but aren't usable in not that common cases. Than I learnd Objective-C and again it changed the way I thought

And after all this learning , when are you going to put it to use ??

C

"Alex A. B." <freshmind@fromru.com> wrote in message news:c0b14b$1iqj$1@digitaldaemon.com...
>
> > This is a good example for why I don't like D. I like coding. I do it a
> lot in
> > my freetime. I don't want to get the job done quickly. I want coding to
be
> fun.
>
> You're latent masochist. ;)
>
> Practical programmer has fun not writing the code, but implementing ideas, and has ultimate fun when it finally works.
>
> >
> > Rigth. There is nothing new in D. Somebody said somethin like "if a
> language
> > doesn't change the way you think it's not worth learning it", and D
> doesn't
> > change anything. It just took some fatures of C++, some of C# and some
of
> > Eiffel. That's all, at least that's what it feels like.
> >
>
> I can hardly remember any language in last decade which does really change
> something.
> If you want to change a way you think you need to learn logic and
functional
> programming.
> And believe me any modern functional language isn't really something new.
> D was designed to be native code Java/C# and in this area it doesn't have
> much competition.
>
> >
> > If you want to know which suboptimal consequences it has you have to
read
> the
> > articel about D-"strings" (which are actualy simple array, which feels
> wrong in
> > a oo-world. It feels much too technical, rather than natural.)
>
> You are wrong. Representing string as Object is technical too, its not
> natural at all.
> What's so natural is in representing text as a bunch of string Objects,
> which are by
> nature not connected with text's meaning, etc. Representing string as
array
> gives
> you understanding of what it really is - simple array of characters.
>
> > Than "String Switch Statements". Can I do it with any arrays or only
with
> arrays
> > of chars. I hate inconsitency. If I can do it with any array, why can't
I
> do it
> > with a self written class, if I want it to be similar to an array (e.g.
a
> list).
> > As said I hate inconsitency, so this is another point why I don't like D
> and not
> > a feature.
>
> Well that's the only point I do agree.
>
>
> > D's philosophy is too complex for me in this case. I don't understand
it.
> But
> > how to like a thing, that you don't even understand?
>
> That's your problem. Why should anyone learn that you don't understand nor like it? This info is redundant.
>
> > As C is very ugly, this is plain stupid. Most people I talked to (not
all)
> don't
> > like C's general look. So I consider this as being bad.
>
> So why are you still ranting here? Do you reallly suppose D will go 180
> degrees
> back or what!? C is not ugly, but ugly are the people who do not
understand
> the natural flow of life.
>
> > I like learning new stuff. I started with a simple Basic a long time
ago.
> Than I
> > learned C++, it was like "WOW". It was amazing. Everything was
different.
> That
> > was what I liked. Than I learned a bit Haskell and I had the same
feeling.
> You
> > was changed. Lisp was different again, ... . Than I leaned D and it was
> boring.
>
> Then skip it. Or go back and learn a little more. You're looking like a
> novice student.
> D wasn't made for amazement. Furthermore if you'll learn some more
> functional/logic
> programming I think you'll completely stick to it, unless you need some
> practical
> programming to be done.
>
> Personally I like to learn new stuff too. Well I have learned a bit more
> than you
> (and probably there are people who learned a lot more here), but finally I
> was
> bored by neverending quest for programming knowledge. It all ended up with
> a ton of compilers all over my disk, numerous small programs in more than
20
> languages written
> by me and OVERALL FRUSTRATION. I can write a hundred-page text with rant
> like "what's so bad in it!" about any language you can possibly name. That
> doesn't
> change anything. You should stop sometime learning new stuff and start
doing
> something really significant. By accident you will find out that all the
> stuff you learned
> before is plain pathetic.
>
>


« First   ‹ Prev
1 2 3 4 5 6