D3 - Programming in 3D

H. S. Teoh hsteoh at quickfur.ath.cx
Fri Jun 12 21:16:03 UTC 2020


On Fri, Jun 12, 2020 at 08:35:03PM +0000, angel via Digitalmars-d wrote:
[...]
> I actually don't think D needs D3.
> Designing a perfect language right from the start is possible probably
> only in theory, but in the real life evolution works better - you add
> missing features, you drop what doesn't belong, otherwise you risk to
> end where you start.

What is needed, IMO, is a language where change is both anticipated and
prepared for, where language versioning is built into the language
itself. I.e., each file should have some kind of version identifier to
indicate what version of the language it is intended for, and the
semantics of that language version will be applied. Interop between
modules written to different language versions will be supported as much
as is practical (obviously, sometimes it won't work if language
semantics have changed drastically enough that ABI compatibility is
impossible).  Older versions of the language will be supported by the
compiler up to N major releases back (where N is some predetermined
number, preferably infinity though that's probably impractical :P).

The compiler code will also be structured in such a way that upon every
major release, current code is copied into a self-contained package
dedicated for that major release's language version, and thereafter only
updated for bugfixes. The "main" code continues to be developed without
restriction.

The idea is that development will never stop, and the language will
continue to improve and embrace change, even breaking changes where
necessary, but existing code will continue to work up to N releases, and
can continue to interop with new code where language semantics don't
contradict between the language versions. Newer versions of the language
need not be constrained by decisions made in the past, because existing
code will still be compiled with old semantics until the authors decide
to bump the version tag (and fix any issues that may result).


T

-- 
Valentine's Day: an occasion for florists to reach into the wallets of nominal lovers in dire need of being reminded to profess their hypothetical love for their long-forgotten.


More information about the Digitalmars-d mailing list