Thread overview | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
June 25, 2015 Presentation Intro to D: What works? | ||||
---|---|---|---|---|
| ||||
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? |
June 26, 2015 Re: Presentation Intro to D: What works? | ||||
---|---|---|---|---|
| ||||
Posted in reply to qznc | 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. |
June 26, 2015 Re: Presentation Intro to D: What works? | ||||
---|---|---|---|---|
| ||||
Posted in reply to qznc | 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.
|
June 26, 2015 Re: Presentation Intro to D: What works? | ||||
---|---|---|---|---|
| ||||
Posted in reply to rsw0x | 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.
|
June 26, 2015 Re: Presentation Intro to D: What works? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Rikki Cattermole | 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. |
June 26, 2015 Re: Presentation Intro to D: What works? | ||||
---|---|---|---|---|
| ||||
Posted in reply to thedeemon | 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.
|
June 26, 2015 Re: Presentation Intro to D: What works? | ||||
---|---|---|---|---|
| ||||
Posted in reply to qznc | 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.
|
June 26, 2015 Re: Presentation Intro to D: What works? | ||||
---|---|---|---|---|
| ||||
Posted in reply to qznc | 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
|
August 19, 2015 Re: Presentation Intro to D: What works? | ||||
---|---|---|---|---|
| ||||
Posted in reply to qznc | 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. |
August 20, 2015 Re: Presentation Intro to D: What works? | ||||
---|---|---|---|---|
| ||||
Posted in reply to qznc | 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?
|
Copyright © 1999-2021 by the D Language Foundation