December 17, 2014
On Wed, 17 Dec 2014 18:06:25 +1000
Manu via Digitalmars-d <digitalmars-d@puremagic.com> wrote:

> I'd suggest to look at high-quality commercial documentation, like MSDN or wherever.
please, no! the fact that you are used to it doesn't mean that msdn is a quality dox.

besides, msdn references are exactly what phobos documentation is: description of functions. will msdn reference dox help you to learn msvc? yet you citing it as "high-quality" and blaming phobos dox for doing (or, rather, not doing) the same.

> One thing I know for sure, is when they are confronted with constraints, especially on templates, they have absolutely no idea what they're looking at...
did they ever tried to learn the language? seems that you just throwed
phobos dox at them and expecting them to use that dox to learn D.
D is not C. D is not C++. one must learn it before using it. and phobos
documentation is not for learning the language, it's reference for
phobos.

i bet the story was like this: "guys, look at this cool language, it's almost like C++, and has some great features! let's use it!" "ah, almost like C++? so we don't have to learn? great, let's do it! but... hey... what do all that gibberish in documentation mean? i've never seen that is C++... screw it, this wannabe C++ language is awful!"


December 17, 2014
On Wed, 17 Dec 2014 18:09:00 +1000
Manu via Digitalmars-d <digitalmars-d@puremagic.com> wrote:

> On 15 December 2014 at 06:44, Jacob Carlborg via Digitalmars-d <digitalmars-d@puremagic.com> wrote:
> > On 2014-12-14 09:37, Manu via Digitalmars-d wrote:
> >
> >> They immediately made comments about goto-definition not working, and auto-completion not working reliably.
> >
> >
> > I'm curious to know which tools they used to get autocompletion and go-to-definition to work with JavaScript.
> 
> Well, since everything just worked, and we didn't need to try and debug crashes in libraries... those things didn't really come up. Our node.js code was only about 20-30 lines in the end.
> 
> Visual Studio does an okay job of .js too.
good luck then. i wish you never got into problems with node.js. no, really. one of our customers once runned into problems with node.js... he doesn't using node.js anymore. it was easier to rewrite the whole thing than trying to dance around node.js.


December 17, 2014
On Wed, 17 Dec 2014 18:41:06 +1000
Manu via Digitalmars-d <digitalmars-d@puremagic.com> wrote:

> Do we have any vector's into Microsoft to get fixes for D'd debugging experience into their debugger? Are there any sympathetic developers at MS?
haha. they can't do C99 for decades, so i bet that seeing Hell frozen is much more realistic scenario.


December 17, 2014
On Wednesday, 17 December 2014 at 09:05:58 UTC, Manu via Digitalmars-d wrote:
> On 16 December 2014 at 00:04, Kagamin via Digitalmars-d
> <digitalmars-d@puremagic.com> wrote:
>> On Sunday, 14 December 2014 at 08:37:36 UTC, Manu via Digitalmars-d wrote:
>>>
>>> They then made HUGE noises about the quality of documentation. The
>>> prevailing opinion was that the D docs, in the eyes of a
>>> not-a-D-expert, are basically unreadable to them. The formatting
>>> didn't help, there's a lot of noise and a lack of structure in the
>>> documentation's presentation that makes it hard to see the information
>>> through the layout and noise. As senior software engineers, they
>>> basically expected that they should be able to read and understand the
>>> docs, even if they don't really know the language, after all, "what is
>>> the point of documentation if not to teach the language..."
>>> I tend to agree, I find that I can learn most languages to a basic
>>> level by skimming the docs, but the D docs are an anomaly in this way;
>>> it seems you have to already know D to be able to understand it
>>> effectively. They didn't know javascript either, but skimming the
>>> node.js docs they got the job done in an hour or so, after having
>>> wasted *2 days* trying to force their way through the various
>>> frictions presented but their initial experience with D.
>>
>>
>> Comparing node.js to D? You probably speak about vibe, not D?
>
> The majority of hours spent were not really related to vibe.d so much
> as trying to wrangle the tooling, debugging crashes, and understand
> the docs to get some very basic things done.
> These are 'D' experience if you ask me.
>
>
>>> One of the take-away quotes I think, was "D seems to be a language for
>>> people who actively want to go and look for it, and take the time to
>>> learn it. That's never going to be a commercial success."
>>
>>
>> O_O Huh? Your team really didn't learn C++?
>
> We didn't 'learn' javascript, or python, or html, or whatever else you
> pick up on the job.
> The investment in learning 'programming' is decades behind us, and I
> think it's a reasonable expectation that a language present itself in
> such a way that it's intuitive and easy to get some basic things
> going.
> Leveraging small example snippets from the docs, etc. D is very easy
> for a C/C++ programmer, but the docs don't make it appear that way,
> and they give the wrong impression.
> The overpowering presence of templates in the docs give a first
> impression that reminds people of everything that's wrong with C++,
> which I suspect most C++ programmers looking into D are actively
> trying to escape!
>

