digitalmars.D - GSoC Mentor Summit Observations and D Marketing
- dsimcha <dsimcha yahoo.com> Oct 24 2011
- Walter Bright <newshound2 digitalmars.com> Oct 24 2011
- dsimcha <dsimcha yahoo.com> Oct 24 2011
- Brad Roberts <braddr slice-2.puremagic.com> Oct 24 2011
- Walter Bright <newshound2 digitalmars.com> Oct 24 2011
- bcs <bcs example.com> Oct 28 2011
- Jeff Nowakowski <jeff dilacero.org> Oct 30 2011
- Gor Gyolchanyan <gor.f.gyolchanyan gmail.com> Oct 25 2011
- bearophile <bearophileHUGS lycos.com> Oct 25 2011
- Don <nospam nospam.com> Oct 25 2011
- Gor Gyolchanyan <gor.f.gyolchanyan gmail.com> Oct 25 2011
- Gor Gyolchanyan <gor.f.gyolchanyan gmail.com> Oct 25 2011
- Manu <turkeyman gmail.com> Oct 25 2011
- Gor Gyolchanyan <gor.f.gyolchanyan gmail.com> Oct 25 2011
- Fawzi Mohamed <fawzi gmx.ch> Oct 30 2011
- Jerry <jlquinn optonline.net> Nov 01 2011
I wanted to thank the D community for getting us involved in GSoC and giving me the opportunity to attend the Mentor Summit, which was this weekend. I was pleasantly surprised to find out that most hardcore programmers have at least heard of D by now, at least if the Mentor Summit was a representative sample of hardcore programmers that I had never talked to before. There seemed to be substantial interest in it from the informal conversations I had over meals, etc. I got the impression that D is not being used partly because of the obvious reasons (lack of libraries, legacy code in other languages) but also partly because most people, even if they've heard of it, don't know what its most important features/benefits are. I think that we need to develop a short, memorable "elevator speech" version of its selling points, even if we ignore some substantial areas in doing so. The one I used was basically "compile-time metaprogramming on steroids, static if, CTFE, string mixins, see std.algorithm, std.range and std.parallelism for examples". I was also frequently asked about D's compatibility with C and C++. The impression I get is that we would do well to highlight our ease of integrating with C more in our marketing, especially now that we have Deimos. BTW, Fawzi Mohammed was also at the Mentor Summit and may have additional comments. I'd be interested to see him weigh in on this thread.
Oct 24 2011
On 10/24/2011 5:42 PM, dsimcha wrote:I got the impression that D is not being used partly because of the obvious reasons (lack of libraries, legacy code in other languages) but also partly because most people, even if they've heard of it, don't know what its most important features/benefits are. I think that we need to develop a short, memorable "elevator speech" version of its selling points, even if we ignore some substantial areas in doing so. The one I used was basically "compile-time metaprogramming on steroids, static if, CTFE, string mixins, see std.algorithm, std.range and std.parallelism for examples".
You're right, I've been recently wrestling with the elevator pitch thing for D. I know we need one. Bartosz has suggested "Systems programming safe and easy."
Oct 24 2011
On 10/24/2011 9:12 PM, Walter Bright wrote:You're right, I've been recently wrestling with the elevator pitch thing for D. I know we need one. Bartosz has suggested "Systems programming safe and easy."
I think that might be a little too non-technical, though. I think we need to highlight a couple of the key features that make D safe and easy. (IMHO template metaprogramming contributes massively to the "easy" part because it massively improves library API flexibility and is pervasive in the standard library.)
Oct 24 2011
On Mon, 24 Oct 2011, Walter Bright wrote:On 10/24/2011 5:42 PM, dsimcha wrote:I got the impression that D is not being used partly because of the obvious reasons (lack of libraries, legacy code in other languages) but also partly because most people, even if they've heard of it, don't know what its most important features/benefits are. I think that we need to develop a short, memorable "elevator speech" version of its selling points, even if we ignore some substantial areas in doing so. The one I used was basically "compile-time metaprogramming on steroids, static if, CTFE, string mixins, see std.algorithm, std.range and std.parallelism for examples".
You're right, I've been recently wrestling with the elevator pitch thing for D. I know we need one. Bartosz has suggested "Systems programming safe and easy."
That's not a pitch, that's a slogan or a catch phrase. It might be enough to get the listener to invite the pitch. A pitch needs to be longer and more informative. You've got 20-30 seconds to convince the person to look deeper. It's enough to list a couple important points. Top three reasons it's worth looking at closer.. something along those lines.
Oct 24 2011
On 10/24/2011 6:52 PM, Brad Roberts wrote:On Mon, 24 Oct 2011, Walter Bright wrote:On 10/24/2011 5:42 PM, dsimcha wrote:I got the impression that D is not being used partly because of the obvious reasons (lack of libraries, legacy code in other languages) but also partly because most people, even if they've heard of it, don't know what its most important features/benefits are. I think that we need to develop a short, memorable "elevator speech" version of its selling points, even if we ignore some substantial areas in doing so. The one I used was basically "compile-time metaprogramming on steroids, static if, CTFE, string mixins, see std.algorithm, std.range and std.parallelism for examples".
You're right, I've been recently wrestling with the elevator pitch thing for D. I know we need one. Bartosz has suggested "Systems programming safe and easy."
That's not a pitch, that's a slogan or a catch phrase. It might be enough to get the listener to invite the pitch.
Right, but you need a headline that's 140 characters or less (tweet size). For example, the ipad was "1000 songs in your pocket". The iphone was "reinvention of the phone".A pitch needs to be longer and more informative. You've got 20-30 seconds to convince the person to look deeper. It's enough to list a couple important points. Top three reasons it's worth looking at closer.. something along those lines.
The 3 keys come next. It has to be more than two, and less than 4. I've been toying with: 1. control 2. multi-paradigm 3. robustness (Yes, I've been reading a book on this!)
Oct 24 2011
On 10/24/2011 08:19 PM, Walter Bright wrote:On 10/24/2011 6:52 PM, Brad Roberts wrote:On Mon, 24 Oct 2011, Walter Bright wrote: A pitch needs to be longer and more informative. You've got 20-30 seconds to convince the person to look deeper. It's enough to list a couple important points. Top three reasons it's worth looking at closer.. something along those lines.
The 3 keys come next. It has to be more than two, and less than 4. I've been toying with: 1. control 2. multi-paradigm 3. robustness (Yes, I've been reading a book on this!)
1. uncompromising performance. 2. maximum utility. 3. no unnecessary complexity.
Oct 28 2011
On 10/24/2011 11:19 PM, Walter Bright wrote:The 3 keys come next. It has to be more than two, and less than 4. I've been toying with: 1. control 2. multi-paradigm 3. robustness (Yes, I've been reading a book on this!)
Whatever you do, drop #2. "multi-paradigm" is a common buzzword that makes people's eyes glaze over.
Oct 30 2011
Many languages come with a built-in religion. That religion drives the design of those languages towards particular goals or particular ways of achieving goals. D doesn't have a religion. D is an atheistic language. It's aware, that many goals have nothing in common and that they gave their own specific ways of achieving them. D allows you to do get whatever you want however you want. It doesn't force you in a certain direction or limit you with what you can do with it. You might think, that C++ (the second least religious language IMO) has the same philosophy, but it's not true. Here are some examples: 1. C++ thinks, that every user-defined type is a class with polymorphic behavior. 2. C++ assumes, that every feature should be half-implemented: 2.1. Templates in C++ look more, like a demo version of the real thing. That's one of the reasons why many people resist from using C++ templates. 2.2. Polymorphism is built in a way, that discourages it's usage. You can't guarantee a proper destruction of a polymorphic type and you can't manipulate polymorphic types without pointer shenanigans. 3. C++ is sure, that the code must be fast, but it need not be working: 3.1. Default behavior is the one most prone to errors: 3.1.1. Variable are initialized with garbage by default. 3.1.2. Array of polymorphic objects doesn't call their constructors. 3.1.3. Copying polymorphic objects results in a cut-in-half corpses, instead of objects. 3.1.4. Most of the stuff the programmer works with is implementation-defined (in layman's terms, may or may not work at will). 4. C++ is designed for people who take pleasure of reading encrypted Klingon, instead of a pretty and readable text. D works in the way, in which "the easy way is the right way". The right way in C++ is using shared pointers, the right way in D is using... well.. objects. That's the most obvious example. Indeed, C++ is a good tool in the hands of a highly skilled professional. But that's not a good thing. That's retarded. The things C++ allows you to do are not worth all the time and effort, spent on studying all the bugs and holes in the C++ standard. Other languages are just religious and that's it. Python is religious about dynamicity (Nothing is known at compile time. Compile-time doesn't exist), Java is religious about complexity (it's a straitjacket, not a language), Perl is write-only language, religious about text manipulation (perl thinks, that nothing ever exists besides text), C is religious about stone-age tools (Design patterns, high-level constructs are blasphemy for C). That's why one should consider D. On Tue, Oct 25, 2011 at 7:19 AM, Walter Bright <newshound2 digitalmars.com> wrote:On 10/24/2011 6:52 PM, Brad Roberts wrote:On Mon, 24 Oct 2011, Walter Bright wrote:On 10/24/2011 5:42 PM, dsimcha wrote:I got the impression that D is not being used partly because of the obvious reasons (lack of libraries, legacy code in other languages) but also partly because most people, even if they've heard of it, don't know what its most important features/benefits are. I think that we need to develop a short, memorable "elevator speech" version of its selling points, even if we ignore some substantial areas in doing so. The one I used was basically "compile-time metaprogramming on steroids, static if, CTFE, string mixins, see std.algorithm, std.range and std.parallelism for examples".
You're right, I've been recently wrestling with the elevator pitch thin=
for D. I know we need one. Bartosz has suggested "Systems programming safe and easy."
That's not a pitch, that's a slogan or a catch phrase. =A0It might be en=
to get the listener to invite the pitch.
Right, but you need a headline that's 140 characters or less (tweet size)=
For example, the ipad was "1000 songs in your pocket". The iphone was "reinvention of the phone".A pitch needs to be longer and more informative. =A0You've got 20-30 sec=
to convince the person to look deeper. =A0It's enough to list a couple important points. =A0Top three reasons it's worth looking at closer.. something along those lines.
The 3 keys come next. It has to be more than two, and less than 4. I've b=
toying with: 1. control 2. multi-paradigm 3. robustness (Yes, I've been reading a book on this!)
Oct 25 2011
Gor Gyolchanyan:D doesn't have a religion. D is an atheistic language.
I doubt this. There was even an attempt to write a D Zen. Bye, bearophile
Oct 25 2011
On 25.10.2011 11:40, bearophile wrote:Gor Gyolchanyan:D doesn't have a religion. D is an atheistic language.
I doubt this. There was even an attempt to write a D Zen.
That was by you, though, wasn't it? <g> OTOH I agree that it's got an underlying philosophy. It was clearly motivated by a love/hate relationship with C++. "C++ done right" is still not too far wrong, although it seems that when you do C++ correctly, it looks like some other languages as well...
Oct 25 2011
C++ is like an age-old soviet nuclear missile: You can probably wipe out all your enemies with it, but you have a much greater chance of killing yourself and everyone around you. On Tue, Oct 25, 2011 at 1:10 PM, Gor Gyolchanyan <gor.f.gyolchanyan gmail.com> wrote:Many languages come with a built-in religion. That religion drives the design of those languages towards particular goals or particular ways of achieving goals. D doesn't have a religion. D is an atheistic language. It's aware, that many goals have nothing in common and that they gave their own specific ways of achieving them. D allows you to do get whatever you want however you want. It doesn't force you in a certain direction or limit you with what you can do with it. You might think, that C++ (the second least religious language IMO) has the same philosophy, but it's not true. Here are some examples: 1. C++ thinks, that every user-defined type is a class with polymorphic behavior. 2. C++ assumes, that every feature should be half-implemented: 2.1. Templates in C++ look more, like a demo version of the real thing. That's one of the reasons why many people resist from using C++ templates. 2.2. Polymorphism is built in a way, that discourages it's usage. You can't guarantee a proper destruction of a polymorphic type and you can't manipulate polymorphic types without pointer shenanigans. 3. C++ is sure, that the code must be fast, but it need not be working: 3.1. Default behavior is the one most prone to errors: 3.1.1. Variable are initialized with garbage by default. 3.1.2. Array of polymorphic objects doesn't call their constructors. 3.1.3. Copying polymorphic objects results in a cut-in-half corpses, instead of objects. 3.1.4. Most of the stuff the programmer works with is implementation-defined (in layman's terms, may or may not work at will). 4. C++ is designed for people who take pleasure of reading encrypted Klingon, instead of a pretty and readable text. D works in the way, in which "the easy way is the right way". The right way in C++ is using shared pointers, the right way in D is using... well.. objects. That's the most obvious example. Indeed, C++ is a good tool in the hands of a highly skilled professional. But that's not a good thing. That's retarded. The things C++ allows you to do are not worth all the time and effort, spent on studying all the bugs and holes in the C++ standard. Other languages are just religious and that's it. Python is religious about dynamicity (Nothing is known at compile time. Compile-time doesn't exist), Java is religious about complexity (it's a straitjacket, not a language), Perl is write-only language, religious about text manipulation (perl thinks, that nothing ever exists besides text), C is religious about stone-age tools (Design patterns, high-level constructs are blasphemy for C). That's why one should consider D. On Tue, Oct 25, 2011 at 7:19 AM, Walter Bright <newshound2 digitalmars.com> wrote:On 10/24/2011 6:52 PM, Brad Roberts wrote:On Mon, 24 Oct 2011, Walter Bright wrote:On 10/24/2011 5:42 PM, dsimcha wrote:I got the impression that D is not being used partly because of the obvious reasons (lack of libraries, legacy code in other languages) but also partly because most people, even if they've heard of it, don't know what its most important features/benefits are. I think that we need to develop a short, memorable "elevator speech" version of its selling points, even if we ignore some substantial areas in doing so. The one I used was basically "compile-time metaprogramming on steroids, static if, CTFE, string mixins, see std.algorithm, std.range and std.parallelism for examples".
You're right, I've been recently wrestling with the elevator pitch thi=
for D. I know we need one. Bartosz has suggested "Systems programming safe and easy."
That's not a pitch, that's a slogan or a catch phrase. =A0It might be e=
to get the listener to invite the pitch.
Right, but you need a headline that's 140 characters or less (tweet size=
For example, the ipad was "1000 songs in your pocket". The iphone was "reinvention of the phone".A pitch needs to be longer and more informative. =A0You've got 20-30 se=
to convince the person to look deeper. =A0It's enough to list a couple important points. =A0Top three reasons it's worth looking at closer.. something along those lines.
The 3 keys come next. It has to be more than two, and less than 4. I've =
toying with: 1. control 2. multi-paradigm 3. robustness (Yes, I've been reading a book on this!)
Oct 25 2011
Huh? What is this D Zen? On Tue, Oct 25, 2011 at 1:40 PM, bearophile <bearophileHUGS lycos.com> wrote:Gor Gyolchanyan:D doesn't have a religion. D is an atheistic language.
I doubt this. There was even an attempt to write a D Zen. Bye, bearophile
Oct 25 2011
--00163646d4486084d504b01dcb37 Content-Type: text/plain; charset=UTF-8 On 25 October 2011 13:31, Don <nospam nospam.com> wrote:On 25.10.2011 11:40, bearophile wrote:Gor Gyolchanyan: D doesn't have a religion. D is an atheistic language.
I doubt this. There was even an attempt to write a D Zen.
That was by you, though, wasn't it? <g> OTOH I agree that it's got an underlying philosophy. It was clearly motivated by a love/hate relationship with C++. "C++ done right" is still not too far wrong, although it seems that when you do C++ correctly, it looks like some other languages as well...
Except every other example of C++ done right leads to a managed runtime :) It's this "C++ done right" idea that sold me on D, except after spending some time, I wonder if D is quite sure about what it is? I bought in with the clear impression (and "C++ done right" certainly suggests) that it was a modernised systems programming language. Surely this is(/was?) the primary goal? That's definitely what appeals to me... it's compiled to machine code, has uninhibited hardware access, and that's the only niche that it cleanly fills which isn't occupied by any other languages. But I also see a lot of conversation about really high level features which are more realistically suited in something like C#. If these things fit neatly into D without compromise, then sure, why not. I love cool features! :) But is D making any compromise to that end? I haven't been following long enough to know... Don: The only thing I really care about is that the compiler never chooses double intrinsically.. that will prove which way the language leans to me ;) --00163646d4486084d504b01dcb37 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable <div class=3D"gmail_quote">On 25 October 2011 13:31, Don <span dir=3D"ltr">= <<a href=3D"mailto:nospam nospam.com">nospam nospam.com</a>></span> w= rote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;borde= r-left:1px #ccc solid;padding-left:1ex;"> <div class=3D"im">On 25.10.2011 11:40, bearophile wrote:<br> <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p= x #ccc solid;padding-left:1ex"> Gor Gyolchanyan:<br> <br> <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p= x #ccc solid;padding-left:1ex"> D doesn't have a religion. D is an atheistic language.<br> </blockquote> <br> I doubt this. There was even an attempt to write a D Zen.<br> </blockquote> <br></div> That was by you, though, wasn't it? <g><br> OTOH I agree that it's got an underlying philosophy. It was clearly mot= ivated by a love/hate relationship with C++.<br> "C++ done right" is still not too far wrong, although it seems th= at when you do C++ correctly, it looks like some other languages as well...= <br> </blockquote></div><br><div>Except every other example of C++ done right le= ads to a managed runtime :)</div><div><br></div><div>It's this "C+= + done right" idea that sold me on D, except after spending some time,= =C2=A0I wonder if D is quite sure about what it is?</div> <div>I bought in with the clear impression (and "C++ done right" = certainly suggests) that it was a modernised systems programming language. = Surely this is(/was?) the primary goal?</div><div>That's definitely wha= t appeals to me... it's compiled to machine code, has uninhibited hardw= are access, and that's the only niche that it cleanly fills which isn&#= 39;t occupied by any other languages.</div> <div><br></div><div>But I also see a lot of conversation about really high = level features which are more realistically suited in something like C#. If= these things fit neatly into D without compromise, then sure, why not. I l= ove cool features! :)</div> <div>But is D making any compromise to that end? I haven't been followi= ng long enough to know...</div><div><br></div><div> Don: The only thing I r= eally care about is that the compiler never chooses double intrinsically.. = that will prove which way the language leans to me ;)</div> --00163646d4486084d504b01dcb37--
Oct 25 2011
I think combining straight-forward uncomprimised support for both bare-metal access AND very high-level constructs is the thing, that no other language has dome before and D has a great shot at this. Personally, i think it needs more high-level construct support, like correctly implemented dynamic typing support. The C part of D is great: it deals with low-level stuff like a champ, but the Pythin part is not so good: high-level and abstract concepts are still a tricky thing to do. We need to get high ;-) On Tue, Oct 25, 2011 at 3:25 PM, Manu <turkeyman gmail.com> wrote:On 25 October 2011 13:31, Don <nospam nospam.com> wrote:On 25.10.2011 11:40, bearophile wrote:Gor Gyolchanyan:D doesn't have a religion. D is an atheistic language.
I doubt this. There was even an attempt to write a D Zen.
That was by you, though, wasn't it? <g> OTOH I agree that it's got an underlying philosophy. It was clearly motivated by a love/hate relationship with C++. "C++ done right" is still not too far wrong, although it seems that when you do C++ correctly, it looks like some other languages as well...
Except every other example of C++ done right leads to a managed runtime :=
It's this "C++ done right" idea that sold me on D, except after spending some time,=A0I wonder if D is quite sure about what it is? I bought in with the clear impression (and "C++ done right" certainly suggests) that it was a modernised systems programming language. Surely t=
is(/was?) the primary goal? That's definitely what appeals to me... it's compiled to machine code, ha=
uninhibited hardware access, and that's the only niche that it cleanly fi=
which isn't occupied by any other languages. But I also see a lot of conversation about really high level features whi=
are more realistically suited in something like C#. If these things fit neatly into D without compromise, then sure, why not. I love cool feature=
:) But is D making any compromise to that end? I haven't been following long enough to know... Don: The only thing I really care about is that the compiler never choos=
double intrinsically.. that will prove which way the language leans to me=
Oct 25 2011
At the gsoc I was using something like this: a better (simplified) C++: - close to C but not 100% backward compatible, either it compiles or it = gives an error - easy to link C, partially possible to use C++ libs (no = template instantiation) - single inheritance + interfaces (and contracts) - garbage collection (possible to avoid with some effort) - better templates (template language close to normal D, constraints), = CTFE and mixing - auto/foreach - delegates - immutable/const/pure if the discussions goes in that direction and going more in depth in the things that did strike the listener. I was also surprised about how many already heard something about D, I = got even some questions about D1/D2 tango/phobos. My answers were something along these lines: - D2 toolchain becoming now robust enough to be chosen for new projects = (with gdc finally also 64 bits) - D1 simpler, but misses some nice features of D2, not all D2 features = are perfect, but the proposal is compelling - it was difficult for the community to improve the lib & druntime -> = tango, personally I think it is the better library for D1 (I was = contributing to it), unfortunately not compatible with phobos. D2 = runtime, and no tango yet, but if/when it comes likely it will use = druntime. Fawzi=
Oct 30 2011
Fawzi Mohamed <fawzi gmx.ch> writes:I was also surprised about how many already heard something about D, I got even some questions about D1/D2 tango/phobos. My answers were something along these lines: - D2 toolchain becoming now robust enough to be chosen for new projects (with gdc finally also 64 bits)
Umm, not yet. GDB support is woefully lacking. The 3 custom debugging types output by dmd aren't supported at all. These are darray, aarray, and delegate. Without it, debugging D code is awful. I think darrays would be straightforward to support in GDB. Delegates can probably be supported as well, taking advantage of C++ member function pointer support. However, aarray doesn't have an ABI other than void*. There's no defined portable way to access the contents. Currently druntime has some C functions to access the AA, but those are implementation-specific. To be more ready for prime time, an actual ABI needs to be defined for AA's, especially if you wish to permit multiple compilers to write compatible object files. That's not a huge issue yet, since all the current D compilers use the same front end, but will become increasingly so as D becomes more popular. The AA ABI issue could be solved by defining all AA operations to map to a template class defined by druntime. That's what already happens, but defining it would plug this hole. Jerry
Nov 01 2011









dsimcha <dsimcha yahoo.com> 