September 29, 2012
On Sat, 29 Sep 2012 13:06:33 +0200
"Peter Alexander" <peter.alexander.au@gmail.com> wrote:
> 
> The answer to that question is obvious: you should bother going without because other languages provide other things that your pet language does not (e.g. channels + simplicity in this case).
> 
> Searching for a better language is a search like any other. Hill-climbing is a poor search heuristic. Sometimes you have to be willing to lose features to find the higher peaks.
> 

And sometimes I need to get work done instead of trying out all of the 100's of languages out there in some altruistic quest to be fair to everybody.

September 29, 2012
On Saturday, 29 September 2012 at 12:04:50 UTC, Peter Alexander wrote:
> On Saturday, 29 September 2012 at 11:18:40 UTC, Paulo Pinto wrote:
>> On Saturday, 29 September 2012 at 10:53:57 UTC, Peter Alexander
>>> My question to you: Is it okay to reject D solely with these arguments? If not, how is this any different from rejecting Go solely from its lack of generics?
>>
>> Because except for Go, all static languages developed after 1990, which managed to gain mainstream use, have some form of generics.
>
> There's two ways to interpret this sentence:
>
> 1. You claim it is okay to reject Go because it differs from other statically typed languages, or
> 2. You claim that all statically typed languages must have generics to be worth using.
>
> I hope it is not 1, and if it is 2 then again, I find this incredibly unimaginative.

It is 2.

And before you say that it is due to lack of experience with Go.

I have tried. You will find lots of posts made by me about generics
and doing systems programming with GC enabled languages in gonuts.

Actually, you may even find some early code reviews made to my early
attempts to create the Windows version of the os.user package. Which
was latter on picked up by the Go team.

Or the early attempts to support some form of UI in Windows.

So I don't dismiss Go without language experience.

>
> Interestingly, Rob Pike comments on this world view:
>
> http://commandcenter.blogspot.co.uk/2012/06/less-is-exponentially-more.html
> ----

I belong to the C++ category he describes there. Actually his blog entry was discussed to great lengths at Lambda the Ultimate.

Personally I think they are throwing the baby with the water in terms of language design.

Go would have been a great language before Generic Programming, Meta-programming and functional programming became mainstream in the IT corporations.

Nowadays it feels like a step backwards. While using Go I travelled back in time to my university days when I thought Oberon or Component Pascal would become mainstream. Languages which share the same design philosophy.

But that was back in 1994.

--
Paulo
September 29, 2012
On Saturday, 29 September 2012 at 14:03:52 UTC, Nick Sabalausky wrote:
> And sometimes I need to get work done instead of trying out all of the
> 100's of languages out there in some altruistic quest to be fair to
> everybody.

Nothing wrong with that, but rejecting a language because you don't have time to try it out is much different for rejecting it because it lacks a single feature.
September 29, 2012
On Sat, 29 Sep 2012 12:54:26 +0200
"Peter Alexander" <peter.alexander.au@gmail.com> wrote:

> On Saturday, 29 September 2012 at 10:27:26 UTC, Nick Sabalausky wrote:
> > If he were talking about some minor insignificant feature, then
> > I agree
> > it'd be goofy to reject a language solely because of that. But
> > that's
> > not what's happening. Generics are a major thing. Many people
> > *do* find
> > them to make a big difference.
> 
> So, with this in mind, do you think these hypothetical people are all justified?
> 
> (a) [Go programmer]: D is rubbish because it doesn't have
> channels.
> (b) [Lisp programmer]: D is rubbish because it doesn't have
> homoiconicity.
> (c) [Haskell programmer]: D is rubbish because it doesn't have
> full type inference.
> 
> All of those things are considered "a major thing" by their users, and many people do find them to "make a big difference."
> 

If they find those things to be as important to them as I find metaprogramming to be, then yes, of course.

Personally, I think it's a stretch to compare those to "having generics". But that's just me...and, apparently, a hell of a lot of other people too, to Pike's dismay.

> My question to you: Is it okay to reject D solely with these arguments?

