It's a mistake to ignore the customer
Posted Dec 5, 2012 20:12 UTC (Wed) by david.a.wheeler
In reply to: Curly-infix and readable Lisp
Parent article: GNU Guile 2.0.7 released
It is a common mistake to confuse "what they ask for" with "what they want..."
Sure, but it is an even more common mistake to ignore repeated, strongly-stated requests from many customers. Eventually customers will move on to someone who listens to them instead. Which is what's happened to Scheme, Common Lisp, and so on; few people use them for serious new projects. After all, even 1K BASICs manage to support infix.
A good designer provides what the customer wants, perhaps not exactly what they asked for, but that's because the designer deeply figures out what the customer *really* wanted and provides it. That's not the case at all here; software developers know very well what infix looks like. (- (* a b) c) is not infix. When they say, "I want/miss infix", saying "Lisp executes with prefix notation" doesn't deal with their request at all.
if the requirement is "a language designed around infix notation", the answer is not Scheme.".
In other words, Scheme fails to meet most developers' minimum requirements for a "practical" language. To me, that statement describes a *problem*, not something good or fundamental. The curly-infix notation fixes an old, well-known bug.
I'd add that no language is "designed around infix notation" - infix is typically a small surface syntax issue. You cannot say "Scheme's design means it is not possible to add infix", because it has been done. It's true that past infix approaches lost Scheme's homoiconicity and generality, which is part of why they haven't been accepted. But curly-infix doesn't have those problems, so that argument is gone.
"We've never solved that problem before" is not a good argument for ignoring a problem.
I think we'll just have to agree to disagree on this.
to post comments)