December 28, 2017
On Wed, 2017-12-27 at 20:49 -0800, Walter Bright via Digitalmars-d wrote:
> On 12/27/2017 8:29 AM, Russel Winder wrote:
> > This does not support the original claim that the design of D by
> > you is
> > based on psychology. It may be based on your perception of other
> > programmers needs, which is fine per se, but that is not
> > psychology-
> > based design.
> 
> All programming language design is based on human factors, i.e.
> psychology. If
> it was purely computer science based, it would be in binary.

If you want to believe that fine. Clearly you are missing the point I am making, which clearly must be my fault for bad expression. Also clear it is not worth progressing this debate.

-- 
Russel.
==========================================
Dr Russel Winder      t: +44 20 7585 2200
41 Buckmaster Road    m: +44 7770 465 077
London SW11 1EN, UK   w: www.russel.org.uk


December 28, 2017
On Wed, 2017-12-27 at 16:44 +0000, Laeeth Isharc via Digitalmars-d wrote:
> 
[…]
> That's like saying the way George Soros trades is not based on psychology because he doesn't refer to the literature in making and articulating his decision-making process.  Instead people write papers about how he thinks, because it's not yet in the literature!
> 
> If published knowledge were what was most important or valuable then anyone intelligent with an interest in a subject would be part of a war of all against all, because how is it possible to have an edge?  But I don't think human expertise can be described in that manner.  Karl Polanyi's work is quite interesting:
> 
> https://en.wikipedia.org/wiki/Tacit_knowledge
> 

I think you are missing the point, but to continue this here is to go way off topic for this thread and indeed this email list, so maybe we should start a thread elsewhere to continue this.

-- 
Russel.
==========================================
Dr Russel Winder      t: +44 20 7585 2200
41 Buckmaster Road    m: +44 7770 465 077
London SW11 1EN, UK   w: www.russel.org.uk


December 28, 2017
On Wed, 2017-12-27 at 01:23 +0000, codephantom via Digitalmars-d wrote:
> […]
> 
> But the design of graduate studies really needs to be radically transformed, as they simply try to pack far too much in...leaving students without any time to reflect on what they're doing, or why they're doing it.

In which country? All countries have different education systems: you
cannot apply a criticism of one globally.

> In addition, we live in 'the age of distractions and mulitasking', so students really learn very little these days from doing a degree..(particulary those packed with too much stuff).

And the evidence is? I know the USA government department are no longer allowed to use words and concepts such as science-based and evidence- based, but the rest of the world still works on needing evidence to back up an opinion.

> I think this is why (at least in Australia), there is a significant trend towards studying degrees part-time - the cognitive load of full-time degrees not longer support the way people want to (or just happen to) live these days.

Or they just do not have the money to study full-time?

> Until univerties stop trying to be money making machines, and get back to teaching people how to learn about useful things, then not much will change.

Not sure which country this is an observation on, but again all countries are different so a global opinion is not possible. The problem in the UK is the shift from wholly government funded tertiary education, to partially government, partially personal funded tertiary education. The cynical would see this as a way of stopping poor people getting an education.

> Anyway, too see how useful it is, to combine psychology and programming language/library design, here is a great paper:
> 
> https://synesthesiam.com/assets/hansen2012_architectures.pdf
> 
> btw. One of the things I like most about D, has to do with 'chunking comprehension' - and in comparison to C or C++, D is the winner for sure.
> 
-- 
Russel.
==========================================
Dr Russel Winder      t: +44 20 7585 2200
41 Buckmaster Road    m: +44 7770 465 077
London SW11 1EN, UK   w: www.russel.org.uk


December 28, 2017
On Wed, 2017-12-27 at 18:41 +0000, Laeeth Isharc via Digitalmars-d wrote:
> 
[…]
> That's an extremely odd way to conceive of D, IMO, like conceiving of a banana as being like an apple, only it tastes like a banana and has a different shape.

Not really. When you write a function and give it a name, you extend
the working programming language for the application by the label and
it's abstraction.

> If a general purpose programming language is to be conceived of as a domain specific language, what's the difference between a true domain specific language and a regular programming language?

There isn't one. As you write a program in the base language you extend the working language by the abstractions, functions, classes, etc. that you give names to. The application creates it's own working language based on the base general purpose language.

Further the programmer has their own head language which is based on the base programming language but with influence of all previously learned languages. So a person who first learned Fortran and then D has a different head language to a person who has learned C then D. These two people appreciate the use of D in different ways so the starting point for writing any program using D is different.

Marian Petre has spent 30 or so years experimenting on the head language and programming expertise, as have others.

[…]
> 
> I don't think I suggested that tribalism in the everyday sense of
> the word is favourable to the adoption of a language.  But that
> aside, C is quite a big example, and I don't see that it has no
> relevance to the present, even though conditions are of course
> different.  Was Python adopted because of a big marketing budget?
>   If so, I didn't know that - who paid for it?  How about R?

Python hit the scene in an interesting way and gained a small following. That tribe then grew fairly organically without, at least initially, any formal corporate backing. Even today Python development is not directly backed by the corporations, but there is significant indirect support now. You are right, Python is an example, post C, of a language that grew without marketing budget.