If it's in-line with their needs, then yes. It'd be both selfish and absurd for us to demand that everyone tries out and becomes proficient with our language and our language's way of doing things before deciding whether or not our language is right for them and worth their time.

And in addition to all that, I doubt very much that most people who
say things to the effect of "I won't use Go because it lacks generics"
are *truly* basing it *purely* on the lack of generics, so the
whole question is academic anyway. Hell, I'm sure *I've* at some point
probably given the impression that generics are the only reason I'm not
into Go. But the reality is that there are also other reasons, and
"generics" is merely one of the biggest and most convenient to point
out.

Just as an example, I'm sure a *lot* of the "No generics, not interested" crowd would also find this applicable, too:

"I'm happy enough with my current language and don't have time to try another out unless there's already something about it that really stands out to me as being likely worth the investment."

September 29, 2012
On Sat, 29 Sep 2012 14:05:19 +0200
"Peter Alexander" <peter.alexander.au@gmail.com> wrote:
> 
> Interestingly, Rob Pike comments on this world view:
> 
> http://commandcenter.blogspot.co.uk/2012/06/less-is-exponentially-more.html
> ----
> "Early in the rollout of Go I was told by someone that he could not imagine working in a language without generic types. As I have reported elsewhere, I found that an odd remark.
> 
> To be fair he was probably saying in his own way that he really liked what the STL does for him in C++. For the purpose of argument, though, let's take his claim at face value.
> 
> What it says is that he finds writing containers like lists of ints and maps of strings an unbearable burden. I find that an odd claim. I spend very little of my programming time struggling with those issues, even in languages without generic types.
> 
> But more important, what it says is that types are the way to lift that burden. Types. Not polymorphic functions or language primitives or helpers of other kinds, but types.
> 
> That's the detail that sticks with me."
> ----


Sounds like Pike is either implying that all approaches are created equal, or that "types" are inferior. On the contrary, I think there's good reason to prefer the type-based solution.

But maybe I'm wrong. Maybe I don't understand the other approaches well
enough. Maybe Pike would actually convince more people if he
spent more time explaining *how* Go sufficiently addresses the issue
and less time using meta-arguments to rehash "Why can't people just
start liking Go?"

It's unfortunate, because the more I read these quotes of his, the more I have to wonder whether his emperor even has any clothes at all.

September 29, 2012
On Sat, 29 Sep 2012 16:15:51 +0200
"Peter Alexander" <peter.alexander.au@gmail.com> wrote:

> On Saturday, 29 September 2012 at 14:03:52 UTC, Nick Sabalausky wrote:
> > And sometimes I need to get work done instead of trying out all
> > of the
> > 100's of languages out there in some altruistic quest to be
> > fair to
> > everybody.
> 
> Nothing wrong with that, but rejecting a language because you don't have time to try it out is much different for rejecting it because it lacks a single feature.

It's not as different as it may seem.

People have limited time. Some have more, some have less (hell, probably most have less), but *nobody* can go trying out all the languages out there, so we all have to have some some "filter" for picking the ones we feel most likely to pay off, narrowed down to whatever our schedule will even allow. Usually this is all implicit and maybe even sub-conscious, but it's always there.

So when someone is "rejecting a language because it lacks a single feature" without even trying it, then no, I don't believe that they actually *are* rejecting it *just* because it lacks one feature, at least not in most cases. Because there's always still an implicit "I don't have time to pursue a language that I feel may not be likely enough to pay off."

September 29, 2012
On Saturday, 29 September 2012 at 14:27:03 UTC, Nick Sabalausky wrote:
>> My question to you: Is it okay to reject D solely with these arguments?
>
> If it's in-line with their needs, then yes. It'd be both selfish and
> absurd for us to demand that everyone tries out and becomes proficient
> with our language and our language's way of doing things before
> deciding whether or not our language is right for them and worth their
> time.

Again, no one is making any demands. I'm asking for one of two things from people: either try the language then form an educated opinion, or don't try it and say nothing. The problem is that people are reading "no generics", not trying the language, and then shouting out that it is rubbish.