This is something I also felt like when dabbled with D.

There is a lot of meta-programming going on the JVM and .NET worlds. Depending on the language, it comes via AST manipulation, attributes, compiler plugins, bytecode manipulation and macros.

However it tend to be used mostly for frameworks of some sort, not across all the APIs.

With the two toy projects I used D for, a toy compiler and a A* search implementation, I got the idea that there is a template for everything.

Granted, D's approach with templates and mixin makes it very easy to write such code.


--
Paulo
December 17, 2014
On Wed, 17 Dec 2014 09:48:26 +0000
Tobias Pankrath via Digitalmars-d <digitalmars-d@puremagic.com> wrote:

> std.container.Array(T) if(is(Unqual!T == bool)) vs.
> std.container.Array(T) if(!is(Unqual!T == bool)).
> 
> That's super unhelpful for newcomers.
that's why newcomers should NOT try to learn the language using reference documentation for standard library.

when i started to learn D, i found and read Andrei's book, Ali's book and Philippe's "template tutorial". and i never complained that phobos reference documentation is "hostile to beginners" -- 'cause it's NOT for beginners. you are expected to learn the language before reading reference dox.

yet i agree that formatting can be better. but as i tend to produce completely unreadable mess when i trying to fix any formatting, i didn't do anything in that direction.


December 17, 2014
On Wednesday, 17 December 2014 at 09:48:43 UTC, Paolo Invernizzi wrote:
> On Wednesday, 17 December 2014 at 09:34:45 UTC, Dicebot wrote:
>>
>> To start using D effectively in production one needs to stop considering himself a customer. This is absolutely critical.
>
> This is a very interesting point: thanks you.
> ---
> Paolo

I second this, it's a very good point. The customer attitude permeates this whole thread. D is not a framework for very specific tasks in limited domains like node.js. Is is a programming language that can be used to build frameworks (like e.g. vibe.d) If you only need a feature or two for a web project (as the 20-30 lines of JS that were mentioned suggest), you probably shouldn't use vibe.d. Only if you want to create something bigger, build an infrastructure from scratch say, or need high performance, should you consider vibe.d, which does have a certain learning curve, no doubt about it, as does D. I use vibe.d now but before I started to use it, I had tested it for a while to see, if it suited the project, which included playing around with it in my spare time. I did this with other D projects too.

I don't think it's a good idea to tell people about how great D is and then throw them right into it without any preliminary training. It is, after all, a fully fledged programming language, not an API for certain tasks like querying a web server. A language like D has to be _learned_, concepts have to be _understood_, even if you are already familiar with C++, Java or C#. The same is true of any of the more complex languages. I bet you that, regardless of how good the infrastructure may be, you couldn't just sit down and hack away without knowing the language, be it Java, C# or C++, no matter how much you already know about programming. If you did hack a web server together quickly, I'd be worried about the quality of the code.

JS and Python are "quick and dirty" languages in the sense that they were designed for people who are not really into programming, but want to get a task done quick (and dirty if needs be). You cannot compare them with D.

December 17, 2014
On Wednesday, 17 December 2014 at 10:33:34 UTC, ketmar via Digitalmars-d wrote:
> when i started to learn D, i found and read Andrei's book, Ali's book
> and Philippe's "template tutorial". and i never complained that phobos
> reference documentation is "hostile to beginners" -- 'cause it's NOT
> for beginners. you are expected to learn the language before reading
> reference dox

I wonder how much of a loss it would be to Andrei to publish TDPL for free on dlang.org and link it from a front page as newcomer starting point. I don't know if there are still many people who buy it though.
December 17, 2014
On Wednesday, 17 December 2014 at 10:21:53 UTC, ketmar via Digitalmars-d wrote:
> On Wed, 17 Dec 2014 18:41:06 +1000
> Manu via Digitalmars-d <digitalmars-d@puremagic.com> wrote:
>
>> Do we have any vector's into Microsoft to get fixes for D'd debugging
>> experience into their debugger? Are there any sympathetic developers
>> at MS?
> haha. they can't do C99 for decades, so i bet that seeing Hell frozen
> is much more realistic scenario.

