March 15, 2015
On Sunday, 15 March 2015 at 04:32:25 UTC, Walter Bright wrote:
>
> I'd also prefer to get rid of /+ +/ comments, I thought they'd be more useful than they are.

Using /+ +/ regularly.
Very useful to comment out large areas of code.
March 15, 2015
On Sunday, 15 March 2015 at 10:53:21 UTC, Marc Schütz wrote:

> I hope you'll get better!
Thanks.  On the mend, but it takes time...

>> 3. I have said so before (the GroupBy docs) - standard library documentation is 'perfectly clear' if you have a technical mindset and are used to reading formalisms, but it is horrendously intimidating if not (which applies to many people).  We need more examples, and they should put the use in context rather than just being tiny fragments - ie show how to do something useful with the function (cf python docs).  There should also be a guide to functions writing from point of what one wants to achieve.  toLower in std.string, but I need to go to std.ascii for doing the same thing to a character.  Eminently logical, but not obvious if you don't know where to look.
>
> It seems the accessibility/discoverability of string handling is a common complaint. People expect certain functions to be available for strings, like startsWith, trim/ltrim/rtrim, repeat, maybe even regex matching. Now, these things are all available in other parts of Phobos, or easily implementable using components from all over the standard library, but a beginner won't know this, and even if, it's inconvenient.
>
> Maybe we should add the most common functions to `std.string`? Either as aliases or re-exports, or even (re)implement them there with the appropriate semantics if necessary. For example, people would expect a hypothetical `std.string.repeat` to be eager, whereas `std.range.repeat("hello").take(5)` is lazy. Some operations may also decay to ranges of `dchar`, but we'd want to preserve the string type.


No opinion on this myself, but aliases have a cost in terms of confusion (what's the difference?   err there is none) whereas there may be some value in reimplementation with appropriate semantics at some future point.

But I think the closest sticking point is not lack of order in library organisation - just that the documents are written from the perspective of the library writer and there is currently no coherent, complete, and polished set of documents primarily oriented to 'how do I accomplish this task'. I understand why that is, but if one identifies a problem one can work away at it slowly over time.
March 15, 2015
Walter Bright:

> I'd also prefer to get rid of /+ +/ comments, I thought they'd be more useful than they are.

I prefer to get rid of /* */ instead :-) Because /++/ can do things /**/ can't.

Bye,
bearophile
March 15, 2015
On Sunday, 15 March 2015 at 12:52:37 UTC, Chris wrote:
> Apart from performance issues, for language processing, string handling etc., Python quickly becomes a nightmare (UTF-8). Then there are issues like the one that classes cannot really have private variables.

[I am by no means expert in Python, but python 3 does not seem to be an improvement if you want to be able to accomplish tasks involving simple processing of ASCII files]

> Sometimes advocacy of Python seems a bit absurd to me when it is along the lines of "Use Python, because it's easy. But don't use real Python, use Cython or Numba (and whatnot), Python is too slow". I.e. "Use it, but don't use it!" This shows that there is something wrong. You don't have this problem with D. You too wish you were using D everywhere, which tells me that the Python + C(++) solution is not optimal.

Modern people are not very good with deferred gratification.  Python allows you to throw something working up quickly, but then there are less obvious costs that are deferred.  I agree that it doesn't seem to be a positive to have your codebase split between different languages - having to keep things in sync and have people understand both codebases.  That's one of the reasons I am trying to do everything in D (although for javascript charting looks like I have no easy alternative to using bokeh in python - until I can get around to writing a D implementation to make the JSON).

I think it would be a positive to have some user stories from people who have moved from Python+Cython or Python+C to D and seen significant benefits.  I am sure there are plenty - most users don't seem to be active in the forum.  And we should collect user stories, pretty them up, and have them reachable from the front page very easily.  People make decisions based upon feelings (indeed without feelings there can be no decision), and so stories - based in reality - can be more persuasive than dry facts in persuading people.

