On Thursday, 18 May 2017 at 00:58:31 UTC, Steven Schveighoffer
wrote:
On 5/17/17 8:27 PM, H. S. Teoh via Digitalmars-d wrote:
On Wed, May 17, 2017 at 04:16:59PM -0700, Walter Bright via
Digitalmars-d wrote:
On 5/17/2017 1:46 PM, H. S. Teoh via Digitalmars-d wrote:
[...]
It may not be the developers that initiate this change. It'll
be the
managers and the customers who force the issue - as those are
the
people who'll pay the bill for the problems.
That may or may not force a shift to a different language. In
fact, the
odds are heavily stacked against a language change. Most
management are
concerned (and in many cases, rightly so) about the cost of
rewriting
decades-old "proven" software as opposed to merely plugging
the holes in
the existing software. As long as they have enough coders
plugging away
at the bugs, they're likely to be inclined to say "good
enough".
What will cause a shift is a continuous business loss.
If business A and B are competing in the same space, and
business A has a larger market share, but experiences a
customer data breach. Business B consumes many of A's
customers, takes over the market, and it turns out that the
reason B wasn't affected was that they used a memory-safe
language.
The business cases like this will continue to pile up until it
will be considered ignorant to use a non-memory safe language.
It will be even more obvious when companies like B are much
smaller and less funded than companies like A, but can still
overtake them because of the advantage.
At least, this is the only way I can see C ever "dying". And of
course by dying, I mean that it just won't be selected for
large startup projects. It will always live on in low level
libraries, and large existing projects (e.g. Linux).
I wonder how much something like D in betterC mode can take
over some of these tasks?
If you get it to compile for and run the code on an AVR, Cortex
R0 or other 16 bit µC, then it would have a chance to replace C.
As it stands, C is the only general "high-level" language that
can be used for some classes of cpu's.
D requires afaict at least a 32 bit system with virtual memory,
which is already a steep requirement for embedded stuff.
C will remain relevant in everything below that.