R grew as a domain specific language for statistics. Whilst R could
grow, from what I have seen (so not experimental data), people switch
to Python for it's generality rather than continue with R. My personal
sample is biased as it was hedge funds needing R → Python training, and
hedge funds and others needing Matlab→ Python training.

> I think you also need to consider consequences of beliefs if you are wrong and the choices available in circumstances (unless you can figure out how to create new choices).  You write as if adoption is flatlining.  It isn't - it's growing at a healthy pace, as best I can see.  Human perception doesn't deal very well with compound growth.  It's disappointing for a long time, and all of a sudden it's surprising.

:-)

This is not a point we can argue with philosophy, we must await actual data in the future.

> It's by far best at this point to get across successful stories about the adoption of D to people who are already receptive to them because they have some problems that D might help with than to try to get people to listen to you who have no interest in listening.  Persuasion works when people are ready to move towards you.  You can't compel that.

Agreed. However I'd say you don't need to have them want to move to you, though that helps, just that they want to move away from where they are now.

Having constructive ripostes for negative criticism rather than just getting defensive also helps. No excuses, that is guaranteed to lose support.

I like D and am using it for some Gtk stuff. However the GStreamer folk are backing Rust (for memory safety issues noted earlier) so even though D has a GStreamer binding (thanks to Mike and GtkD) I more or less have to use Rust because it is the official binding. Comparing and contrasting D and Rust is interesting for me. Both have many pluses and many minuses. However, in the end, the GStreamer core people know C, C++ a bit, D not at all. I suspect even if the choice had been Rust or D, Rust would have been chosen because it has no GC and D is a GC language.

-- 
Russel.
==========================================
Dr Russel Winder      t: +44 20 7585 2200
41 Buckmaster Road    m: +44 7770 465 077
London SW11 1EN, UK   w: www.russel.org.uk


December 28, 2017
On Tuesday, 19 December 2017 at 09:54:05 UTC, Walter Bright wrote:
> "C, Python, Go, and the Generalized Greenspun Law"
>
> http://esr.ibiblio.org/?p=7804

Aaaahhhh... if only D had no GC!
But then there is no such thing as perfection in this world.
December 28, 2017
On Thursday, 28 December 2017 at 11:27:29 UTC, Russel Winder wrote:
> On Wed, 2017-12-27 at 18:41 +0000, Laeeth Isharc via Digitalmars-d wrote:
>> 
> […]
> However the GStreamer folk are backing Rust (for memory safety issues noted earlier) so even though D has a GStreamer binding (thanks to Mike and GtkD) I more or less have to use Rust because it is the official binding. Comparing and contrasting D and Rust is interesting for me. Both have many pluses and many minuses. However, in the end, the GStreamer core people know C, C++ a bit, D not at all. I suspect even if the choice had been Rust or D, Rust would have been chosen because it has no GC and D is a GC language.

Not only GStreamer, Rust is on its way to become an offical GNOME language, and who knows, eventually take over Vala's role.

December 28, 2017
On Thursday, 28 December 2017 at 15:57:18 UTC, Paulo Pinto wrote:
> On Thursday, 28 December 2017 at 11:27:29 UTC, Russel Winder wrote:
>> On Wed, 2017-12-27 at 18:41 +0000, Laeeth Isharc via Digitalmars-d wrote:
>>> 
>> […]
>> However the GStreamer folk are backing Rust (for memory safety issues noted earlier) so even though D has a GStreamer binding (thanks to Mike and GtkD) I more or less have to use Rust because it is the official binding. Comparing and contrasting D and Rust is interesting for me. Both have many pluses and many minuses. However, in the end, the GStreamer core people know C, C++ a bit, D not at all. I suspect even if the choice had been Rust or D, Rust would have been chosen because it has no GC and D is a GC language.
>
> Not only GStreamer, Rust is on its way to become an offical GNOME language, and who knows, eventually take over Vala's role.

I haven't followed Gnome+Rust news. What suggests Rust may be on its way to become an official Gnome language?

I'd think that people looking to write apps for Gnome would be more inclined to use a *higher*-level language, like D (see GtkD) or Python (see PyGObject) rather than a lower-level one like Rust where there's a need to deal with borrowing and lifetimes.

Another possible contender I'd forgotten about: [Kotlin/Native](https://github.com/JetBrains/kotlin-native). I see they have some sample code for using GTK: <https://github.com/JetBrains/kotlin-native/tree/master/samples/gtk>.

December 28, 2017
On Wednesday, 27 December 2017 at 18:13:41 UTC, Russel Winder wrote:
> The challenger has to offer something that the community value. Rust offers memory safety over C. D offers "better C++". This is the wrong message to achieve traction. D must offer something that C++ does not offer.

If you're a better version of one of the market leaders, that's good enough.  If you were just a better Erlang, that'd be a marketing problem!

> But as of 2017-03-30 I have no hidden agenda, i.e. I retired. :-) This mjeans I am just doing what I want, which currently is organising ACCU conference, organising DevoxxUK conferences and programming DVB-T and DAB clients. D has failed to get traction at ACCU, has no chance at all at DevoxxUK, and has lost to Rust in DVB-T and DAB applications.

