I do not know where you are from but employers ask the same in France: they
pretend a developer should know every programming language and everything
from hardware to applications... but you don't! I am a assistant professor in
computer science and I always tell the students that a good developer is
someone with a great ability to abstract problems and a great ability to
learn: there are new technologies popping up every few months!
That is why I defend the idea that the mandatory curriculum of the computer
science department should focus on basic computer science concepts and math
(discrete math, complexity theory, numerical computation, etc.) to exercise
the ability to abstract. For instance, I believe it is not worth teaching
both C and Pascal (both follow an imperative paradigm), both C++ and Java
(both follow an object-oriented paradigm), etc. We had better teach one
language per paradigm (how about LISP to show functional programming, Prolog
to show logic programming, etc.). Naturally, the students may then need to
learn another language... and that would even be the case if the university
would try to teach every current technology because the student will soon
have to work with technologies that do not exist yet!
As for your sentence "morality doesn't stand up well against economics", I
would say it should. I will not do anything against my ethics even if this
could potentially bring me billions of dollars. Like Stallman says, that
would justify stealing as well. Of course stealing is illegal (a kind of
"official moral"), whereas writing proprietary software is not. Well, that is
why the free software movement is a political movement as well. If it
completely succeeds, writing proprietary software would become illegal
because the state would have understood that the computer user deserves
freedoms that the law needs to guarantee.
For OEM to make hardware that perfectly works with free software (e.g., with
Trisquel), an answer looks simple to me: stick to 100% free distributions and
buy the hardware in consequence. The law of supply and demand should do the
rest. Today, the BIOS is, by lack of option, excluded from this rule of
conduct. To fix this issue, people are currently working on the coreboot
project, a FSF high priority project. Here is what the FSF writes as "ways to
help":
One of the biggest ways you can help the Coreboot project is to encourage
vendors to release their specifications so that the Coreboot software can be
made to run on those systems. If you wish to learn more about becoming a
Coreboot developer, visit the #coreboot channel on irc.freenode.net, or join
the Coreboot mailing list to talk with the current developers. One additional
area where there is a need for development and attention is in the
development of a free software VGA BIOS on graphics cards. We encourage you
to pressure graphics card manufacturers to release their VGA BIOS as free
software. If you'd like to begin development on a free software VGA BIOS, a
good starting point would be the Geode LX chipset by AMD, for which full
documentation is available.
Stallman uses the Lemote Yeeloong because it runs coreboo but, as he says in
the interview, this netbook is not produced anymore.
As for the HURD, it is a failure... so what? Nobody here pretends rms is
perfect. He made a strategical mistake when he chose a microkernel
architecture, which turned out to be too hard to debug, hence to develop.
Notice that the greatest scientists in this domain (notably Andrew Tanenbaum)
were believing, at this time, that micro-kernels were a better architecture
than monolithic kernels (such as Linux). Actually, Andrew Tanenbaum still
says so. The GNU project stopped investing much effort on the HURD. Notice,
for instance, that the HURD is not mentioned in the FSF list of high priority
projects. Indeed, GNU's goal is a 100% free operating system and it was
obtained when Linux filled the last remaining hole.
Again, that does not mean rms takes credit for Linux. He entirely
acknowledges that Linux is Linus Torvalds' production and even call the whole
system GNU/Linux (although Linux's contribution is far smaller than GNU's,
whatever the metrics you want to use).