3 ms·
Here's more ammo from Linus (2010). He explicitly articulates that communication is the most important thing and that C is "a largely context-free language" whi
by dottrap 14y ago
Here's more ammo from Linus (2010). He explicitly articulates that communication is the most important thing and that C is "a largely context-free language" which is a huge boon for large projects like the kernel.
http://www.realworldtech.com/forum/?threadid=104196&curpostid=104299 http://www.realworldtech.com/forum/?threadid=104196&curp...
- contingencies 14y agoCouldn't resist posting my favourite OO quote again! I think the lack of reusability comes in object-oriented languages, not in functional languages. Because the problem with object-oriented languages is they've got all this implicit environment that they carry around with them. You wanted a banana but what you got was a gorilla holding the banana and the entire jungle. If you have referentially transparent code, if you have pure functions-all the data comes in its input arguments and everything goes out and leaves no state behind-it's incredibly reusable. You can just reuse it here, there, and everywhere. When you want to use it in a different project, you just cut and paste this code into your new project. Programmers have been conned into using all these different programming languages and they've been conned into not using easy ways to connect programs together. The Unix pipe mechanism-pipe B pipe C-is trivially easy to connect things together. Is that how programmers connect things together? No. They use APIs and they link them into the same memory space, which is appallingly difficult and isn't cross-language. If the language is in the same family it's OK-if they're imperative languages, that's fine. But suppose one is Prolog and the other is C. They have a completely different view of the world, how you handle memory. So you can't just link them together like that. You can't reuse things. - Joe Armstrong in Peter Seibel's Coders at Work: Reflections on the Craft of Programming