www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.announce - NWCPP january talk

reply Walter Bright <newshound1 digitalmars.com> writes:
Bartosz has signed me up to give a presentation at the January meeting 
of the NWCPP. http://www.nwcpp.org/

I am not sure what to talk about, though. Any particular D topics you'd 
find particularly interesting?
Dec 11 2008
next sibling parent reply BCS <ao pathlink.com> writes:
Reply to Walter,

 Bartosz has signed me up to give a presentation at the January meeting
 of the NWCPP. http://www.nwcpp.org/
 
 I am not sure what to talk about, though. Any particular D topics
 you'd find particularly interesting?
 
Hard core compile time reflection a.k.a D'iss'ection I'm thinking stuff like ripping about the the template arg types and doing magic on them. I'm planning on building a column-wise struct array type that would be a good example.
Dec 11 2008
parent "Bill Baxter" <wbaxter gmail.com> writes:
On Fri, Dec 12, 2008 at 8:12 AM, BCS <ao pathlink.com> wrote:
 Reply to Walter,

 Bartosz has signed me up to give a presentation at the January meeting
 of the NWCPP. http://www.nwcpp.org/

 I am not sure what to talk about, though. Any particular D topics
 you'd find particularly interesting?
Probably the best would be to talk about what you find most interesting right now. Second to that is to ask us what we think C++ users who *don't know* D would find interesting, since probably D users on this list are not your target audience. What we would find interesting isn't that relevant.
 Hard core compile time reflection a.k.a D'iss'ection

 I'm thinking stuff like ripping about the the template arg types and doing
 magic on them. I'm planning on building a column-wise struct array type that
 would be a good example.
I like this suggestion. Many C++'ers can probably recognize how difficult it is to do anything interesting with templates in C++. And so they can appreciate the nice facilities that D brings to the table. I've recently been using this pattern: I have a template class that needs a type T that supports various operations (like a-b subtraction). But I want the user to still be able to use the class on the type T as-is as long as he can supply provide the missing functions externally. I allow this by writing the template so that it will accept *either* a T that supports all the operations, *or* a TypeTraits struct that might look like so: struct TypeTraits { alias SomeT DataType; // first thing - tells what the actual T type should be alias float ScalarType; // the type of one DataType component, e.g. DataType subAssign(ref DataType a, DataType b) { // implement a-=b here somehow (assuming DataType doesn't support it } ... } The trick is that when the user makes a MyClass!(V), I don't use V directly inside the class. I use a TraitsDeducer!(V). And TraitsDeducer!(V) is something that supports all the interface functions needed. The implementation of TraitsDeducer uses a lot of compile-time reflection to figure out what the type V can and can't do by itself. For instance if V supports a-b, but not a-=b it will implement a-=b using a = a - b. [[ Side note: What would make this a lot nicer would be if it were possible to provide out-of-class operator overloads and out-of-class extension methods. Then instead of having to use Traits.subAssign(a, b) inside the class I could use a-=b. In D2 OpDot could also be put to good use here probably. But this is D1 code.]] There's a lot of nice variations on this pattern of using a secondary "Traits" struct to let the user describe something about another type that might lack certain properties itself. But in the end it's hard to get very fancy with it in C++ because checks like I said above (use -= if it exists, otherwise use just minus) are such a pain to implement in C++. So Traits in C++ tend to just require you to supply every bit of info needed. In contrast, with D's static if and is() deductions you can make it so the Traits struct supplied by the user really only has to describe the bits that are lacking in the type. Another neat template thing to talk about : the use of "a<b" string literals for comparisons in std.algorithm is also neat, and provides a good motivation for built-in strings and compile-time functions (to do the parsing). --bb
Dec 11 2008
prev sibling next sibling parent reply John Reimer <terminal.node gmail.com> writes:
Hello Walter,

 Bartosz has signed me up to give a presentation at the January meeting
 of the NWCPP. http://www.nwcpp.org/
 
 I am not sure what to talk about, though. Any particular D topics
 you'd find particularly interesting?
 
Get back at Bartosz and tell him that you delegated him to talk about his current work on D and concurrency. ;-) In all seriousness, that's going to be a hot topic for awhile, especially in terms of D's future. You might cover all the features of D 2.0 that are important for making this a reality: 1) constants semantics 2) pure functions 3) templates/macros 4) ...and whatever implementation details Bartosz has been exploring per his blog. -JJR
Dec 11 2008
parent John Reimer <terminal.node gmail.com> writes:
Hello John,

 Hello Walter,
 
 Bartosz has signed me up to give a presentation at the January
 meeting of the NWCPP. http://www.nwcpp.org/
 
 I am not sure what to talk about, though. Any particular D topics
 you'd find particularly interesting?
 
