D Language 2.0

Nick Sabalausky a at a.a
Sun Jan 17 23:05:14 PST 2010


 "Daniel" <dan.from.tokyo at gmail.com> wrote in message 
news:hj0pvc$2sil$1 at digitalmars.com...
>

Haven't we already had enough posts about "I don't like D2 because it 
doesn't add *enough* stuff"? Fuck, people, this shit takes time!

> D still takes 80kb just to print "hello world" to the prompt.
We *just* had a large debate over whether or not 200k was a problem for a 
"hello world". And now we're getting bellyaching over a measly 80k? WTF?

Sure, it certainly makes a big difference on embedded stuff, but...well, see 
a couple paragraphs below:

> When are we going to fix things so stuff is only
> imported if it's used?

When there aren't far more important things to take care of.

> I went to write a small program for an embedded device, but because of 
> this I had to
> abandon and rewrite it in C - and I have to work through a bit to find 
> where the program actually starts in IDA
> Pro.

D isn't even available for embedded platforms yet, AFAIK. Certainly not D2 
or DMD or in a real robust form anyway. And yea, I'd be one of the first 
people to agree that's a *major* missed opportunity, but there's only two 
real things to do about it: 1. help make it happen or 2. not whine about it. 
But until real embedded D actually does happen, trying to trim out a few k 
is worthless.

>
> Const does not provide me any guarantees that I couldn't already get with 
> in/out/inout and function contracts.
> It does not guarantee that a value will not change because D doesn't 
> control the execution environment, what
> const does is declare that it won't be changed by the program itself.  We 
> can already check that automatically.

> My problem is that now we have six dozen extra rules and a few more 
> keywords because of it.

Function contracts are run-time. As such, they are absolutely no substitute 
for const, which is compile-time. If you don't have any problem with 1. 
bogging down execution with useless processing that could have already been 
handled at compile-time and 2. ignoring errors at compile-time so that they 
may-or-may-not be caught at run-time, then that's what those 
dynamic-language toys are for.

The in/out/inout are only for function parameters and are not as 
fine-grained as const, so they're no substitute either.

And if you don't care for const, don't use it.

>
> D is still aimed at the i486,

Yea! That's terrible! Let's just deprecate anything less than 64-bit 
quad-core, because anything less than top-of-the-line is useless.

And I don't want to hear that damn "but that's all that the stores sell!" 
strawman that I've heard a thousand times because everyone knows damn well 
that's not all that's *actually in use*.

> and is just starting to handle threading.

It's been no worse at threading than C/C++ for quite some time. It's just 
starting to have a threading model that kicks the crap out of the threading 
in the vast majority of languages out there. But that's a hell of a far cry 
from "just starting to handle threading".

> My CPU is a Core i7, which is a quad-core.

> It also has SSE4.2




1. Good for you.

2. Next week I'll sell my house to buy a 50-unit cluster of quintuple-cores 
with 1TB RAM each, and start bitching about any software or language that 
supports a pathetic, measly non-cluster with merely 8GB or so of RAM.

Then I'll buy a Porsche and bitch and moan and carry on about any road that 
allows people to drive on it with a Corvette or, god-forbid, a sedan or 
anything else with a top-speed below 250+ mph.


> It's been 20 years.
>

Let's all be consumer whores! Remember kids: "old" means "unpopular", and 
above all allse, we certainly don't want to be unpopular!

>
> cent and ucent should be available via SSE.  Over 97% of computers now 
> have it and I still can't even assign to an
> SSE register?
>

Submit a patch.

> Don Clungston had some excellent code written up in BLADE found on dsource 
> 2 years ago.  Shouldn't that have
> become part of D native?
>

Maybe. Update it, merge it, and submit a patch.

> D ought to have a way to express math without automatically executing it. 
> Some math can't execute on an x86,
> and sometimes we just want to reduce instead of execute.  Hell, if a 
> function were something we could reduce
> and see, that would count.  This also has value for optimization.
>

That would belong in a math library. See if it's already supported in one of 
the existing math libs, and if not, write it and put it on dsource.

> An AST?
>

Already an intended future feature. But we obviously can't have everything 
and have it all right now.

> D missed big on short circuit evaluation because they want to typedef 
> bool.

D does do short-circuit evaluation. Not sure what you mean about it wanting 
to typedef bool.

> I was hoping I'd be able to see
> things like ||=  &&=

Submit a path or put a feature request on bugzilla. If there's already a 
ticket for it on bugzilla, then vote on it.

> and x = y || z
>

That works just fine:

void main()
{
    bool x, y, z;
    x = y || z;
}

If it isn't doing short-circuit eval on that, then submit a patch or a 
bugzilla ticket, etc.

> I also kind of hoped we'd see standard real world unit types in D.  Like 
> sqft, meters, ohms, kg, L, Hz, seconds,
> etc. native to D.  Being able to intrinsically convert types between these 
> things would make D the most
> approachable General Programming Language for real world problems.
>

1. Considering how few languages support that, a lack of it is hardly 
something to hold against D.

2. Someone here has already made/posted a lib that does that. Don't remember 
who though, maybe they'll reply here. Or try searching the newsgroup for it. 
I know it's around somewhere.

> Thanks for your time,
> Dan

If this post comes across overly harsh and inhospitable (and I realize it 
probably does), then I really do apologize. But it's just that we've had 
these very same discussions ("A: The problem with D is it doesn't have X!" 
"B: These things take time. / Then help out.") sooo many times here already, 
I'm getting quite tired of it.








More information about the Digitalmars-d mailing list