3 ms·
Do you think that this really using argument is more or less a tautology? (1) If people who wrote their website in Lisp (Viaweb, ITA, Reddit) continue using Li
by socratic 15y ago
Do you think that this really using argument is more or less a tautology?
(1) If people who wrote their website in Lisp (Viaweb, ITA, Reddit) continue using Lisp, then they are smart and Lisp is powerful.
(2) If those people (or new people) rewrite the website in a different language (C++, Python), then either (a) the new people are dumb (Lisp is too powerful for them!) or (b) the website was not really using features not in the new language (the powerful Lisp features were not used!).
EDIT: As noted by pnathan below, maybe it is more of a No True Scotsman.
http://en.wikipedia.org/wiki/No_true_Scotsman http://en.wikipedia.org/wiki/No_true_Scotsman
- awj 15y agoI don't think it's a tautology, just getting too hand-wavy on an important point. What does it mean to really use a programming language? I take it to mean that your task aligns with the strengths of the language. I can use the butt of a screwdriver to drive in a nail, but hammers certainly are better at the task. Programming languages are similar, but defining the strengths of the languages and the needs of your task are monstrously more complex. One strength, and weakness, of Lisp is its malleability. The language itself can be turned into almost anything you want or need. If your purpose is to demonstrate possibility, few tools are better. At this point you can really use Lisp, because at this point you are free to exercise the strengths that only Lisp has. Once that possibility is known, though, this strength becomes a form of weakness. The project should now move with purpose, methodically exploring the problem space. You draw attention, hopefully money, and with it more team members. What was a single vision wrought in code now must be the coordinated effort of a large group. You can no longer really use Lisp because the group is too large and sharing the knowledge of a newly built language feature takes more time than the feature saves. So, you stop really using Lisp and just use it, carefully selecting the subset of tools that allow people to work together. Or, you rewrite, in some language whose strengths are more in line with the needs of your now larger project. Then you are really using that language. I don't see tautology or contradiction here, only shifting requirements that we fail to acknowledge.
- breck 15y agoNo. Let's say you are sitting at your desk and your boss asks you to code a solution to a problem, let's call it Problem Zebra. If you flip open your laptop, roll a die labeled with 6 programming languages that you know, and then write code in whatever language you roll, that solves Problem Zebra, that is "using a language". If you flip open your laptop, and before you start typing you think, "I need to solve Problem Zebra, which is a type of Mammal Problem, and Language Y is often used to solve Mammal Problems because the designers of Y added constructs A and B specifically to help solve Mammal Problems (because that's the genre of problems they focus on at work)," and then you write code in Language Y and use A and B, that is "really using a language".
- nandemo 15y agoI think you're going off a tangent here. To leave the programming languages aside for a while: "The US didn't really use atomic bombs during World War II -- except for those 2 key occasions". pg is pointing out that using x in key places is really using it. This is a far cry from claiming that whenever x is used it is really being used.