www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Presentation Intro to D: What works?

reply "qznc" <qznc web.de> writes:
Looks like I will give a talk about D to our local Functional 
Programming User Group in August. Feel free to join, if you can 
be in Karlsruhe, Germany:

http://www.meetup.com/de/The-Karlsruhe-Functional-Programmers-Meetup-Group/events/223455553/

As far as I know, pretty much nobody there knows anything about 
D. So I need to start with some general introduction. My current 
plan is to basically talk through the dlang.org frontpage. Modern 
convenience. Modeling power. Native efficiency.

I guess others here have done such intros already. What works? 
What doesn't? What are the usually questions you get from 
newbies? Any evangelism tips?
Jun 25 2015
next sibling parent "Joakim" <dlang joakim.fea.st> writes:
On Thursday, 25 June 2015 at 12:39:11 UTC, qznc wrote:
 Looks like I will give a talk about D to our local Functional 
 Programming User Group in August. Feel free to join, if you can 
 be in Karlsruhe, Germany:

 http://www.meetup.com/de/The-Karlsruhe-Functional-Programmers-Meetup-Group/events/223455553/

 As far as I know, pretty much nobody there knows anything about 
 D. So I need to start with some general introduction. My 
 current plan is to basically talk through the dlang.org 
 frontpage. Modern convenience. Modeling power. Native 
 efficiency.
What specifically do you plan to mention for each?
 I guess others here have done such intros already. What works? 
 What doesn't? What are the usually questions you get from 
 newbies? Any evangelism tips?
Never done an intro but watched several and have been thinking about doing an intro talk locally myself. One thing I don't often see in intros that I was thinking about adding is who is behind the language? Do a small bio of Walter with his C++ compiler background and Andrei with his modern C++ design background. That will help orient the newbie on where the language comes from.
Jun 25 2015
prev sibling next sibling parent reply "rsw0x" <anonymous anonymous.com> writes:
On Thursday, 25 June 2015 at 12:39:11 UTC, qznc wrote:
 Looks like I will give a talk about D to our local Functional 
 Programming User Group in August. Feel free to join, if you can 
 be in Karlsruhe, Germany:

 http://www.meetup.com/de/The-Karlsruhe-Functional-Programmers-Meetup-Group/events/223455553/

 As far as I know, pretty much nobody there knows anything about 
 D. So I need to start with some general introduction. My 
 current plan is to basically talk through the dlang.org 
 frontpage. Modern convenience. Modeling power. Native 
 efficiency.

 I guess others here have done such intros already. What works? 
 What doesn't? What are the usually questions you get from 
 newbies? Any evangelism tips?
If it's a functional programming meetup, show off D's ranges combined with its functional programming style. I think this is what really sets it apart from every other C-based language, if D had pattern matching and destructuring it would probably have the ability to look pretty close to Ocaml.
Jun 25 2015
parent reply Rikki Cattermole <alphaglosined gmail.com> writes:
On 26/06/2015 1:46 p.m., rsw0x wrote:
 On Thursday, 25 June 2015 at 12:39:11 UTC, qznc wrote:
 Looks like I will give a talk about D to our local Functional
 Programming User Group in August. Feel free to join, if you can be in
 Karlsruhe, Germany:

 http://www.meetup.com/de/The-Karlsruhe-Functional-Programmers-Meetup-Group/events/223455553/


 As far as I know, pretty much nobody there knows anything about D. So
 I need to start with some general introduction. My current plan is to
 basically talk through the dlang.org frontpage. Modern convenience.
 Modeling power. Native efficiency.

 I guess others here have done such intros already. What works? What
 doesn't? What are the usually questions you get from newbies? Any
 evangelism tips?
