Jump to page: 1 29  
Page
Thread overview
Origins of the D Programming Language
Nov 30, 2018
bauss
Nov 30, 2018
Neia Neutuladh
Nov 30, 2018
Adam D. Ruppe
Nov 30, 2018
Walter Bright
Nov 30, 2018
Adam D. Ruppe
Dec 01, 2018
Walter Bright
Dec 01, 2018
Neia Neutuladh
Dec 01, 2018
H. S. Teoh
Dec 01, 2018
Walter Bright
Dec 01, 2018
H. S. Teoh
Dec 01, 2018
Walter Bright
Dec 01, 2018
Paolo Invernizzi
Dec 01, 2018
Kagamin
Dec 01, 2018
Paolo Invernizzi
Dec 01, 2018
Adam D. Ruppe
Dec 01, 2018
H. S. Teoh
Dec 01, 2018
H. S. Teoh
Dec 01, 2018
Nicholas Wilson
Dec 01, 2018
Nicholas Wilson
Dec 01, 2018
Neia Neutuladh
Dec 01, 2018
H. S. Teoh
Dec 01, 2018
Neia Neutuladh
Dec 01, 2018
Jacob Carlborg
Dec 02, 2018
Jonathan M Davis
Dec 01, 2018
Jacob Carlborg
Dec 01, 2018
Michelle Long
Dec 01, 2018
Tony
Dec 01, 2018
Joakim
Dec 01, 2018
Tony
Dec 01, 2018
rikki cattermole
Dec 01, 2018
Kagamin
Dec 01, 2018
H. S. Teoh
Dec 01, 2018
Paolo Invernizzi
Dec 01, 2018
H. S. Teoh
Dec 01, 2018
Paolo Invernizzi
Dec 07, 2018
Q. Schroll
Dec 01, 2018
Adam D. Ruppe
Dec 01, 2018
Kagamin
Dec 01, 2018
Walter Bright
Dec 04, 2018
Kagamin
Dec 01, 2018
Timon Gehr
Dec 02, 2018
Jonathan M Davis
Dec 01, 2018
Adam D. Ruppe
Dec 02, 2018
Jonathan M Davis
Dec 04, 2018
Jacob Carlborg
Dec 05, 2018
Jonathan M Davis
Dec 05, 2018
Nemanja Boric
Dec 05, 2018
Nemanja Boric
Dec 05, 2018
Jonathan M Davis
Dec 03, 2018
Iain Buclaw
Dec 03, 2018
Q. Schroll
Dec 04, 2018
H. S. Teoh
Dec 04, 2018
Neia Neutuladh
Dec 04, 2018
H. S. Teoh
Dec 04, 2018
Russel Winder
Dec 04, 2018
H. S. Teoh
Dec 06, 2018
Russel Winder
Dec 04, 2018
jmh530
Dec 04, 2018
Adam D. Ruppe
Dec 04, 2018
Adam D. Ruppe
Dec 04, 2018
H. S. Teoh
Dec 04, 2018
Adam D. Ruppe
Dec 05, 2018
Patrick Schluter
Dec 05, 2018
H. S. Teoh
Dec 04, 2018
H. S. Teoh
Dec 04, 2018
Guillaume Piolat
Dec 07, 2018
Dmitry Olshansky
Dec 07, 2018
Nicholas Wilson
Dec 07, 2018
mate
Dec 16, 2018
anon reviewer
Dec 17, 2018
anon reviewer
Dec 18, 2018
anon reviewer
Dec 24, 2018
fouad2400
Dec 22, 2018
anon reviewer
Jan 03, 2019
Sameer Pradhan
Sep 01, 2019
Max Haughton
Sep 01, 2019
Mike Parker
Sep 01, 2019
Les De Ridder
Sep 01, 2019
rjframe
Sep 08, 2019
Jacob Carlborg
November 30, 2018
Over the past few months, Walter, Mike, and myself have been working on a draft submission for the HOPL 2020 conference (History of Programming Languages).

The submission proceeds in several stages. Currently we've been through one round of preliminary review. Here is the current draft:

http://erdani.com/hopl2020-draft.pdf

We'd appreciate feedback and additional historical details.


Thanks,

Andrei (on behalf of Walter and Mike as well)
November 30, 2018
On Friday, 30 November 2018 at 19:34:58 UTC, Andrei Alexandrescu wrote:
> Over the past few months, Walter, Mike, and myself have been working on a draft submission for the HOPL 2020 conference (History of Programming Languages).
>
> The submission proceeds in several stages. Currently we've been through one round of preliminary review. Here is the current draft:
>
> http://erdani.com/hopl2020-draft.pdf
>
> We'd appreciate feedback and additional historical details.
>
>
> Thanks,
>
> Andrei (on behalf of Walter and Mike as well)