We should try to identify what the biggest sticking points are for people considering making the switch, both real (like documentation) and perception (like 'D has no web/server framework'.

> All I'm saying is that when people start a new project, I advise them to use D instead of Python. But there is no way to win against the cult of Python in scientific programming. It's too easy, too tempting at the start. Instant gratification and the feeling that you're on safe ground. D can't compete with this easily.

Of course there is, but it will take time.  One wants a very high appeal to a small group of the potential user base initially (which no doubt will be the best part) and from there things will diffuse.  Peter Thiel makes the same point I did (based on the Innovator's Dilemma) in his book "Zero to One".

> Maybe we should invent (or continue with existing efforts) to write a scripting language based on D (or a Python interpreter or something that serves as a bridge to existing technologies (other than C)).

I was thinking about this just recently.  There used to be a D scripting language (now rebranded as something else - I forget the name), but this fell into disuse post rdmd.  Rdmd is great, a real simple win, but doesn't substitute for a scripting language in all uses.

In particular, I do agree with Russell about the value of an ipython/Jupyter notebook for scientific computing (which means also parts of finance) - especially for playing with data.  Excel won't cut the mustard any more for many modern data sets, which means new tools like ipython notebooks come into focus.

For the time being it's not the lack of a notebook, but the lack of dataframes and pandas style functionality that prevent using D easily in this domain.  But dataframes are not that complicated or difficult, and it is just a bit of work, and Vlad Levenfeld has made a good start on some of this.

I wonder whether it would be feasible to integrate the D REPL with Jupyter.  Russell?

> If I have time, I might also put together some code snippets with the most common tasks in programming, like startsWith and so on.

This would be great.  I bet more generally there are many sections of code one has oneself (or knows of on github) that could be extracted and documented in a nice, aesthetically appealing, and structured way as part of a D tutorial series.

It would not be right to expect Herr Doktor Ruppe to do this work, but maybe a few could get together and start on this and send to him if he is open to featuring.  If/when I can, I will try to help.  The advantage of doing in this manner is the project is less overwhelming than trying to eat the elephant in a bite.  (The disadvantage is a loss of coherence).
March 15, 2015
do you people really want to see this language be more popular? do you? doesnt look like it at all to me, the only few people in those 18+ pages that are actually telling you the real problems are mostly being ignored for futile python, go and rust talk, seriously?

let me go ahead and say that no i dont use D, ive found it awhile ago and came back to look at it from time to time which puts me in a perfect spot to tell you that the fundamental problems for new comers are right here, in those posts:

page 7 - Leandro Motta Barros' post
page 10 - Almighty Bob's first post
page 11 - Almighty Bob's post (again)
page 14 - rumbu's first post
page 17 - Xavier Bigand's post
page XX - many of Chris' posts
(may have missed a few but those are the ones that jumped out at me where i really went "THIS MAN GETS IT!")

yes, those are fundamental problems FOR A NEW COMER! 90% of the posts i see in this thread are a bunch of... i dont even know? advanced "problems" that new comers would have no clue what they are about, only those few posts i mentioned are seeing the real problems.

this community seems to be filled with really intelligent, dedicated people capable of solving some of the hardest challenges but you fail to see the tiny little bitty small things that are stopping the new comers and instead you worry about things that are far beyond their scope people...

i guess ill find out in a few months when i visit the language again if those posts have been paid attention to, with that said i wonder how many people will reply to this because they havent read until the end (tiny little bitty detail slipping by again?)
March 15, 2015
On Friday, 13 March 2015 at 03:24:44 UTC, Walter Bright wrote:
> On 3/12/2015 5:20 PM, Andrei Alexandrescu wrote:
>> * Golang: simple!
>
> D1 was the simple version of D. People wanted more.
>
> Java was originally sold as, and got a great of adoption because, it was a C++ like language with all that annoying complexity removed.
>
> There's no doubt about it, people like simple languages. We should very much keep that in mind when evaluating proposals for new features.

Um, This is wrong. You already have simple languages. People are not going to choose D no matter how much you dumb it down. What sets D apart is it's advanced features... remove them or stop such enhancements and it won't be able to compete with any other language.


In fact, the opposite thinking should be true. Add the most advanced feature rich set to D and then nothing will be able to compete with it. If, on top of that, you don't force someone to use them then you have the best of both words(power when you need it and simple when you don't).

There's reasons why people by luxury cars. D is like an Cadillac and Go is like a volt. If you turn D in a volt then what will people buy that like Cadillac's?
(Someone will create a new language trying to make a Cadillac and the whole process starts over...)


March 15, 2015
On Sunday, 15 March 2015 at 14:15:18 UTC, disme wrote:
> do you people really want to see this language be more popular? do you? doesnt look like it at all to me, the only few people in those 18+ pages that are actually telling you the real problems are mostly being ignored for futile python, go and rust talk, seriously?
>
> let me go ahead and say that no i dont use D, ive found it awhile ago and came back to look at it from time to time which puts me in a perfect spot to tell you that the fundamental problems for new comers are right here, in those posts:
>
> page 7 - Leandro Motta Barros' post
> page 10 - Almighty Bob's first post
> page 11 - Almighty Bob's post (again)
> page 14 - rumbu's first post
> page 17 - Xavier Bigand's post
> page XX - many of Chris' posts
> (may have missed a few but those are the ones that jumped out at me where i really went "THIS MAN GETS IT!")
>
> yes, those are fundamental problems FOR A NEW COMER! 90% of the posts i see in this thread are a bunch of... i dont even know? advanced "problems" that new comers would have no clue what they are about, only those few posts i mentioned are seeing the real problems.
>
> this community seems to be filled with really intelligent, dedicated people capable of solving some of the hardest challenges but you fail to see the tiny little bitty small things that are stopping the new comers and instead you worry about things that are far beyond their scope people...
>
> i guess ill find out in a few months when i visit the language again if those posts have been paid attention to, with that said i wonder how many people will reply to this because they havent read until the end (tiny little bitty detail slipping by again?)

We invariably end up talking about language features and syntax, as if D lost out against Go, because of feature X being (or not being) there. We lose, because we fail to give people that warm glow in their chests. The feeling of "now I have something", which is basically what makes people go for something. I felt like this about D when I first got to know it, after a long period of being frustrated with every other language. Although irrational, my intuition was that D would offer me a lot, and it hasn't failed to do so. But this is, because I was willing to make an effort. Many potential users are either not willing to make an effort or they don't have enough time. So we should make it as easy as possible for them. As was said in a post earlier, the decision to go for language X is often not 100% rational, but also based on subjective positive feelings. To ignore this basic human fact, doesn't help us. Having a great language with advanced features and doing some "feel good" marketing are not mutually exclusive.
March 15, 2015
On Sunday, 15 March 2015 at 05:06:41 UTC, Walter Bright wrote:
> On 3/13/2015 2:20 PM, bearophile wrote:

> I have used languages that did not have implicit casting (Pascal) and didn't have a positive experience with it. It didn't detect a single actual bug, and managed to be quite annoying.

I've been using D for a month and already had 3 bugs caused by implicit casting. The fact that...

int a = 0;
float b = 1;
a = a+b; // Causes a compile time error and...
a += b; // does not

Is absolutely ludicrous.

FWIW maybe with the kind of programming your doing you wont see the issues with that. But for me, DSP and statistics, I dont ever want implcit casts between float and int.

In fact nine times out of ten I want specific rounding when converting from float to int.
March 15, 2015
On Sunday, 15 March 2015 at 14:15:18 UTC, disme wrote:
> do you people really want to see this language be more popular? do you? doesnt look like it at all to me, the only few people in those 18+ pages that are actually telling you the real problems are mostly being ignored for futile python, go and rust talk, seriously?
>
> let me go ahead and say that no i dont use D, ive found it awhile ago and came back to look at it from time to time which puts me in a perfect spot to tell you that the fundamental problems for new comers are right here, in those posts:
>
> page 7 - Leandro Motta Barros' post
> page 10 - Almighty Bob's first post
> page 11 - Almighty Bob's post (again)
> page 14 - rumbu's first post
> page 17 - Xavier Bigand's post
> page XX - many of Chris' posts
> (may have missed a few but those are the ones that jumped out at me where i really went "THIS MAN GETS IT!")
>
> yes, those are fundamental problems FOR A NEW COMER! 90% of the posts i see in this thread are a bunch of... i dont even know? advanced "problems" that new comers would have no clue what they are about, only those few posts i mentioned are seeing the real problems.
>
> this community seems to be filled with really intelligent, dedicated people capable of solving some of the hardest challenges but you fail to see the tiny little bitty small things that are stopping the new comers and instead you worry about things that are far beyond their scope people...
>
> i guess ill find out in a few months when i visit the language again if those posts have been paid attention to, with that said i wonder how many people will reply to this because they havent read until the end (tiny little bitty detail slipping by again?)

Why do you believe that something has to be dumbed down for your sake instead of stepping up and learning learning something that will prove to be more powerful in the end?

I don't think D or anything should kowtow to "KISS". Of course the lazy ignorant masses want this but humanity ultimate suffers... and there is enough simple programming languages for simple people. Do we really want another Python, Go, Java, perl, php, asp, JS, lua, Ruby, Rust... Oh, wait, instead of listing hundreds of languages, just look here:

https://en.wikipedia.org/wiki/List_of_programming_languages

Most of those damn languages are essentially just syntactically different. Python vs Perl vs php? Who cares, it's all the same crap. If all the energy went in to creating a better languages with more power(power != complex) instead of just duplicating the stone wheel then maybe we can get somewhere?

I really find it odd when someone complains about a "feature" but never uses it. e.g., "I don't like /++/", How often do you use it? "Never, I don't like it!"... then whats the problem, if you don't use it then how is it getting in the way of your progress? "Well, because other people use it and I get confused when I see it in their code!". So, instead of allowing them to program the way they want, you want to control them so you don't have to think as hard?

Wouldn't you agree: "The best language is the one that gets out of the way and lets you do exactly what you need to do in the most efficient way(which isn't just about time).



