4 ms·
Please tell me this is a parody. A programming language is a tool, not a religion.
by weavejester 18y ago
Please tell me this is a parody. A programming language is a tool, not a religion.
- asciilifeform 18y agoClearly you have never met a tool which afterwards made you regard all other supposedly similar tools as stone knives and bearskins. Perhaps this day is still in store for you. For the sake of your career as a programmer (assuming this is your trade), you'd better hope not.
- weavejester 18y agoYou're correct that I haven't come across such a tool. But I have also programmed in Lisp, and whilst I like it a lot, I don't consider it the pariah of programming languages as you seem to do. What makes you believe Lisp is so superior to other classes of programming language? For instance, what makes a Lisp superior to a stack-based language like Forth or Factor?
- sharkbrainguy 18y agoThis isn't meant to refute your argument or insult anyone I just that pariah probably doesn't mean what you think it means and you might like to know. From Wiktionary: 1. An outcast 2. A demographic group, species, or community that is generally despised. 3. Someone in exile 4. A member of one of the oppressed social castes in India.
- weavejester 18y agoDammit, what was the word I was thinking about then? Thanks for correcting me :)
- gojomo 18y agoProbably paragon. Maybe pinnacle or nonpariel.
- weavejester 18y agoI think I might have been mixing up paragon and messiah.
- deleted 18y ago[deleted]
- asciilifeform 18y ago> What makes you believe Lisp is so superior to other classes of programming language? Because I feel straightjacketed whenever I cannot redefine my language on a whim in every conceivable way, or am forced to write a whit of boilerplate. (Yes, none of the existing Lisps fully meet this ideal, but nothing else comes close.)
- weavejester 18y agoHold on. Why is a stack based language any less able to do that? If anything, it's closer to your ideal, as it has less inherent syntax than Lisp. And for that matter, why do you think Clojure is so awful? It has no reader macros, true, but it does provide a more succinct way of writing hashes and vectors than most other lisps. Other than that, well, it's a Lisp.
- asciilifeform 18y ago> Why is a stack based language any less able to do that? Having to juggle the stack at every step (i.e. FORTH) is a mental burden. It forces you to organize your thoughts in a certain - not necessarily harmful - but very specific way. > Other than that, well, it's a Lisp A Lisp unworthy of the name; one which encourages users to pepper their code with opaque routines which have no underlying Lispiness. A Lisp which barfs Java stack traces.
- weavejester 18y agoForgive my bluntness, but I was rather hoping to peel back the emotive language and ideological rhetoric and have an objective and technical discussion. I gauge programming languages by their effectiveness at solving practical problems. Do you believe Clojure's design makes it less effective at solving problems than other Lisps? Or are your objections to it purely ideological?
- asciilifeform 18y agoYes, Clojure is less effective than other Lisps. And Symbolics Genera remains my standard of comparison. You cannot un-create it. The standard of comparison for a technology will always be everything previously achieved by mankind, rather than what is available on the market today. Bu I will try to explain my real objections. "Beauty is the first test: there is no permanent place in the world for ugly mathematics." (G. H. Hardy) I was drawn into programming at an early age because it seemed beautiful and allowed me to run wild with creative ideas. Thus I insist on systems with a purely minimal amount of accidental complexity - so as to leave the most room in my head for the ideas I am trying to put into practice. I have zero interest in "programming as construction work" - implementing the ideas of others, or for that matter doing anything which isn't in some important sense original. Thus I want my programming environment to resemble pure mathematics, where absolutely nothing is present for which there is not an ironclad and inevitable logical reason, where everything is open to question, and the answer is never "because the drunken intern wrote it that way five years ago." Most of the "practical problems" programmers supposedly "solve" shouldn't even exist. They are created through the idiocy of other programmers. In particular, I am talking about any situation where the output of one program requires "glue" to match the input requirements of another; or any situation where formats are converted; and many other cases. If the moronic mistakes of the past four decades were undone, most of the people who are calling themselves programmers would have to find honest work. Screw "practicality." Programmers are the proverbial firemen who start fires when they aren't at the station-house, and gloriously put them out, hailed as heroes every time. Clojure will never be beautiful because it promotes the use of undigestable foreign matter in Lisp code: primitives on which you cannot pop the hood to reveal more Lisp, with turtles all the way down. Its claim to the name Lisp is in an important sense fraudulent. I rest my case.
- ken 18y agoNo, a language is a way of communicating ideas, and hence, of thinking about them. (I wouldn't call English or kuchi shoga or tensor diagram notation "tools", even though they can be incredibly useful.) A programming language implementation can be used as a tool. I think this is the core of our differences. Lisp has traditionally been used mostly as a language -- as Dijkstra put it, it "has assisted a number of our most gifted fellow humans in thinking previously impossible thoughts". Most other programming languages have been used as tools. Clojure looks like a perfectly competent Lisp-on-JVM (with immutability!), but I don't see it changing how I think about anything. It's thoroughly on the "tool" side of things, which understandably leads to people in the "language" camp being miffed that anybody thinks it's comparable to classic Lisps from the "language" camp. The Lisp engine in Abuse was a tool, too, and highly productive for its uses, but at least nobody claimed it was a successor to the Lisp line.
- weavejester 18y agoI dislike arguments over semantics. Saying something is a tool does not mean it is not also a language. For instance, mathematics can be considered both a tool and a language. It's true that Clojure is a programming language designed to be practical, but I fail to see why this would make it any less useful as a language for communicating ideas, or any less able to change how people think about things. Could you provide an example of an idea that is more easily communicated in another Lisp, rather than in Clojure?
- jimbokun 18y ago"Clojure looks like a perfectly competent Lisp-on-JVM (with immutability!), but I don't see it changing how I think about anything." The immutability is a non-trivial change in thinking about how to write a program. You can write a program without mutation in Common Lisp, and you can mutate things in Clojure, but the greater cost of implementing mutation in Clojure means you are less likely to do so. This leads to different programs. No, that is not as big of a change in thinking as Lisp was compared to the languages of the day when McCarthy created it. But I find it a fine addition to the family of Lisps, nonetheless.