If it's a functional programming meetup, show off D's ranges combined with its functional programming style. I think this is what really sets it apart from every other C-based language, if D had pattern matching and destructuring it would probably have the ability to look pretty close to Ocaml.
irk be careful when showing off ranges. Get some damn good background of what D is first. It took me well over a year before I started to get into them.
Jun 25 2015
parent reply "thedeemon" <dlang thedeemon.com> writes:
On Friday, 26 June 2015 at 04:43:08 UTC, Rikki Cattermole wrote:
 Looks like I will give a talk about D to our local Functional
 Programming User Group in August.
 irk be careful when showing off ranges. Get some damn good 
 background of what D is first. It took me well over a year 
 before I started to get into them.
For FP people working with combinators on lazy lists or sequences is a well known thing, so they should easily recognize it. People in OCaml, F# or Elm write code like this every day: Char.toCode c |> spt |> List.reverse |> List.map toString |> String.join " " (this one is in Elm) And in Haskell it looks similar but usually in backwards order and separated by "." and $. For haskellers, comparing D ranges with "classy prelude" shall be appropriate, I guess. I think one should also talk about how D ranges when passed through several processing steps can keep important information in their types so that xs.retro.take(100).map!f.retro[33] works in O(1). This is what most other languages don't do.
Jun 26 2015
parent "rsw0x" <anonymous anonymous.com> writes:
On Friday, 26 June 2015 at 07:00:22 UTC, thedeemon wrote:
 On Friday, 26 June 2015 at 04:43:08 UTC, Rikki Cattermole wrote:
 Looks like I will give a talk about D to our local Functional
 Programming User Group in August.
 irk be careful when showing off ranges. Get some damn good 
 background of what D is first. It took me well over a year 
 before I started to get into them.
For FP people working with combinators on lazy lists or sequences is a well known thing, so they should easily recognize it. People in OCaml, F# or Elm write code like this every day: Char.toCode c |> spt |> List.reverse |> List.map toString |> String.join " " (this one is in Elm) And in Haskell it looks similar but usually in backwards order and separated by "." and $. For haskellers, comparing D ranges with "classy prelude" shall be appropriate, I guess. I think one should also talk about how D ranges when passed through several processing steps can keep important information in their types so that xs.retro.take(100).map!f.retro[33] works in O(1). This is what most other languages don't do.
I absolutely _hated_ laziness in Haskell. It made it impossible to reason about the performance of anything. I find it the complete opposite in D because so much happens at compiletime, I've seen ldc and gdc turn rather long range chains into assembly you'd expect from nested for loops.
Jun 26 2015
prev sibling next sibling parent "Chris" <wendlec tcd.ie> writes:
On Thursday, 25 June 2015 at 12:39:11 UTC, qznc wrote:
 Looks like I will give a talk about D to our local Functional 
 Programming User Group in August. Feel free to join, if you can 
 be in Karlsruhe, Germany:

 http://www.meetup.com/de/The-Karlsruhe-Functional-Programmers-Meetup-Group/events/223455553/

 As far as I know, pretty much nobody there knows anything about 
 D. So I need to start with some general introduction. My 
 current plan is to basically talk through the dlang.org 
 frontpage. Modern convenience. Modeling power. Native 
 efficiency.

 I guess others here have done such intros already. What works? 
 What doesn't? What are the usually questions you get from 
 newbies? Any evangelism tips?
Depends on where the newbies are coming from, C, C++, Java, Python? Would your audience be interested in templates? A big thing in D are structs, they are darn useful. Structs, ranges, templates, component programming and chaining. My only evangelism tip is not to be evangelistic about D. Present it with warts and all.
Jun 26 2015
prev sibling next sibling parent "Marc =?UTF-8?B?U2Now7x0eiI=?= <schuetzm gmx.net> writes:
On Thursday, 25 June 2015 at 12:39:11 UTC, qznc wrote:
 Looks like I will give a talk about D to our local Functional 
 Programming User Group in August. Feel free to join, if you can 
 be in Karlsruhe, Germany:

 http://www.meetup.com/de/The-Karlsruhe-Functional-Programmers-Meetup-Group/events/223455553/

 As far as I know, pretty much nobody there knows anything about 
 D. So I need to start with some general introduction. My 
 current plan is to basically talk through the dlang.org 
 frontpage. Modern convenience. Modeling power. Native 
 efficiency.

 I guess others here have done such intros already. What works? 
 What doesn't? What are the usually questions you get from 
 newbies? Any evangelism tips?
