On Thursday, 27 November 2014 at 22:58:33 UTC, Vic wrote:
There are 2 users I see, those that see it as an experimental feature platform and those that use it for real projects (and not for experiments).

The 'real project/core' is where we are ( http://blog.apakau.com/2014/11/cmg-paper ) and we need a stable systems language. From 'real project' people, the people that are in the 'experimental platform' currently *shit* where we eat (as per my D programmers that work for me, D is big and unstable). As I see it, the issue is that D is a wide platform(not a small lang) that is hard to maintain with the size of the team. (Similar wide platforms feature wise are JRE and CLR, both w/ > 100 developers). So how many core D developers we have?(*)

A more modern language like Go splits btwn stable 'core' and 'experimental feature platform', for example no need for core to have try/catch, when it can be done downstream:
 - http://github.com/manucorporat/try
This is similar to Linux: kernel and gnu; and what I propose for D: to be split up.

This would allow users of *real project* to use a core and people that want to have features could do that downstream: let a 1000 flowers bloom!

If you are w/ me so far, how big/small should core be?
*Small enough to be maintained by the size of the team at hand and no larger. *

Something stable for us to lean on.
Next, is it feasible to split? Std library has much bloat and is easy to split up into core and downstream experimental feature platform. That leave the compiler. I am not an expert, but this could be done w/ core 'compiler' and the rest in optional pre-processor. I think it can be done w/ backwards compatible (just switch GC to default off)

I'll say 90% + should and must be moved to downstream projects. This allows for the famous quote: 'fearlessly peer into the gates of hell’ - all I’m saying do it downstream, let us build projects that can lean on small/simple and maintainable D core.

Lets make D core small please. List of things that are core: char arrays. What else should be core? The key question in this tread: how small should core D be to be maintainable and stable? How can it be split?

http://tinyurl.com/q5t2eag

While all this may be true, why does the code base need to be split for you to use the core, ie can't you just stay away from new and experimental features of the language? Perhaps you don't know the age or level of stability of each feature, but it strikes me that starting a project to document that would be much easier than trying to push a split.

Reply via email to