View mode: basic / threaded / horizontal-split · Log in · Help
October 18, 2008
Balance
The way I see it, a language's ecosystem consists of five distinct elements:

 -- Semantic Language Features: things like the basic types, template 
semantics, calling conventions, package/module structure, etc.

 -- Syntactic Language Features: sugary things like "foreach", the 
ternary operator, or the fallthrough structure of switch/case 
statements, that make code more clear and concise, but which don't 
enable fundamentally new kinds of functionality.

 -- Core Runtime Features: features that absolutely must be present at 
runtime in order to enable the basic langauge semantics: memory 
allocation, garbage collection, dynamic classloading, reflection, stack 
tracing, etc.

 -- Standard Library Features: features that are common to nearly every 
application, but which aren't necessarily required: console and file IO, 
sockets, streams, math functions, etc.

 -- User Libraries: everything else!

I'm curious about the general perception in the community about the 
balance between those five elements of the D ecosystem. How do you think 
they *should* be balanced? Do you think we're currently accomplishing 
that balance? Do you think any of those elements are being over or under 
prioritized?

Just curious...

--benji
October 22, 2008
Re: Balance
Benji Smith wrote:
> The way I see it, a language's ecosystem consists of five distinct 
> elements:
> 
>  -- Semantic Language Features: things like the basic types, template 
> semantics, calling conventions, package/module structure, etc.
> 
>  -- Syntactic Language Features: sugary things like "foreach", the 
> ternary operator, or the fallthrough structure of switch/case 
> statements, that make code more clear and concise, but which don't 
> enable fundamentally new kinds of functionality.
> 
>  -- Core Runtime Features: features that absolutely must be present at 
> runtime in order to enable the basic langauge semantics: memory 
> allocation, garbage collection, dynamic classloading, reflection, stack 
> tracing, etc.
> 
>  -- Standard Library Features: features that are common to nearly every 
> application, but which aren't necessarily required: console and file IO, 
> sockets, streams, math functions, etc.
> 
>  -- User Libraries: everything else!
> 
> I'm curious about the general perception in the community about the 
> balance between those five elements of the D ecosystem. How do you think 
> they *should* be balanced? Do you think we're currently accomplishing 
> that balance? Do you think any of those elements are being over or under 
> prioritized?
> 
> Just curious...
> 
> --benji

Actually The ecosystem of a programming language also includes its tools 
(compilers, debuggers, builders, editors, IDEs, testing tools, 
frameworks, etc.), which is actually a very big slice.
Some people also consider the user community of a language to be part of 
the ecosystem.

-- 
Bruno Medeiros - Software Developer, MSc. in CS/E graduate
http://www.prowiki.org/wiki4d/wiki.cgi?BrunoMedeiros#D
Top | Discussion index | About this forum | D home