Why should they? The product is called Visual C++.

It is 30 years now, C++ compiler vendors don't need to sell their language to C developers any longer.

Microsoft already stated that C++ is the way forward and C is only for backwards compatibility.

http://herbsutter.com/2012/05/03/reader-qa-what-about-vc-and-c99/

Since Windows XP most new Windows APIs are COM based, good luck writing COM code in C.

As of Windows 7, the kernel started to accept C++ code.

http://msdn.microsoft.com/en-us/library/jj620896%28v=vs.110%29.aspx

Recently they added the C99 features required by the C++11 and C++14 standards. And stressed once again at Connect, that any remaining feature depends how relevant they are for Microsoft customers.

http://channel9.msdn.com/Events/Visual-Studio/Connect-event-2014/029

If you want to still use a modern C compiler, there are third party compilers to choose from.

Personally I vote for Microsoft approach, C++ allows for much safer coding than C and the C subset is still there anyway.


--
Paulo


December 17, 2014
On Wednesday, 17 December 2014 at 10:33:34 UTC, ketmar via Digitalmars-d wrote:
> On Wed, 17 Dec 2014 09:48:26 +0000
> Tobias Pankrath via Digitalmars-d <digitalmars-d@puremagic.com> wrote:
>
>> std.container.Array(T) if(is(Unqual!T == bool)) vs.
>> std.container.Array(T) if(!is(Unqual!T == bool)).
>> 
>> That's super unhelpful for newcomers.
> that's why newcomers should NOT try to learn the language using
> reference documentation for standard library.
>
> when i started to learn D, i found and read Andrei's book, Ali's book
> and Philippe's "template tutorial". and i never complained that phobos
> reference documentation is "hostile to beginners" -- 'cause it's NOT
> for beginners. you are expected to learn the language before reading
> reference dox.
>
> yet i agree that formatting can be better. but as i tend to produce
> completely unreadable mess when i trying to fix any formatting, i
> didn't do anything in that direction.

I don't think we should require newcomers to understand the is-expression (Even now I have to look it up now and then) and notion of a qualified type and to look of what that Unqual(T) template actually is, just to understand the documentation of an simple container, something that many newcomers will use to write small programs while learning the language.

Learning the language and programming in the language are not two different stages.
December 17, 2014
On Wed, 17 Dec 2014 10:44:25 +0000
Paulo  Pinto via Digitalmars-d <digitalmars-d@puremagic.com> wrote:

> On Wednesday, 17 December 2014 at 10:21:53 UTC, ketmar via Digitalmars-d wrote:
> > On Wed, 17 Dec 2014 18:41:06 +1000
> > Manu via Digitalmars-d <digitalmars-d@puremagic.com> wrote:
> >
> >> Do we have any vector's into Microsoft to get fixes for D'd
> >> debugging
> >> experience into their debugger? Are there any sympathetic
> >> developers
> >> at MS?
> > haha. they can't do C99 for decades, so i bet that seeing Hell
> > frozen
> > is much more realistic scenario.
> 
> Why should they? The product is called Visual C++.
so why their c++ compiler still accepts c code? "for compatibility"? oh, eah, it's very "compatible" to accept ancient C89 and to reject C99.

> Microsoft already stated that C++ is the way forward and C is only for backwards compatibility.
idiots, that's it.

> Since Windows XP most new Windows APIs are COM based, good luck writing COM code in C.
i'm still succesfully using winapi. what am i doing wrong? ah, except resisting to "platform lock-in" with all that COM BS.

> If you want to still use a modern C compiler, there are third party compilers to choose from.
and if i want a modern C++ compiler, i will not chose msvc, as my
workflow is already built around completely different tools. having in
mind that there are alot of C code around, msvc is the worst
possible choise. (ah, and visual studio sux too! ;-)

> Personally I vote for Microsoft approach, C++ allows for much safer coding than C and the C subset is still there anyway.
this is about consistency again. either stop accepting half-baked C and go with pure C++ or fix the damn thing!

but this is ms... a long-time vendor of half-backed solutions for the problems that shouldn't exist in the first place.


3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19