On Wednesday, 7 February 2018 at 21:02:11 UTC, data pulverizer wrote:
On Tuesday, 30 January 2018 at 20:45:44 UTC, Andrei Alexandrescu wrote:
https://www.quora.com/Why-hasnt-D-started-to-replace-C++

Andrei

The Betamax Problem

When you introduce something new, how do you know that it is going to be compelling enough for people to move from whatever it is they are doing and use your new thing?

It is not an easy question to answer but in the realm of programming languages it's a very tough question, because people are going to have to learn a whole new language, and its going to come with costs and potentially unquantifiable risks for any company that attempts to shift to that language. So whatever it is you are offering has to be tremendously compelling compared to what is already there.

A great deal of confusion in the world arises from failing to make distinctions between things that appear to be the same but really aren't when you look closely.

Also, in about 1870 odd there was a revolution in economic thought that took place more or less simultaneously in Vienna, Lausanne and Cambridge. The Marginal Revolution had yet to be fully digested in the way people think about social phenomena.

My director of studies at Cambridge, Lord Eatwell, Labour spokesman in the House of Lords, was known for his devotion to the work of Pierro Sraffa, a man known principally for a rather hostile book review of a book by Hayek and a rather slim book of his own, Production of Commodities by Means of Commodities, a book that tried to draw insights about the economy from a model with two goods, corn and gold.

And I think considering firms as homogeneous, with the same cultural values and facing the same situation will be about as insightful as I think Sraffa's work ended up being - not very.

Life is risk. It's risky to get out of bed in the morning, but it's also risky not to get out of bed. And it's true that an agent acting on behalf of someone else - ie a manager who has no stake in the business - will often think about things first in terms of not taking a decision that might lead him to be blamed. But most firms are not large enterprises, and in the US small and medium sized firms over time create more than 100% of job growth, last I checked. And a manager who is also at least to some extent a principal ie an owner in the business knows that to be conservative in a time of change is not necessarily prudent, and it may well also not be the profit maximising choice.

As someone who is both a manager and a part owner I disagree that a new technology choice needs to be overwhelmingly compelling to be considered. And I don't get paid to make decisions about things that are easily quantifiable - what for you need me for if the numbers are straightforward?

The reality is that firms are very different, in a dynamic industry even within the same sector they are different. And at any one time there are a bunch of people close to trying D or more. You don't need to persuade everyone to grow. You just need to persuade a few more people to tip over the margin. And there are often plenty of safe ways to take risks. You just need to make sure you have a plan B. Listen to Manu's talk for a real example of what I mean. And note that he said Finns are very conservative.

An important question is what problem set does D solve? It's very hard to sell a language to industry without convincingly answering that question. If you are selling them a 'better' language - that's a tougher sell. If you are selling a solution to a particular problem set - you stand better a chance.

But really who is selling D to anyone? We are very far from that stage right now. Did someone sell D to Microsoft COM team, Remedy or to Weka? Nope. People who had earned the authority to decide became aware of the language end decided to use it. And they did so because for them it solved their particular problems better then anything else they could think of.

For a manager to consider D as the successor to C++, it doesn't just have to be a better language design than C++, it has to have the best language design of any compiled language and demonstrate the best performance.

Why? Best in what way? Best for whom and for what kind of problems?

I completely disagree with that. It needs just to be better in the situation then the conceivable alternatives. And situations and challenges are really quite different between firms.

 Is the former really true?
Are various language features that have been inherited from C++/Java the best way forward? For instance does D have the best approach to object oriented programming, or templates? Or any important set of features you care to mention? Are there things that C++ does better than D? How straightforward is it to get great performance from D? Is how do you 'tune' your D code for high performance obvious or well documented?

If the answers to any of the above questions is a negative for D, that's a serious problem if what you want to do is replace C++, because C++ is already a solid well know language and the competition from new programming languages is extremely tough, and because its only going to get easier to create programming languages this competition will get tougher.

To finish the Betamax story, when CD came along, people dropped cassette tapes like hot potatoes and DVDs killed VHS stone dead. Does D represent a similar leap from C++?

I'm not saying that D is Betamax. I'm just giving food for thought.

You can turn your scepticism on anything, and the value of the exercise really depends on the results. But doubt on its own isn't necessarily a good guide to the future in my experience.

In particular with D because the benefit doesn't I think come from any single feature but from the totality of the gestalt of what it's like to work in D compared to other languages.

I think that if you want to understand the adoption of new technologies then Clayton Christensen's Innovators Dilemma has considerable insight. Up to a point Crossing the Chasm and companion books too. I think by Moore.


Reply via email to