Breaking changes in Visual C++ 2015

via Digitalmars-d digitalmars-d at puremagic.com
Thu May 7 04:19:50 PDT 2015


On Wednesday, 6 May 2015 at 18:26:27 UTC, Brad Anderson wrote:
> https://msdn.microsoft.com/en-us/library/vstudio/bb531344(v=vs.140).aspx
>
> I'm sharing this specifically so we can have an unproductive 
> flamewar about whether breaking changes in D are sometimes 
> worth it or if they are holding D back from mass adoption :).

How about a productive design oriented working group instead of a 
flame war?

I totally side with Walter when he says that drip-drip-drip 
changes are taxing on people who does not work full time with a 
language, but have serious intents with being involved.

I also totally understand his fear of alienating the existing 
user base by changing the language in ways that makes the 
existing user base change their personal programming idioms 
(whether they are sound and clean or the opposite).

However, rhe transition to D for DMD provides:

- Opportunity to rethink compiler internals.

- Opportunity to refactor the compiler so that you can get better 
tooling/automatic transcompiling from D2 to a hypthetical D3 if 
need be.

And therefore also an opportunity to rethink the language 
semantics.

If you want to rethink language semantics you should start with 
tabula rasa (assume no existing langauge). Then come up with the 
hypothetical ideal high level design for the kind of programming 
D is meant for. When you have that, you have much better chance 
to redesign the existing language with an upgrade path to 
something consistent.

Semantic drip-drip-drip metamorphosis is generally not very good 
for an axiomatic system (which programming language internals 
have to be).

If it was up to me I'd focus on 5 areas:

- stronger typing / behavioural typing

- memory model

- see if it is possible to redesign and implement the templating 
system with something that is close to Datalog to get  more 
streamlined metaprogramming

- high level IR for whole program optimization with partial 
evaluation

- identifying a sub langauge that can be used for building a 
small SIMD oriented backend for innnerloops (generating different 
variants SSE2/SSE3/AVX/AVX2 based on cpu info).



More information about the Digitalmars-d mailing list