Just Wow! That's going to take some time to read.

Just skimmed through and it all looks well written and very informative.

Good job to the three of you!
November 30, 2018
On Friday, 30 November 2018 at 19:34:58 UTC, Andrei Alexandrescu wrote:
> Over the past few months, Walter, Mike, and myself have been working on a draft submission for the HOPL 2020 conference (History of Programming Languages).
>
> The submission proceeds in several stages. Currently we've been through one round of preliminary review. Here is the current draft:
>
> http://erdani.com/hopl2020-draft.pdf
>
> We'd appreciate feedback and additional historical details.
>
>
> Thanks,
>
> Andrei (on behalf of Walter and Mike as well)

D's default thread local is worth documenting (and may be concurrency by message passing doll supporting shared memory model).

std.parallelism is worth a mention too.



November 30, 2018
On Fri, 30 Nov 2018 14:34:58 -0500, Andrei Alexandrescu wrote:
> We'd appreciate feedback and additional historical details.

The structure of the document doesn't reflect history. It also doesn't reflect the uniqueness of the described features; conditional compilation was present in C since time out of mind, for instance, and it's relatively high on the list.

Is there any logic to the order?

Line 658:
> mixin would just be an arcane way to write code, were it not for CTFE.

In point of fact, mixin predates CTFE. Templates could assemble strings at compile time. I used that technique in a couple ancient projects.

Line 698:
> In D, a user-defined attribute is a value of any type, as long as it is known during compilation.

Currently, a UDA is an *expression* that does not need to have a type. You can use a package or a module as a UDA. People commonly use a raw type as a UDA.

There is also a bug that lets you use non-compile-time-constants as UDAs as long as you insert a pragma(msg) in the right place, but that's probably not something you want to advertise in this document.

Line 708:
> To add one or more attributes to a declaration, the programmer uses the following syntax

The syntax demonstrated:

    @("Smith", 1.2, "2018-08-31") int myFunction(int x);

The implication I got from the text was that that was the only way to attach multiple annotations to a declaration. However, Java-style also works:

    @("Smith") @(1.2) @("2018-08-31") int myFunction(int x);
November 30, 2018
On Friday, 30 November 2018 at 21:54:17 UTC, Arun Chandrasekaran wrote:
> On Friday, 30 November 2018 at 19:34:58 UTC, Andrei concurrency by message passing doll supporting shared memory model

s/doll/and also/



November 30, 2018
I'd point out under the version statement thing that setting versions (`version=identifier`) only works in one module. This avoids having to redo imports, like you have to with C's #define something followed by an #include. (this is page 12)

Fits in with the theme of D trying to avoid missteps of the past.


On page 18, you talk about VRP, but the only date given is 2017. As I recall, VRP was first added more like... 2008? I don't remember exactly, but it was definitely a long time before 2017.

When was unittest added? It has been there as long as I can remember. I kinda recall seeing "Design by contract" on the Digital Mars site as early as 2002, and I think D had those bits almost from the beginning. Might be good to confirm that - it is notable that D was ahead of the TDD fad. Downloading the oldest version of D source I can find, it proves it was indeed in the language from at least November 2002.

Also, `immutable` barely gets a reference at all, though I consider it to be one of the major turning points of the language! There was a LOT of talk about making thread safe stuff just work in 2007 and immutable was a big part of that... and one of the few that actually survived into general use (the unique stuff Bartosz was talking about was similarly big but we never did it).

I also like the history of immutable btw: remember when it was called "invariant" and why it changed?



And, it says early history is lost because of no version control. This is basically false - the changelog goes all the way back and contains zips of binaries and source of most those versions, the oldest being dmd 0.50 from Nov 20, 2002.

The backend source isn't there, but the frontend source is, along with compiled binaries. We can learn a lot from that if we want to dig a little.

https://digitalmars.com/d/1.0/changelog1.html#new038

it is kinda fun to pull an old version and see if any of your code still works on it :P
November 30, 2018
Some good comments!

On 11/30/2018 2:23 PM, Adam D. Ruppe wrote:
> And, it says early history is lost because of no version control. This is basically false - the changelog goes all the way back and contains zips of binaries and source of most those versions, the oldest being dmd 0.50 from Nov 20, 2002.

By early history, I meant before 0.50.

