March 13, 2015
On 3/13/15 2:02 PM, Almighty Bob wrote:
> The language reference is pretty abysmal too. EG...
>
> The language "Introduction" spends all it's time talking about phases of
> compilation. That's like introducing someone to driving by explaining
> how the internal combustion engine works.
>
> The page on templates starts with scope and instantiation details. The
> examples at the start have alias parameters which aren't explained until
> half way down the page.
>
> I mean why no start the template page with something that people will
> find familiar and then build on that?
>
> It has that feel all the way through. You go looking for things and they
> never seem to be where you expect, or they are so tersely explained, it
> feels like it's a reference for people already experts in D. Which is
> fine if that's what it's meant to be ... but if you want to attract new
> people you need a "guided tour" rather than a "technical spec".

The language reference is fine if arid. One shouldn't learn the language from its reference. It should be, however, complemented by tutorials. -- Andrei

March 13, 2015
On 3/13/15 2:22 PM, Russel Winder via Digitalmars-d wrote:
> On Fri, 2015-03-13 at 10:31 -0700, Andrei Alexandrescu via Digitalmars-d
> wrote:
> […]
>
>>
>>     File("/tmp/a").byChunk(4096).joiner.startsWith(s)
>>
> […]
>
> Conversely, this is exactly the sort of expression that Scala (and
> Haskell sort of, Haskell insists on function application syntax) are
> getting huge positive press for being able to write. As is Python. And
> Java. And C++.

How do you mean "conversely"? Maybe you meant "incidentally"? -- Andrei
March 13, 2015
On 3/13/15 3:14 PM, Walter Bright wrote:
> On 3/13/2015 12:01 PM, weaselcat wrote:
>> On Friday, 13 March 2015 at 18:55:18 UTC, Walter Bright wrote:
>>> On 3/13/2015 3:34 AM, bearophile wrote:
>>>> "Strict mode" is a D2 with immutable+@safe+pure by default,
>>>
>>> Note that you can get this largely by starting a module with the
>>> following:
>>>
>>>    immutable @safe pure:
>>>
>>
>> As far as I'm aware, there's no way to mark functions impure this way
>> other than
>> lexical location. Am I incorrect?
>
> You are correct, which is why D also supports:
>
>     immutable @safe pure {
>        ... nice declarations ...
>     }
>
>     ... naughty declarations ...

The bottom line is we need a way to undo attributes. -- Andrei

