3 ms·
How do you figure? Both Scheme and CL have had their occasional great successes, suggesting fundamental technical issues are not what is holding them back. But
by blacktriangle 5y ago
How do you figure? Both Scheme and CL have had their occasional great successes, suggesting fundamental technical issues are not what is holding them back. But also, this article is about lisp-1 vs lisp-2 (or as it jokes more accurately lisp-5 vs lisp-6). Given neither Scheme(lisp-1) or CL(lisp-2) have had mass market success, I can't imagine the debate over namespaces has anything to do with lisp not taking over the world.
- ncmncm 5y agoThat Lisp advocates thought this difference was worth agonizing over at length seems to indicate something diagnostic. That the two namespaces were unnecessary had been demonstrated. That should have sufficed. C also has two namespaces, one for structs and one for literally everything else, that C++ abandoned without looking back. I doubt you can find anything written that more than notes the backward-compatibility hack that made it workable.
- blacktriangle 5y agoThis has nothing to do with Lisp advocates. The X3J13 committee agonized over most every detail of CL to this degree over a period of years that is long gone. That level of agony is what has created a language that has architecturally stood the test of time. Sure it has warts, but warts are preferable to reinventing the wheel every few years in search of some platonic idea of a language. The only reason this particular paper is noteworthy is that people see to love to argue about lisp-1 vs lisp-2 just like they do about syntactic whitespace and tabs vs spaces.
- ncmncm 5y agoThe point is that they agonized pointlessly. The result sits on a shelf, obscure.
- kazinator 5y agoThat it's not necessary to put everything into one namespace is also demonstrable. In terms of C compatibility, C++ still has different namspaces for goto labels, macros and structure members. In C++, every class scope is a namespace (whereby if there is an ambiguity or clash, we can use the class name together with the scope resolution operator to qualify a name). If that's not enough, there is the namespace keyword. All programming factions agonize over something. C programmers agonize over, do I always have to make macros in ALL CAPS or not? Should the leftmost argument always be the destination? Intrusive container, or void * pointer to data? uint32_t here, or just int will do?
- ncmncm 5y agoMy observation was not about namespaces, it was about decision-making practices in language design. The more successful languages have focused on practical consequences of choices.