3 ms·
Programming languages shape the way we think about problems. I know linguists reject the Sapir-Whorf hypothesis for natural languages, but I definitely think it
by goto11 5y ago
Programming languages shape the way we think about problems. I know linguists reject the Sapir-Whorf hypothesis for natural languages, but I definitely think it is true when it comes to programming languages.
This means the language you are familiar with will always looks more efficient and a better fit for any particular problem than a language you are not as familiar with. While tribalism and identity certainly plays a part in language wars, I believe the language advocacy is often genuine in the sense that the advocate really believe their preferred language is superior, and just want to help other people realize this. They genuinely don't understand why people would deliberately chose to use an obviously inferior programming language.
A example of this form of advocacy is the classic "Revenge of the Nerds" http://www.paulgraham.com/icad.html http://www.paulgraham.com/icad.html
> As an illustration of what I mean about the relative power of programming languages, consider the following problem. We want to write a function that generates accumulators-- a function that takes a number n, and returns a function that takes another number i and returns n incremented by i.
Note that the "problem" used to compare language power is not actually a problem. Rather it the solution a particular language would use to solve some problem. Unsurprisingly this particular language "turns out" to be the most powerful in the comparison. If we had chosen a different "problem" like writing a function which was statically guaranteed to return a list of integers, the winner would be different.
- pron 5y agoLeslie Lamport said, > Computer scientists collectively suffer from what I call the Whorfian syndrome1—the confusion of language with reality. [1] And, on comparing languages [2] (paraphrased from "specifying" to "programming"): > Comparisons between radically different formalisms tend to cause a great deal of confusion. Proponents of formalism A often claim that formalism B is inadequate because concepts that are fundamental to [programs] written with A cannot be expressed with B. Such arguments are misleading. The purpose of a formalism is not to express [programs] written in another formalism, but to [program] some aspects of some class of computer systems. [Programs] of the same system written with two different formalisms are likely to be formally incomparable… Arguments that compare formalisms directly, without considering how those formalisms are used to [program] actual systems, are useless. [1]: http://lamport.azurewebsites.net/pubs/deroever-festschrift.pdf http://lamport.azurewebsites.net/pubs/deroever-festschrift.p... [2]: http://lamport.azurewebsites.net/pubs/lamport-verification.pdf http://lamport.azurewebsites.net/pubs/lamport-verification.p...