How do you use D?

Ola Fosheim Grøstad ola.fosheim.grostad at gmail.com
Wed Jan 3 17:50:01 UTC 2018


On Wednesday, 3 January 2018 at 16:20:48 UTC, Joakim wrote:
> These languages may all have these problems, but I don't see 
> the connection to your original point about it not being good 
> to think you're the best.

Hm?  I tried to say that it is not good to think that you have 
the best programmers. Or that you are satisfied with only 
appealing to the best programmers.

There are some assumptions about "best" in that attitude that 
isn't healthy for developing an ecosystem.  First of all, it 
might not be true, maybe the best programmers go elsewhere.  
Second of all, programmers generally don't start out as "best".  
And only appealing to experience programmers is not a good long 
term strategy.

Anyway, you probably have a lot more great programmers using 
Javascript than any small language, measured in absolute numbers. 
And when growing a eco system it is those absolute numbers that 
matters. It doesn't matter if 99% are not good if the other 1% 
can grow your infrastructure. And well, right now that means 
developers can be very productive in that eco system (e.g. 
TypeScript, Angular, React etc).


> More programmers don't have a bachelors in CS than those who 
> do.  I think you'll find the percentage who regularly use 
> multiple languages is fairly low, let alone evaluating each one 
> for each job.

I think it depends on what type of developement we are talking 
about. But I see a lot of fuzz about fullstack developers. Not 
sure if that fuzz translates into something at scale, but 
"full-stack" is at least something that is mentioned frequently.


>> Anyway, it is my impression that many C/C++ programmers also 
>> know Python and also have a good understanding of basic 
>> functional programming.
>
> So two tools in the toolbox is enough?

Not sure what you mean by that. I meant to say that my impression 
is that most C/C++ programmers need a higher level language and 
also are capable of using other paradigms than what C/C++ 
encourages. Despite C++ being able to express a lot of the same 
things and also despite C++ being a language where you never 
really reach a full deep understanding of the language.

> Your company is much more likely to bring in somebody with Java 
> experience to write the Android portion.

Mostly because of the iOS/Android frameworks, not really because 
of the languages.

Or rather, the Java language shouldn't be the stumbling block, 
but both of iOS and Android are rather bloated frameworks that 
takes time getting into. Which I think it is intentional. Both 
Apple and Google want developers to be dedicated experts on their 
platform and seems to deliberately go for changes that prevent 
cross platform tooling.

> It is unrealistic to expect the vast majority of programmers to 
> do any more than use one language most of the time.

I don't know. Depends on what kind of development we are talking 
about.

> This actually argues for a single language: you're going to 
> spend a ton of time tracking all those shifting frameworks so 
> you won't have time for a new language too, but at least you 
> won't have to learn a new language every time you pick up the 
> new js framework of the day.

I think there is another way, but it isn't available yet.

Program transliteration and software synthesis should over time 
be able to offset some of these issues.

Most imperative languages are fairly similar.  Most of the code 
we write, whether it is in Python, C+ or D would have a fairly 
similar structure.  In some sections you get something very 
different, but I don't think that is dominating.

(Functional and logic programming tend to lead to more different 
patterns though.)

> The ongoing churn may help new languages with new users and 
> companies, don't think it helps with users who already know a 
> language well.

I don't know. Seems that many in these forums have done work in 
Java, Go, Python, Rust and C++.

> Seems like an oxymoron, tech changes so fast that I don't see 
> how anything could be timeless, even if you really mean "will 
> still be the same 20 years from now." ;)

Right, but digital computing is a relatively new invention (and 
well, even electricity is relatively new ;-).  Over time one 
would think that something "timeless" would establish itself. But 
for now we can just say "stable".

There clearly are some frameworks that have been relatively 
stable. Like matlab. I think that is because matlab has tried to 
closely model the domain that scientists have been trained in 
(linear algebra). But it is interesting that Python is making 
inroads there. That matlab is now perceived as not having good 
enough abstraction mechanisms, perhaps.

On the other hand, the mathematical field of logic is also 
relatively new as it is conceptualized today, and some people are 
exploring paradigms such as probabilistic programming languages 
and what not… So right, "timeless" is not realistic at the moment 
as the basic foundation is still quite new and we are still 
learning how to make computers reason about first order logic… 
(building automatic theorem provers).

> There's always new stuff other than that, eg more limited 
> mobile hardware over the last decade has returned the tech 
> market to earlier times, and native languages like Obj-C and 
> Swift have benefited.

Yeah, as you have pointed out many times, mobile CPUs are quickly 
catching up at the high end and also to some extent on the 
middle-end. What remains to be seen is how the mass-market low 
end picks up.  I think companies like Motorola is pushing the 
curve at the low/middle phone market as Samsung and Apple have 
taken the high end.

> Python has done well in those niches, but when is the last time 
> you saw a popular GUI app written in Python?

Many applications use Python (or Lua or Java or even Visual 
Basic) to tie the pieces together, including the GUI, but they 
use engines written in other languages for interfacing with the 
OS.

> Even Java got nowhere in the consumer GUI market, other than a 
> few p2p apps like Vuze and the now-defunct Limewire, largely 
> for piracy.

JetBrain's products?


> While that market may be important to you, it is a small 
> segment of the programming market.  It's nice that D libraries 
> like Mir are targeting it, but it's not going to move the 
> needle much.

Mmm… it is a small segment of the revenue-based market, because 
scientific programmers are often the scientists themselves (no it 
is not important to me at the moment).  It is a fairly large 
segment though of the overall market. As it includes a lot of 
engineering. Just because those programs aren't sold, either 
because they are in-house, personal or with a very narrow user 
base (like researchers) doesn't mean that these programs are less 
important.


> I believe it is filtered for repeated downloads, but we don't 
> know exactly how.

That's a shame. I'd be interested in knowing what the 
distribution over the different nordic countries is.

> You may not even know that's because of generic programming, 
> you just like all the great libraries.  IOW, you may think you 
> don't need generic programming, but the libraries you do need 
> do need it.

That's right, but you need critical mass for it to matter.  
Otherwise people will just use somewhat slower or somewhat more 
clunky libraries.  Go, Python and JavaScript are doing fine… 
without proper generics.

(TypeScript is better suited for building libraries, but most 
libraries with TypeScript support are JavaScript libraries with 
TypeScript type definitions.)



More information about the Digitalmars-d mailing list