digitalmars.D - GSoC Mentor Summit Observations and D Marketing
- dsimcha (22/22) Oct 24 2011 I wanted to thank the D community for getting us involved in GSoC and
- Walter Bright (3/11) Oct 24 2011 You're right, I've been recently wrestling with the elevator pitch thing...
- dsimcha (6/9) Oct 24 2011 I think that might be a little too non-technical, though. I think we
- Brad Roberts (7/22) Oct 24 2011 That's not a pitch, that's a slogan or a catch phrase. It might be enou...
- Walter Bright (10/32) Oct 24 2011 Right, but you need a headline that's 140 characters or less (tweet size...
- Gor Gyolchanyan (52/95) Oct 25 2011 Many languages come with a built-in religion. That religion drives the
- bearophile (4/5) Oct 25 2011 I doubt this. There was even an attempt to write a D Zen.
- Gor Gyolchanyan (2/7) Oct 25 2011
-
Don
(6/9)
Oct 25 2011
That was by you, though, wasn't it?
- Manu (18/31) Oct 25 2011 Except every other example of C++ done right leads to a managed runtime ...
- Gor Gyolchanyan (18/50) Oct 25 2011 I think combining straight-forward uncomprimised support for both
- Gor Gyolchanyan (10/106) Oct 25 2011 C++ is like an age-old soviet nuclear missile: You can probably wipe
- bcs (4/17) Oct 28 2011 1. uncompromising performance.
- Fawzi Mohamed (27/27) Oct 30 2011 At the gsoc I was using something like this:
- Jerry (18/21) Nov 01 2011 Umm, not yet. GDB support is woefully lacking. The 3 custom debugging
- Jeff Nowakowski (3/9) Oct 30 2011 Whatever you do, drop #2. "multi-paradigm" is a common buzzword that
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: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.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 6:52 PM, Brad Roberts wrote:On Mon, 24 Oct 2011, Walter Bright wrote: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".On 10/24/2011 5:42 PM, dsimcha wrote: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.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."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
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:gOn 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=oughfor 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".ondsA pitch needs to be longer and more informative. =A0You've got 20-30 sec=eento 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
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
On 25.10.2011 11:40, bearophile wrote:Gor Gyolchanyan: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...D doesn't have a religion. D is an atheistic language.I doubt this. There was even an attempt to write a D Zen.
Oct 25 2011
On 25 October 2011 13:31, Don <nospam nospam.com> wrote:On 25.10.2011 11:40, bearophile wrote: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 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 ;)Gor Gyolchanyan: D doesn't have a religion. D is an atheistic language.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...I doubt this. There was even an attempt to write a D Zen.
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:Except every other example of C++ done right leads to a managed runtime :=Gor Gyolchanyan: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...D doesn't have a religion. D is an atheistic language.I doubt this. There was even an attempt to write a D Zen.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=hisis(/was?) the primary goal? That's definitely what appeals to me... it's compiled to machine code, ha=suninhibited hardware access, and that's the only niche that it cleanly fi=llswhich isn't occupied by any other languages. But I also see a lot of conversation about really high level features whi=chneatly into D without compromise, then sure, why not. I love cool feature=s!:) 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=esdouble intrinsically.. that will prove which way the language leans to me=;)
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:ngOn 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=noughfor 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=condsFor 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=beento 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
On 10/24/2011 08:19 PM, Walter Bright wrote:On 10/24/2011 6:52 PM, Brad Roberts wrote:1. uncompromising performance. 2. maximum utility. 3. no unnecessary complexity.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!)
Oct 28 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
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!)makes people's eyes glaze over.
Oct 30 2011