As these are FP people, I would start by pointing out that D is not a pure functional PL. Then you could explain how its functional aspects benefit from that fact, e.g. - ranges work with mutation => composability _and_ efficient codegen - weak vs strong purity => allows more code to be pure
Jun 26 2015
prev sibling parent reply "qznc" <qznc web.de> writes:
On Thursday, 25 June 2015 at 12:39:11 UTC, qznc wrote:
 Looks like I will give a talk about D to our local Functional 
 Programming User Group in August. Feel free to join, if you can 
 be in Karlsruhe, Germany:

 http://www.meetup.com/de/The-Karlsruhe-Functional-Programmers-Meetup-Group/events/223455553/
Presentation done. Only six people in the audience, but they appreciated it. 5/6 already had heard about D. 3/6 had played with it. If you are interested in my slides: http://beza1e1.tuxen.de/stuff/FunctionalD.odp http://beza1e1.tuxen.de/stuff/FunctionalD.pdf I spent some time on D history and philosophy. Mostly frontpage stuff. Then I defined what Functional Programming is imho. Showed D's functional features. Then I also talked about "Design by Introspection" or in my talk "Where typeclasses fail". Finished with D advertisement.
Aug 19 2015
next sibling parent reply "yawniek" <dlang srtnwz.com> writes:
On Wednesday, 19 August 2015 at 20:15:48 UTC, qznc wrote:
 On Thursday, 25 June 2015 at 12:39:11 UTC, qznc wrote:
 If you are interested in my slides:

 http://beza1e1.tuxen.de/stuff/FunctionalD.odp
 http://beza1e1.tuxen.de/stuff/FunctionalD.pdf

 I spent some time on D history and philosophy. Mostly frontpage 
 stuff.
 Then I defined what Functional Programming is imho.
 Showed D's functional features.
 Then I also talked about "Design by Introspection" or in my 
 talk "Where typeclasses fail".
 Finished with D advertisement.
i like these slides a lot, has the talk been recorded?
Aug 20 2015
parent reply qznc <qznc web.de> writes:
Am 20.08.2015 um 15:06 schrieb yawniek:
 On Wednesday, 19 August 2015 at 20:15:48 UTC, qznc wrote:
 On Thursday, 25 June 2015 at 12:39:11 UTC, qznc wrote:
 If you are interested in my slides:

 http://beza1e1.tuxen.de/stuff/FunctionalD.odp
 http://beza1e1.tuxen.de/stuff/FunctionalD.pdf

 I spent some time on D history and philosophy. Mostly frontpage stuff.
 Then I defined what Functional Programming is imho.
 Showed D's functional features.
 Then I also talked about "Design by Introspection" or in my talk
 "Where typeclasses fail".
 Finished with D advertisement.
i like these slides a lot, has the talk been recorded?
No. Sorry.
Aug 20 2015
parent reply "tired_eyes" <pastuhov85 gmail.com> writes:
On Thursday, 20 August 2015 at 13:42:02 UTC, qznc wrote:
 Am 20.08.2015 um 15:06 schrieb yawniek:
 On Wednesday, 19 August 2015 at 20:15:48 UTC, qznc wrote:
 On Thursday, 25 June 2015 at 12:39:11 UTC, qznc wrote:
 If you are interested in my slides:

 http://beza1e1.tuxen.de/stuff/FunctionalD.odp 
 http://beza1e1.tuxen.de/stuff/FunctionalD.pdf

 I spent some time on D history and philosophy. Mostly 
 frontpage stuff.
 Then I defined what Functional Programming is imho.
 Showed D's functional features.
 Then I also talked about "Design by Introspection" or in my 
 talk
 "Where typeclasses fail".
 Finished with D advertisement.
