www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Balance

reply Benji Smith <dlanguage benjismith.net> writes:
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
Oct 17 2008
parent Bruno Medeiros <brunodomedeiros+spam com.gmail> writes:
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
Oct 22 2008