What are the worst parts of D?
user via Digitalmars-d
digitalmars-d at puremagic.com
Wed Sep 24 01:53:50 PDT 2014
On Wednesday, 24 September 2014 at 06:28:21 UTC, Manu via
Digitalmars-d wrote:
> On 20 September 2014 22:39, Tofu Ninja via Digitalmars-d
> <digitalmars-d at puremagic.com> wrote:
>> There was a recent video[1] by Jonathan Blow about what he
>> would want in a
>> programming language designed specifically for game
>> development. Go, Rust,
>> and D were mentioned and his reason for not wanting to use D
>> is is that it
>> is "too much like C++" although he does not really go into it
>> much and it
>> was a very small part of the video it still brings up some
>> questions.
>>
>> What I am curious is what are the worst parts of D? What sort
>> of things
>> would be done differently if we could start over or if we were
>> designing a
>> D3? I am not asking to try and bash D but because it is
>> helpful to know
>> what's bad as well as good.
>>
>> I will start off...
>> GC by default is a big sore point that everyone brings up
>> "is" expressions are pretty wonky
>> Libraries could definitely be split up better
>>
>> What do you think are the worst parts of D?
>>
>> [1] https://www.youtube.com/watch?v=TH9VCN6UkyQ
>
> Personally, after years of use, my focus on things that really
> annoy
> me has shifted away from problems with the language, and firmly
> towards basic practicality and productivity concerns.
> I'm for addressing things that bother the hell out of me every
> single
> day. I should by all reason be more productive in D, but after
> 6 years
> of experience, I find I definitely remain less productive,
> thanks
> mostly to tooling and infrastructure.
>
> 1. Constant rejection of improvements because "OMG breaking
> change!".
> Meanwhile, D has been breaking my code on practically every
> release
> for years. I don't get this, reject changes that are
> deliberately
> breaking changes which would make significant improvements, but
> allow
> breaking changes anyway because they are bug fixes? If the
> release
> breaks code, then accept that fact and make some real proper
> breaking
> changes that make D substantially better! It is my opinion that
> D
> adopters don't adopt D because it's perfect just how it is and
> they
> don't want it to improve with time, they adopt D *because they
> want it
> to improve with time*! That implies an acceptance (even a
> welcoming)
> of breaking changes.
>
> 2. Tooling is still insufficient. I use Visual Studio, and while
> VisualD is good, it's not great. Like almost all tooling
> projects,
> there is only one contributor, and I think this trend presents
> huge
> friction to adoption. Tooling is always factored outside of the
> D
> community and their perceived realm of responsibility. I'd like
> to see
> tooling taken into the core community and issues/bugs treated
> just as
> seriously as issues in the compiler/language itself.
>
> 3. Debugging is barely ever considered important. I'd love to
> see a
> concerted focus on making the debug experience excellent. Iain
> had a
> go at GDB, I understand there is great improvement there.
> Sadly, we
> recently lost the developer of Mago (a Windows debugger).
> There's lots
> of work we could do here, and I think it's of gigantic impact.
>
> 4. 'ref' drives me absolutely insane. It seems so trivial, but
> 6 years
> later, I still can't pass an rvalue->ref (been discussed
> endlessly),
> create a ref local, and the separation from the type system
> makes it a
> nightmare in generic code. This was a nuisance for me on day-1,
> and
> has been grinding me down endlessly for years. It has now far
> eclipsed
> my grudges with the GC/RC, or literally anything else about the
> language on account of frequency of occurrence; almost daily.
i couldn't agree more. i would like to add, that coming from D1's
clean and nice syntax - D2 becomes a syntactic monster, that is
highly irritating and hard to get used to. its littered with @
like a scripting language. that really sucks!
More information about the Digitalmars-d
mailing list