Does D have too many features?
SomeDude
lovelydear at mailmetrash.com
Sun Apr 29 00:28:52 PDT 2012
On Sunday, 29 April 2012 at 06:11:00 UTC, Era Scarecrow wrote:
>>> My list:
>>> * I'd start with getting rid of foreach completely. (not just
>>> foreach_reverse).
>
>> C++ was criticized for a long time for NOT having foreach in
>> the language. Now they have
>> http://www2.research.att.com/~bs/C++0xFAQ.html#for. Also
>> people were so desperate to gave it that even this
>> http://www.boost.org/doc/libs/1_49_0/doc/html/foreach.html was
>> considered a nice addition to boost (and still part of it).
>>
>> Obviously somehow you want to go into the opposite direction.
>> Beats me.
>
> If it simplifies code, makes it easier, and is more
> consistent, having it is better than not having it. Like walter
> said in one of the recent videos (going native 2012) regarding
> having an assembler in a language: 'When you need it, you got
> to have it'. True most features can be re-written as work
> arounds, but if you don't have to then why insist on it?
>
> Backtracking by removing key features which make the language
> pleasant may throw us back into the C and C++ days. Yes you can
> do full memory management yourself, and use pointers and pass
> it's size to functions. We have fat pointers, so why insist on
> backtracking? At the worst case if it isn't breaking the
> language leave it alone. If you have good reasons for it,
> explain them in detail. At best those of us who know better
> will laugh and move on.
One of the ideas that I see regularly thrown around is to remove
more and more things from the core language and put them in the
libraries, because it's possible, and it would make for a thinner
languages.
Well, these are good reasons to do it, but there are many good
reasons NOT to do it.
Some general reasons:
1. code is uglier when in the libraries. One must add imports,
and template code is uglier and harder to write than plain old
code.
2. template code makes bigger size executables
3. error messages are more cryptic
4. we like to think that putting things in the library helps
changing things easier, but my opinion is, changing fundamental
structures in the standard library may actually break more code
than changing them in the core language, because of the heavy
interplay between modules, and also because the standard library
is probably less well tested (in terms of number of regression
tests) than the core language.
5. it makes work much harder for tools and parsers
Specific to D:
6. my impression is, from what I've seen in Bugzilla, that Phobos
bugs tend to stay around longer, because there is not enough
workforce on it
These a lot of drawbacks in my opinion. Basically, one of the
main reasons the D code is clean, is because the core languages
features so many useful things, with a nice, clean syntax. Moving
them to the standard library will automatically make the code
uglier and the language harder to use.
More information about the Digitalmars-d
mailing list