A peculiar thing about my memory is I remember events and such, but do not recall when those events happened, unless there is some sort of anchor associated with it. In going through old emails, logs, etc., to attach dates to memories I was surprised at the actual order of things.

My father kept a diary of his WW2 experience. He told me that decades later, he read it and was shocked at how it contradicted his memories.

Github is such an indispensable tool. It's great for collaborative development, but nobody mentions how awesome it is to establish a provenance for when changes were made and by whom. It ends the legal challenges I've had in the past trying to prove that someone had stolen code from me, when in fact they had stolen it from me.

(Just last month, having a registered copyright of the source code to Empire from 1978 saved my bacon yet again.)
November 30, 2018
On Friday, 30 November 2018 at 23:12:57 UTC, Walter Bright wrote:
> By early history, I meant before 0.50.

Oh, I see, early by your reckoning :P

I don't remember exactly when I first saw D, though I do know I first used dmc in either later 2000 or early 2001, and remember seeing D some time later when I went to download dmc again. I think it was 2003ish.

My first thought was "looks like Java, I'll pass" lol. Of course, I reevaluated that decision by 2006 and you know where that led :)


So yeah to me, early history is anything before 2005, but I can see how it is different to you.

> A peculiar thing about my memory is I remember events and such, but do not recall when those events happened, unless there is some sort of anchor associated with it. In going through old emails, logs, etc., to attach dates to memories I was surprised at the actual order of things.

Yes, indeed. I keep referencing times based on which church missionaries are here. They change every other month, whereas the rest of my life is similar. So I frequently am like "oh I made that when Kim and Kate were here..." then that anchors it. Probably sounds silly to the outside world, but it works fairly well for me.

Similarly, the reason I remember the dmc usage was because I had to use the high school's internet at the time, so being in that location adds to the memory. I never realized how recently my usage of it was compared to when Digital Mars was started though! wow.

My 2006 note is just because I pulled out my old hard drive and checked the last modify dates on some of those .d files! Before I did that though, I could have sworn I didn't use D until 2007.


> Github is such an indispensable tool.

Lemme slightly correct you here: it is git that tracks this stuff and distributes the history to several third parties who can corroborate you.

Github, of course, helps coordinate with those other people, and their brand name surely helps in recognition, but I don't wanna give it too much credit because I do think it is important that we remember that it can be replaced... and probably will replace them someday. (They would have recently gone under if not bailed out by Microsoft!) Specific companies come and go, but the underlying methodology outlives that.

> (Just last month, having a registered copyright of the source code to Empire from 1978 saved my bacon yet again.)

awesome. I haven't played Empire for years. Maybe I should break it out again... but last time, I disappeared for a few whole days ;)
November 30, 2018
On 11/30/2018 3:55 PM, Adam D. Ruppe wrote:
>> Github is such an indispensable tool.
> 
> Lemme slightly correct you here: it is git that tracks this stuff and distributes the history to several third parties who can corroborate you.
> 
> Github, of course, helps coordinate with those other people, and their brand name surely helps in recognition, but I don't wanna give it too much credit because I do think it is important that we remember that it can be replaced... and probably will replace them someday. (They would have recently gone under if not bailed out by Microsoft!) Specific companies come and go, but the underlying methodology outlives that.

I mentioned Github instead of just git because being a third party I think it would be very difficult to fake a Github provenance, while a git repository stored on your own disk would be fake-able.

As for switching to another repository, we imported to Github the data from the public repository we used at the time, and that would be done again were there a better replacement for Github. So I'm not concerned about it.
December 01, 2018
On Fri, 30 Nov 2018 16:10:49 -0800, Walter Bright wrote:
> On 11/30/2018 3:55 PM, Adam D. Ruppe wrote:
>>> Github is such an indispensable tool.
>> 
>> Lemme slightly correct you here: it is git that tracks this stuff and distributes the history to several third parties who can corroborate you.
>> 
>> Github, of course, helps coordinate with those other people, and their brand name surely helps in recognition, but I don't wanna give it too much credit because I do think it is important that we remember that it can be replaced... and probably will replace them someday. (They would have recently gone under if not bailed out by Microsoft!) Specific companies come and go, but the underlying methodology outlives that.
> 
> I mentioned Github instead of just git because being a third party I think it would be very difficult to fake a Github provenance, while a git repository stored on your own disk would be fake-able.

Github seems to trust whatever you give it. For example:

https://github.com/ldc-developers/ldc/commits/master? after=fe76eeee4e17cc4df8fb08016f55fbad7ffe723c+419

Those commits are from before Github existed.
« First   ‹ Prev
1 2 3 4 5 6 7 8 9