|Posted by Bruno Medeiros|
in reply to Benji Smith
Posted in reply to Benji Smith
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...
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