March 15, 2015
On Sunday, 15 March 2015 at 14:15:18 UTC, disme wrote:
> do you people really want to see this language be more popular? do you? doesnt look like it at all to me, the only few people in those 18+ pages that are actually telling you the real problems are mostly being ignored for futile python, go and rust talk, seriously?
>
> let me go ahead and say that no i dont use D, ive found it awhile ago and came back to look at it from time to time which puts me in a perfect spot to tell you that the fundamental problems for new comers are right here, in those posts:
>
> page 7 - Leandro Motta Barros' post
> page 10 - Almighty Bob's first post
> page 11 - Almighty Bob's post (again)
> page 14 - rumbu's first post
> page 17 - Xavier Bigand's post
> page XX - many of Chris' posts
> (may have missed a few but those are the ones that jumped out at me where i really went "THIS MAN GETS IT!")
>
> yes, those are fundamental problems FOR A NEW COMER! 90% of the posts i see in this thread are a bunch of... i dont even know? advanced "problems" that new comers would have no clue what they are about, only those few posts i mentioned are seeing the real problems.
>
> this community seems to be filled with really intelligent, dedicated people capable of solving some of the hardest challenges but you fail to see the tiny little bitty small things that are stopping the new comers and instead you worry about things that are far beyond their scope people...
>
> i guess ill find out in a few months when i visit the language again if those posts have been paid attention to, with that said i wonder how many people will reply to this because they havent read until the end (tiny little bitty detail slipping by again?)

most of the posts you linked just said there's documentation issues. I don't think anyone disagrees with that.