i like these slides a lot, has the talk been recorded?
No. Sorry.
The slides are very intresting! Please consider submitting them to GitHub Speaker Desk (https://speakerdeck.com/), dlang really lacks of presense there (as usual). http://www.slideshare.net/ is also a good target.
Aug 21 2015
parent reply "qznc" <qznc web.de> writes:
On Friday, 21 August 2015 at 09:17:57 UTC, tired_eyes wrote:
 The slides are very intresting! Please consider submitting them 
 to GitHub Speaker Desk (https://speakerdeck.com/), dlang really 
 lacks of presense there (as usual). http://www.slideshare.net/ 
 is also a good target.
Added them to Speaker Deck: https://speakerdeck.com/qznc/functional-programming-with-d Is it really worth it to just publish there?
Aug 28 2015
parent "tired_eyes" <pastuhov85 gmail.com> writes:
 Is it really worth it to just publish there?
Definitely!
Aug 28 2015
prev sibling parent reply "John Colvin" <john.loughran.colvin gmail.com> writes:
On Wednesday, 19 August 2015 at 20:15:48 UTC, qznc wrote:
 On Thursday, 25 June 2015 at 12:39:11 UTC, qznc wrote:
 [...]
Presentation done. Only six people in the audience, but they appreciated it. 5/6 already had heard about D. 3/6 had played with it. If you are interested in my slides: http://beza1e1.tuxen.de/stuff/FunctionalD.odp http://beza1e1.tuxen.de/stuff/FunctionalD.pdf I spent some time on D history and philosophy. Mostly frontpage stuff. Then I defined what Functional Programming is imho. Showed D's functional features. Then I also talked about "Design by Introspection" or in my talk "Where typeclasses fail". Finished with D advertisement.
These are really cool slides. Great work!
Aug 20 2015
parent reply Walter Bright <newshound2 digitalmars.com> writes:
On 8/20/2015 6:27 AM, John Colvin wrote:
 On Wednesday, 19 August 2015 at 20:15:48 UTC, qznc wrote:
 If you are interested in my slides:

 http://beza1e1.tuxen.de/stuff/FunctionalD.odp
 http://beza1e1.tuxen.de/stuff/FunctionalD.pdf
These are really cool slides. Great work!
I've often thought we need a Roku channel just for D presentations.
Aug 28 2015
parent reply "bachmeier" <no spam.net> writes:
On Friday, 28 August 2015 at 19:49:36 UTC, Walter Bright wrote:
 On 8/20/2015 6:27 AM, John Colvin wrote:
 On Wednesday, 19 August 2015 at 20:15:48 UTC, qznc wrote:
 If you are interested in my slides:

 http://beza1e1.tuxen.de/stuff/FunctionalD.odp
 http://beza1e1.tuxen.de/stuff/FunctionalD.pdf
These are really cool slides. Great work!
I've often thought we need a Roku channel just for D presentations.
You and Andrei could offer a MOOC. Martin Odersky had tens of thousands in his Scala class.
Aug 28 2015
parent "David DeWitt" <dkdewitt gmail.com> writes:
On Saturday, 29 August 2015 at 01:48:23 UTC, bachmeier wrote:
 On Friday, 28 August 2015 at 19:49:36 UTC, Walter Bright wrote:
 On 8/20/2015 6:27 AM, John Colvin wrote:
 On Wednesday, 19 August 2015 at 20:15:48 UTC, qznc wrote:
 If you are interested in my slides:

 http://beza1e1.tuxen.de/stuff/FunctionalD.odp
 http://beza1e1.tuxen.de/stuff/FunctionalD.pdf
These are really cool slides. Great work!
I've often thought we need a Roku channel just for D presentations.
You and Andrei could offer a MOOC. Martin Odersky had tens of thousands in his Scala class.
Thats actually a great idea. Even getting more stuff on Youtube would be a good start. A Vibe series would be great to have on Youtube. Lots of good quick stuff on Flask like Miguel Grinberg would be a great start but yea MOOC would be awesome not only for learning but for advertising.
Aug 28 2015