How do you use D?

Ola Fosheim Grøstad ola.fosheim.grostad at gmail.com
Fri Jan 5 14:55:31 UTC 2018


On Friday, 5 January 2018 at 11:49:44 UTC, Joakim wrote:
> Yes, but when I pointed out that it's fine to think you're the 
> best as long as you stay focused on bettering the flaws you 
> still have,

I don't think that thinking you're the best brings anything but 
disadvantages, actually… Except when you are advertising perhaps.


> What would be better, a million JS programmers with 10k great 
> ones who "grow your infrastructure," or 150k D programmers with 
> 30k great ones doing the same?  Holding everything else 
> equivalent proportionally, I'd say the latter.

Well, that is not the scale we are talking about here, but 
actually the former is the better if it means that you get twice 
as many that are paid to grow the eco system full time.  If you 
compare JavaScript with D on that metric you are closer to a 
1000:1 ratio or more in JavaScript's favour…  Not a fair 
comparison, but that's the reality that drives adoption.

When you reach critical mass within a specific domain a lot more 
people will be doing full-time eco system development… (Facebook, 
Google, Microsoft + a very large number of smaller companies).

The browser domain is very large, so not a fair comparison, of 
course.


> speeding up a fundamentally slow and inefficient language 
> design, which a core team of great programmers wouldn't have 
> put out there in the first place. :P

Doesn't really matter in most cases. The proper metric is 
"sufficient for that task at hand". So, if many people are paid 
to do full-time eco system development that also means that the 
tool is sufficient for a large number of use cases…

You can do the same in browsers as people do with Python. Use 
something else for those parts where speed is paramount: stream 
from a server, use WebGL or WebAssembly, or use the browser 
engine cleverly. For instance I've implemented instant text 
search using CSS for even IE9, the browser engines were tuned for 
it, so it was fast.

People use the same kind of thinking with C++/D/Rust as well, i.e 
use the GPU when the CPU is too slow, or use a cluster, or use a 
database lookup…

Bother computer hardware and the very capable internet 
connections people have (at least in the west) are changing the 
equations.

It is easier to think about a single entity like a programming 
language with a small set of isolated great programmers writing 
an application that will run on an isolated CPU, but the world is 
much more complicated now than it used to be in terms of options 
and the environment for computing.


> of programming.  As for "full stack," a meaningless term which 
> I bet actually has less CS bachelors than the percentage I 
> gave. ;)

I understand "full stack" to mean that you can quickly adapt to 
doing  database, server, client and GUI development.

> Saying that most C++ programmers also use python implies that 
> having two tools that you choose from is enough.  In that case, 
> you're basically agreeing with me, despite your previous 
> statements otherwise, as I was saying we can't expect most 
> programmers to learn more than one tool, ie a single language.

No.  The programming style for Python is very different from C++. 
  Just because many C++ programmers also know Python, doesn't mean 
that they don't benefit from also knowing other languages. I bet 
many also know JavaScript and basic Lisp.

> Could be, but that changes nothing about the reality that most 
> programmers are just going to pick one language and some set of 
> frameworks that are commonly used with it.

Ok. I personally don't find the standard libraries for Java and 
C# difficult to pick up as I go.   Google gives very good hits on 
those.

Application frameworks are more tedious, but they are also more 
quickly outdated. So you might have to learn or relearn one for a 
new project anyway.

> That is the current reality, it doesn't matter what 
> hypothetical kind of development you have in mind.

That's not an argument… That is just a unfounded claim.

> D users are the exception that prove the rule, the much larger 
> majority not using D because they're already entrenched in 
> their language.

I don't really think D users are as exceptional as they often 
claim in these forums…

> when you _couldn't_ to entrench themselves in that market.  And 
> as I've pointed out to you before, they're still much more 
> efficient, so until battery tech get much better, you're going 
> to want to stick with those natively-compiled languages.

Not convinced. I think most people on smartphones spend a lot of 
time accessing browser-driven displays. Either in the actual 
browser or as a widget in an app…

It doesn't really matter, because the dominating activity isn't 
doing heavy things like theorem proving or data-mining…

As long as the code for display rendering is efficient, but that 
is mostly GPU.

> Which of those python-glued GUI apps has become popular?  That 
> was the question: I can find toy apps in any language, that 
> nobody uses.

That's not right. Scripting is commonly used for the high level 
layer in productivity applications.

> I've given you an estimate of D users, you haven't said why 
> that hasn't passed your critical mass threshold.

What estimate? Based on what? Using what method?

Does it hold up on Github?

If not, what is the explanation?



More information about the Digitalmars-d mailing list