> And in addition to all that, I doubt very much that most people who
> say things to the effect of "I won't use Go because it lacks generics"
> are *truly* basing it *purely* on the lack of generics, so the
> whole question is academic anyway.

See post 4 in this thread. That's what got me started.

http://forum.dlang.org/thread/tpwsxxjghbpsheexyrdq@forum.dlang.org#post-hqhkcxyqtbrbasuknmdt:40forum.dlang.org

Yes, you said "most", and one post is not most, but I see this attitude a lot. Evidently Rob Pike does as well. I'm sure most people here have seen similar arguments against D.
September 29, 2012
On Sat, 29 Sep 2012 19:04:01 +0200
"Peter Alexander" <peter.alexander.au@gmail.com> wrote:

> On Saturday, 29 September 2012 at 14:27:03 UTC, Nick Sabalausky wrote:
> >> My question to you: Is it okay to reject D solely with these arguments?
> >
> > If it's in-line with their needs, then yes. It'd be both
> > selfish and
> > absurd for us to demand that everyone tries out and becomes
> > proficient
> > with our language and our language's way of doing things before
> > deciding whether or not our language is right for them and
> > worth their
> > time.
> 
> Again, no one is making any demands. I'm asking for one of two things from people: either try the language then form an educated opinion, or don't try it and say nothing. The problem is that people are reading "no generics", not trying the language, and then shouting out that it is rubbish.
> 
> 
> > And in addition to all that, I doubt very much that most people
> > who
> > say things to the effect of "I won't use Go because it lacks
> > generics"
> > are *truly* basing it *purely* on the lack of generics, so the
> > whole question is academic anyway.
> 
> See post 4 in this thread. That's what got me started.
> 
> http://forum.dlang.org/thread/tpwsxxjghbpsheexyrdq@forum.dlang.org#post-hqhkcxyqtbrbasuknmdt:40forum.dlang.org
> 
> Yes, you said "most", and one post is not most, but I see this attitude a lot. Evidently Rob Pike does as well. I'm sure most people here have seen similar arguments against D.

Yea, I still don't see the problem.

First of all, he wasn't "shouting out that it is rubbish" - only stated that he had assumed it to be *and* even asked if "is there something more to it".

Second, obviously he's one of the many, many programmers who do highly value generics, so it's not unreasonable for him to dismiss it without trying it. How many people have so much free time they can go trying out all the languages that sound wrong for them?

If Pike sees this sort of thing a lot and is bothered by it, then he
needs to either reevaluate Go's stance on generics or provide
direct explanation why Go doesn't need them without dancing
around the issue with things like "Less is More" vagueness and "They're
just complaining" hand-waving. Otherwise he can't expect people's
apprehensions about it to magically go away.

We had a big PR problem with the whole two-incompatible-standard-libs thing. What did we do? We fixed the damn problem and then communicated whenever necessary about how and why it wasn't an issue. What we didn't do was hop on our blogs to whine that people loved to complain and weren't being fair to D.

September 29, 2012
On 9/29/2012 1:08 AM, Peter Alexander wrote:
> As you can see, no matter what you think of these features, the arguments are
> pointless because it is very clear that you can do meaningful work without them.
> We get by without channels, homoiconicity, and full program type inference; just
> as the Go programmers get by without generics.

I think that argument is making the claims that:

1. all features are equally valuable

2. if one can get by without a feature, then that feature is not needed

Both of those are invalid.
September 29, 2012
On 9/29/2012 3:54 AM, Peter Alexander wrote:
> So, with this in mind, do you think these hypothetical people are all justified?
>
> (a) [Go programmer]: D is rubbish because it doesn't have channels.
> (b) [Lisp programmer]: D is rubbish because it doesn't have homoiconicity.
> (c) [Haskell programmer]: D is rubbish because it doesn't have full type inference.
>
> All of those things are considered "a major thing" by their users, and many
> people do find them to "make a big difference."

People can and do make those arguments and justifications.

The question is, really, how large of a class of programming problems does each of those features address?