March 14, 2015
> [1] The problem is that all these nice Python and R implementations are practically useless for real world applications. Too slow, too cumbersome, too many dependencies. It has to be rewritten anyway. (I'd be happy, if they used at least C.)

No, no, no. Your "real world" doesn't seem to include all the engineering industries. I work for an engineer company and use python everywhere for application code, and of course matlab-simulink for hard realtime code.

For us, Russel's comment on super structure is right on target.

- engineer.
March 14, 2015
On Fri, Mar 13, 2015 at 6:45 AM, Russel Winder via Digitalmars-d < digitalmars-d@puremagic.com> wrote:

> The removal of shared memory multi-threading in favour of using processes and channels should never be underestimated as a Really Good Thing™ that other native code languages (*) have failed to do anything about. Thus Go wins, others lose.
>

Except that Go does not really remove shared memory multithreading; it is still possible to get data races (which is why they have a race detector). They provide channels, but nothing is preventing races other than convention. On the other hand, Rust (a native code language) offers a much superior solution, with compile-time enforcement of data sharing.

--
Ziad


March 14, 2015
On Saturday, 14 March 2015 at 00:34:35 UTC, Ziad Hatahet wrote:
> On Fri, Mar 13, 2015 at 6:45 AM, Russel Winder via Digitalmars-d <
> digitalmars-d@puremagic.com> wrote:
>
>> The removal of shared memory multi-threading in favour of using
>> processes and channels should never be underestimated as a Really Good
>> Thing™ that other native code languages (*) have failed to do anything
>> about. Thus Go wins, others lose.
>>
>
> Except that Go does not really remove shared memory multithreading; it is
> still possible to get data races (which is why they have a race detector).
> They provide channels, but nothing is preventing races other than
> convention. On the other hand, Rust (a native code language) offers a much
> superior solution, with compile-time enforcement of data sharing.
>
> --
> Ziad

How very true, but, by the time you run into data races, you are pretty much commited to go.

Sad.
March 14, 2015
On Fri, Mar 13, 2015 at 04:14:30PM -0700, Andrei Alexandrescu via Digitalmars-d wrote:
> On 3/13/15 3:14 PM, Walter Bright wrote:
> >On 3/13/2015 12:01 PM, weaselcat wrote:
> >>On Friday, 13 March 2015 at 18:55:18 UTC, Walter Bright wrote:
> >>>On 3/13/2015 3:34 AM, bearophile wrote:
> >>>>"Strict mode" is a D2 with immutable+@safe+pure by default,
> >>>
> >>>Note that you can get this largely by starting a module with the following:
> >>>
> >>>   immutable @safe pure:
> >>>
> >>
> >>As far as I'm aware, there's no way to mark functions impure this way other than lexical location. Am I incorrect?
> >
> >You are correct, which is why D also supports:
> >
> >    immutable @safe pure {
> >       ... nice declarations ...
> >    }
> >
> >    ... naughty declarations ...
> 
> The bottom line is we need a way to undo attributes. -- Andrei

Which people have been clamoring for, for a long time now.


T

-- 
Beware of bugs in the above code; I have only proved it correct, not tried it. -- Donald Knuth
March 14, 2015
On Friday, 13 March 2015 at 22:02:42 UTC, weaselcat wrote:
> On Friday, 13 March 2015 at 21:52:30 UTC, Almighty Bob wrote:
>> Well I figured that was probably the case.
>>
>> It's just not very smart to have that as the only obvious guide to the language on the home page.
>
> There's a "Books and Articles" dropdown on the frontpage, Ali's book is the first link.
>
> It's very good. I refer to it constantly.

I would bet someone new to the D website and wanting to learn the language will click on things in this order...

1. Tutorial, only to be taken to the first chapter of a book that is not free.
2. Language reference, to be taken to terse reference docs for experienced users.
3. If they are still around they may try "Articles". When they click on articles up pops a page entitled..."Real Close to the Machine: Floating Point in D".

Why does clicking on "Articles" open an article on floating point math?

Why is Ali's book just linked as "Online Book (free)".

Where's the "getting Started"???

Yes the information is there but its "hidden in the bottom of a locked filing cabinet stuck in a disused lavatory with a sign on the door saying Beware of the Leopard."

March 14, 2015
On Saturday, 14 March 2015 at 01:40:50 UTC, Almighty Bob wrote:
>
> 1. Tutorial, only to be taken to the first chapter of a book that is not free.
> 2. Language reference, to be taken to terse reference docs for experienced users.
> 3. If they are still around they may try "Articles". When they click on articles up pops a page entitled..."Real Close to the Machine: Floating Point in D".
>
> Why does clicking on "Articles" open an article on floating point math?
>
> Why is Ali's book just linked as "Online Book (free)".
>
> Where's the "getting Started"???

This is what i proposed but i guess we have to step up and write
a "Proper" getting started page...
March 14, 2015
On 3/13/15 5:33 PM, engnieer wrote:
>
>> [1] The problem is that all these nice Python and R implementations
>> are practically useless for real world applications. Too slow, too
>> cumbersome, too many dependencies. It has to be rewritten anyway. (I'd
>> be happy, if they used at least C.)
>
> No, no, no. Your "real world" doesn't seem to include all the
> engineering industries. I work for an engineer company and use python
> everywhere for application code, and of course matlab-simulink for hard
> realtime code.
>
> For us, Russel's comment on super structure is right on target.

I, too, have friends who use panda and such at work, -- Andrei


3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19