core languga

Jonathan M Davis jmdavisProg at gmx.com
Wed Feb 9 14:45:37 PST 2011


On Wednesday, February 09, 2011 13:43:14 %u wrote:
> Hi
> excuse my ignorance
> 
> what does that term mean?
> and what the different b/w learning D & pobos

???  I think that you needed to read over that message again before sending it. 
It's not exactly clear. If you're asking about the term "core language," that 
refers to the language itself rather than any of its libraries. So, if you're 
talking about the core language, then you're talking about the programming 
language itself and not any of its libraries.

As for the difference between D and Phobos, D is the language, and Phobos is its 
standard library. You can technically use D without ever using Phobos, but most 
programs are likely to use Phobos, and I would expect that in the long run, it 
will be a very rare program indeed which doesn't use Phobos at all. Pretty much 
every programming language has a separation between the language itself and its 
standard library, but pretty much everyone uses the standard library. For 
instance, would you use Java without ArrayList or C++ without vector? You _can_, 
but most people don't.

With any programming language, you have to learn the language itself to use it, 
and the language itself will generally lean towards certain programming 
paradigms and ways of doing things. On top of that, the standard library will 
then generally give you base functionality that most people need but isn't in 
the language itself, and the standard library will then tend to do things in a 
particular way and follow certain programming paradigms. So, if you learn to use 
the standard library of a language well, then you're likely to program in 
certain ways that you wouldn't necessarily do yourself if you just took the core 
language and used only your own libraries.

D and Phobos are no different in that respect than any other programming 
language. The language itself has certain facilities that support and encourage 
certain ways of programming. Phobos builds on that and adds its own concepts and 
ways of doing things. For instance, ranges are essentially a thing of Phobos and 
not the language itself (though the language itself does understand them enough 
for you to be able to use input ranges in foreach loops). So, you could program 
in D just fine without knowing anything about ranges or using them at all, but if 
you want to use Phobos, you're likely going to have to learn about and use 
ranges. So, as with any programming language, if you want to be proficient in D, 
then you're really going to have learn both the core language and the standard 
library.

- Jonathan M Davis


More information about the Digitalmars-d-learn mailing list