So D is invisible in the places you frequent, but has anybody written an entire storage system in Rust?

https://www.theregister.co.uk/2017/12/22/a_dive_into_wekaios_parallel_file_system_tech/

My point is that D and Rust are both currently lower-traction languages, so it's expected that you don't find them in many places.  Rust is certainly doing better right now, because it is focused on the niche of memory safety, but that means Gerald almost certainly isn't going to use it for his Gtk-based tiling terminal emulator:

https://dlang.org/blog/2017/08/11/on-tilix-and-d-an-interview-with-gerald-nunn/

D and Rust are going after different markets, but D is trying to stay more general-purpose, which Rust has abandoned so far (though their upcoming GC may be a step towards more general use).

On Wednesday, 27 December 2017 at 18:41:41 UTC, Laeeth Isharc wrote:
> That's really the whole point about D.  It's an era where people start out assuming that using the right tool for the job means that one tool can't do two different kinds of job well.  But, as Walter has said elsewhere I think, in some cases that's because the tools people are used to using are limited, whereas in fact there's no need for that - just use one tool that's good at both.
>  It's going to be a struggle to recognise such a tool if you start with the presumption it cannot exist.

This reminded me of a current theme in tech, the tension between modularity and integration.  Here's an example quote from a couple months ago:

"But the long arc of history shows how hard it is to succeed in vertical integration after you build on horizontal foundations. Generations of managers graduated from the modular school of thought, specializing rather than generalizing. Now they are facing an integrated experiential world where progress depends on wrapping the mind around very broad systems problems."
http://www.asymco.com/2017/10/04/orthogonal-pivots/

The canonical example is how Apple doesn't compete on feature/spec checklists but on an integrated experience that just works better.  That may be tougher to market for tech users, but it is increasingly what people want, even many programmers.
December 28, 2017
On Thursday, 28 December 2017 at 20:03:06 UTC, Joakim wrote:
> The canonical example is how Apple doesn't compete on feature/spec checklists but on an integrated experience that just works better.  That may be tougher to market for tech users, but it is increasingly what people want, even many programmers.

Spot on.

Even markets which are occupied by tech users, like BSD/Linux servers goes into this direction. Systemd is a prime example. It allows modern functionality and integration which in today's world is a must. And it still not provies enough. Devices are hotplugged all the time, they go in different power states, they respond asynch to system wide, net wide, and soon, world wide events ... the user mode paradigm of Unix is woefully inadequate and unprepared for this world. It needs serious adjustments. (arguably  even kernels on free unix like OSes are unprepared, no modern LPC comparable to what can be found in NT derived kernels for example)

Yet the users do not seen it this way. A big part of Linux users went so far as to make life threats towards systemd engineers. They hate any attempt to modernization and integration. They do prefer the autoexec.bat like init systems spawning fragile scaffoldings of scripts. Too much choice begets fragmentation, both from a technical point of view and a social one. Fragmentation begets tribes, and tribes kill each other.

Likewise, in a company , it is in my opinion better to keep the languages used across the board as limited as possible, instead of an everlasting search for best tool for each of the problem you face. Just see if you can solve it with the tools you already have, don't try to build a scaffolding of techs you barely unde5rstand and control because the are the "best"
December 28, 2017
On Thu, 2017-12-28 at 16:43 +0000, John Gabriele via Digitalmars-d wrote:
> On Thursday, 28 December 2017 at 15:57:18 UTC, Paulo Pinto wrote:
> > On Thursday, 28 December 2017 at 11:27:29 UTC, Russel Winder wrote:
> > > 
[…]
> > Not only GStreamer, Rust is on its way to become an offical GNOME language, and who knows, eventually take over Vala's role.

I think Vala is rapidly becoming a failed experiment. A great idea to embody the GNOME object model via a programming language with a code generator to C, but traction outside a core group has failed.

> I haven't followed Gnome+Rust news. What suggests Rust may be on its way to become an official Gnome language?

There is an increasing dissatisfaction with C for GNOME object model working due to lack of RAII and buffer overruns, at least in the small area of GNOME stuff I know.

> I'd think that people looking to write apps for Gnome would be more inclined to use a *higher*-level language, like D (see GtkD) or Python (see PyGObject) rather than a lower-level one like Rust where there's a need to deal with borrowing and lifetimes.

Python works fine but people are increasingly against a non-native language, that distributed as source with perceived lack of compile type checking. Only one of the complaints has any real validity, and that is very real.

> Another possible contender I'd forgotten about: [Kotlin/Native](https://github.com/JetBrains/kotlin-native). I see they have some sample code for using GTK: <https://github.com/JetBrains/kotlin-native/tree/master/samples/gtk>.

Last time I looked at the Kotlin/Native GTK+ binding it was literally calls to the C API, which is worse than using C because with Kotlin you expect a higher level binding – which C++, D, and Rust all provide.

-- 
Russel.
==========================================
Dr Russel Winder      t: +44 20 7585 2200
41 Buckmaster Road    m: +44 7770 465 077
London SW11 1EN, UK   w: www.russel.org.uk