Languages Shape Programming Thought
The cluster centers on the idea that worthwhile programming languages fundamentally alter how programmers think about problems and algorithms, often quoting Alan Perlis and discussing examples like Lisp, Haskell, and the Sapir-Whorf hypothesis applied to code.
Activity Over Time
Top Contributors
Keywords
Sample Comments
"A language that doesn't affect the way you think about programming, is not worth knowing."
Languages that change the way you think about expressing algorithms (e.g., Forth, Haskell, Lisp, Prolog, Smalltalk) are worth learning. Others are just reskins of languages you probably already know.
Some armchair philosophy here. I think languages are fundamentally related to how we think about, process, and express ideas. When you spend a lot of time doing something, you naturally come up with the words to express complex and abstract ideas, which lets you process information faster. These competitive programmers have the experience to realize certain syntax, patterns, common functions better helps them solve the problems they usually encounter, so they build these DSLs to serve that purpo
"A language that doesn't affect the way you think about programming is not worth knowing." ― Alan J. Perlis
"Programming languages differ not so much in what they make possible, but in what they make easy."
The Sapir-Whorf hypothesis sure seems to hold with programming languages. Some ideas are easier to have in some programming languages than in others, although once you have the idea you can often 'explain' it in a programming language where it's less obvious.
Only if you treat language as a religion :)I suspect this is more a question of experience than of language. Getting too carried away with the idioms and properties of a specific language will be mitigated by learning about different computation models / type systems and the languages that implement them. Sooner or later you learn that software development is about trade-offs and you choose the right tool for the job.
Peter Norvig in his essay "Teach Yourself Programming in Ten Years"[0] wrote this:> Learn at least a half dozen programming languages. Include one language that emphasizes class abstractions (like Java or C++), one that emphasizes functional abstraction (like Lisp or ML or Haskell), one that supports syntactic abstraction (like Lisp), one that supports declarative specifications (like Prolog or C++ templates), and one that emphasizes parallelism (like Clojure or Go).There is a
A language (programming or otherwise) is much more than a just a simple tool. It's a way of thinking. A language that guides you toward good solutions definitely makes you a better programmer if you give it a chance.
"A language that doesn't affect the way you think about programming, is not worth knowing."- Alan Perlis