Proof of concept for v2 - NO duplication, NO `static if` hell, NO difficulty with interoperability

Ola Fosheim Grøstad ola.fosheim.grostad at gmail.com
Mon Nov 1 13:38:44 UTC 2021


On Monday, 1 November 2021 at 13:01:26 UTC, bachmeier wrote:
> It's useless trying to update pieces that are in the standard, 
> and there was no process for updating the standard. The result 
> was a boring language frozen in time. Matches up nicely with 
> the low-hanging fruit Andrei listed.

There should certainly be a process for adding to a standard 
library, but "standard" usually means that you remain backwards 
compatible at the interface level for a very long time.

The core problem is not having a layered approach where you keep 
the stable inner core minimal. Then you can have other layers on 
top of that are application level libraries.

So for instance, you could have a higher level "ranges library" 
that is official, but that can be wholesale replaced if need be, 
without affecting code that only depend on the core.

Or you can do like Ada and have different profiles for different 
usage/hardware scenarios.

(I am leaving Lisp aside, as many considered it an archaic 
minimalistic language by the 1980s. The culture that ensured Lisp 
a prolonged life is rather peculiar and unusual.)


>> The std lib should be the bottom layer, and small, so you can 
>> keep it stable, efficient and provide targeted compiler 
>> optimizations.
>
> This is an argument in favor of versioning. V1 can have all 
> those properties, and subsequent versions can build on it.

If you only extend, but then you don't need explicit versioning. 
Versioning the language/compiler would be sufficient.




More information about the Digitalmars-d mailing list