I tend to disagree with this sentiment. I believe that one has master a language when they know every construct of a language. e.g. Messaging, Delegates, Currying, Pointer, Anonymous functions, OO, Public / Private, Mix-in / Interface, ad nasium). Knowing the libraries is irrelevant to the fact of knowing the language and the deep recesses of dark magic you can call upon if needed.
Libraries are nothing more than reading an API to get needed functionality without writing it yourself (not disparaging them, that is the point of reuse). That being said you should have picked up some basic library knowledge on your way to fully comprehending a language.
Lets take Java for example, I know guys that know every API of the JDK, JEE, Commons, et. al. They can glue together any enterprise app that you throw at them with JDBC, Struts JPA, and on and on) but they are by no means masters of Java.
As well when I did AI work for the simulation industry, I knew guys that did not know a lick of the libraries (hyperbole) but understood anonymous classes, listeners, command chains, threading and could work magic with their code. When I first moved to doing enterprise apps. I wrote my code as I did when I was doing AI and I was asked to stop writing it that manner because it was unreadable by the other developers. They had literally never seen an inline declared anonymous class used as method reference to emulate a delegate or function pointer.
Anyway long story short, one group clearly new the breadth of the libraries more thoroughly. But the other group could solve problems more efficiently. It depends where you place the concept of mastering a language. Clearly my opinion is that it is the latter.
Libraries are nothing more than reading an API to get needed functionality without writing it yourself (not disparaging them, that is the point of reuse). That being said you should have picked up some basic library knowledge on your way to fully comprehending a language.
Lets take Java for example, I know guys that know every API of the JDK, JEE, Commons, et. al. They can glue together any enterprise app that you throw at them with JDBC, Struts JPA, and on and on) but they are by no means masters of Java.
As well when I did AI work for the simulation industry, I knew guys that did not know a lick of the libraries (hyperbole) but understood anonymous classes, listeners, command chains, threading and could work magic with their code. When I first moved to doing enterprise apps. I wrote my code as I did when I was doing AI and I was asked to stop writing it that manner because it was unreadable by the other developers. They had literally never seen an inline declared anonymous class used as method reference to emulate a delegate or function pointer.
Anyway long story short, one group clearly new the breadth of the libraries more thoroughly. But the other group could solve problems more efficiently. It depends where you place the concept of mastering a language. Clearly my opinion is that it is the latter.