Get back at Bartosz and tell him that you delegated him to talk about his current work on D and concurrency. ;-) In all seriousness, that's going to be a hot topic for awhile, especially in terms of D's future. You might cover all the features of D 2.0 that are important for making this a reality: 1) constants semantics 2) pure functions 3) templates/macros 4) ...and whatever implementation details Bartosz has been exploring per his blog. -JJR
Oops, I see that Bartosz just gave a talk on "Memory Fences" last month. Not sure if it was D oriented, though. Even so, maybe the the D 2.0 concurrency direction would be a good followup presentation for Walter to give from a D perspective. -JJR
Dec 11 2008
prev sibling parent reply Janderson <ask me.com> writes:
Walter Bright wrote:
 Bartosz has signed me up to give a presentation at the January meeting 
 of the NWCPP. http://www.nwcpp.org/
 
 I am not sure what to talk about, though. Any particular D topics you'd 
 find particularly interesting?
Problems in C++ that D solves. -Joel
Dec 14 2008
parent reply Walter Bright <newshound1 digitalmars.com> writes:
Janderson wrote:
 Walter Bright wrote:
 Bartosz has signed me up to give a presentation at the January meeting 
 of the NWCPP. http://www.nwcpp.org/

 I am not sure what to talk about, though. Any particular D topics 
 you'd find particularly interesting?
Problems in C++ that D solves. -Joel
A lot of people have asked me to stop talking about limitations in C++ <g> and instead concentrate on what D can do.
Dec 14 2008
parent reply Georg Wrede <georg nospam.org> writes:
Walter Bright wrote:
 Janderson wrote:
 Walter Bright wrote:

 Bartosz has signed me up to give a presentation at the January 
 meeting of the NWCPP. http://www.nwcpp.org/

 I am not sure what to talk about, though. Any particular D topics 
 you'd find particularly interesting?
Problems in C++ that D solves.
A lot of people have asked me to stop talking about limitations in C++ <g> and instead concentrate on what D can do.
So don't TALK about them. Folks are sick and tired of hype and fud anyway. Implicitly you'll address C++'s limitations anyhow, since there's obviously no point in talking about D stuff where C++ works equally well. Combine Martha Stewart and Mythbusters. Pick a programming task or a small example application or algorithm, and show them that it can be written easily and painlessly with D. (Something that obviously would be a pain to do in C++.) BUT DON'T MENTION C++ EVEN ONCE in the presentation. And let the audience themselves have the Aha of 'gee, i would have spent three days on that in my language', which obviously is C++.
Dec 18 2008
parent Andrei Alexandrescu <SeeWebsiteForEmail erdani.org> writes:
Georg Wrede wrote:
 Walter Bright wrote:
 Janderson wrote:
 Walter Bright wrote:

 Bartosz has signed me up to give a presentation at the January 
 meeting of the NWCPP. http://www.nwcpp.org/

 I am not sure what to talk about, though. Any particular D topics 
 you'd find particularly interesting?
Problems in C++ that D solves.
A lot of people have asked me to stop talking about limitations in C++ <g> and instead concentrate on what D can do.
So don't TALK about them. Folks are sick and tired of hype and fud anyway. Implicitly you'll address C++'s limitations anyhow, since there's obviously no point in talking about D stuff where C++ works equally well. Combine Martha Stewart and Mythbusters. Pick a programming task or a small example application or algorithm, and show them that it can be written easily and painlessly with D. (Something that obviously would be a pain to do in C++.) BUT DON'T MENTION C++ EVEN ONCE in the presentation. And let the audience themselves have the Aha of 'gee, i would have spent three days on that in my language', which obviously is C++.
Amen brother! Andrei
Dec 18 2008