Subject: Re: Promoting CL Was: What I want from my Common Lisp vendor and the Common Lisp community From: Erik Naggum <erik@naggum.net> Date: Mon, 03 Sep 2001 03:09:48 GMT Newsgroups: comp.lang.lisp Message-ID: <3208475381413624@naggum.net> * Erann Gat > However, let's remember how this whole thing started: it began when John > Foderaro expressed his dislike of the Loop macro in some pretty uncertain > terms. When will it dawn on you sluggards that it is not the macros that are the issue? John Foderaro expresses a very strong hatred for the standard as such, and the standardization process in particular. This undermines the whole _legitimacy_ of Common Lisp qua language, and he's doing this as a representative of a vendor who claims to produce a conforming Common Lisp implementation. I am _amazed_ that the people who regard his behavior as excusable have to excuse some silly little trivialty. There is a marked difference between being personally opposed to abortion and working to overturn Roe vs Wade. If you are working for an abortion clinic and you post "private" arguments that could _really_ help those who want to overturn Roe vs Wade, do you expect anyone to consider any _lesser_ issues than the biggest possible and most damaging issue? Well, only if you expect people to be really stupid or you are manipulating the issues so it looks like a harmless non-issue to people you do not want to care. Nobody, and I mean _nobody_, cares what John Foderaro's personal opinion on the loop macro is, or the if/when/unless nonsense he only hurts himself by ranting so abjectly and manifestly _irrationally_ about, but when he is arguing that people have to do so much stuff outside the standard, anyway, that it does not matter whether they use non-standard stuff, and he argues very strongly that it is _bad_ that the committee is guilty of a bunch of _compromises_, he is arguing against the community concensus-shaping process, and promises that he will _not_ lay issues to rest, but continue to fight for his way forever, which only destabilizes the community and never lets us move on, to, say, standardize more stuff. Since you suffer from the exact same "can't get over this"-syndrome, Erann Gat, you probably do not see this is the mark of a lunatic, but that is what it is, and that lunatic is a central figure at a Common Lisp vendor. That is the damage he is doing. That damage cannot be undone by "success stories" or any trivialties. Undermining the legitimacy of a standard is not met with "but I did good with it". That is no more a valid argument than quipping "but it felt good" about a drug that the FDA revokes from the market. > You must be confusing me with someone else. All I'm asking for is for > people to stop bashing everyone who says something negative about Lisp > over the head, and instead put that energy into publicizing how Lisp > helped them win. Is that asking for considerable changes in reality? As usual, you argue as if you have _zero_ clue what is at stake. Why? Is it because you so adamantly refuse to show that you understand an issue _I_ raise? I have my doubts that you do not _actually_ fail to understand the issues involved here. You are far too sinister for that. > The wall I always ran up against was the question: "Who uses it?" The > answer to that question for C++, Java and Perl is: everyone. As long as you think in those terms, you have set yourself up to lose. Nobody can help you when the reality you live in is not sufficient for you to form your opinions. "Everyone"!? What is _wrong_ with you? > What's the answer for Lisp? You clearly imply that success stories do not work, and that one more would not help. The critical mass that you are obviously looking for does not exist, cannot exist. We simply do not have the infrastructure to support it in the Common Lisp community. Cities that expand have to cope with water, electricity, sewage, roads, telecoms, law enforcement, health care, etc, before they can let people move in, and politicians and civil engineers know how complicated and costly this is. Even the most rabid liberatarians understand that this infrastructure has to be in place and that everybody who live in that society has to help pay for it. To make this kind of infrastructure-building work, you need both a large tax base and the ability to borrow _vast_ amounts of money. The same is true of a user community that grows to be very large -- it has to devote a good chunk of its profits to building and maintaing its infrastructure. Microsoft has figured this out, and they build the infrastructure _first_ these days. Sun figured it out with Java, too, and the spent a godawful lot of money on building the infrastructure before anyone even saw Java. The XML crowd has done the same thing with more politics and manipulation than most people are willing to think about. The Common Lisp community does not make enough profit to grow enough to fund its own infrastructure and it has insufficient volunteer effort to help build it. Therefore, Common Lisp must of necessity confine itself to a growth pattern that is completely incompatible with your fake desire to see it used sufficiently for "people use it" to be a self-propelling and self-fulfilling argument. We are at a point in the Common Lisp community where only those who think Common Lisp is truly great both for personal and professional reasons are _likely_ to use it. Just pointing to others will _necessarily_ have to answer the question _why_ they used Common Lisp. That cannot be a silly deferred answer like "oh, somebody else also used Common Lisp" because we simply do not have the automatic credibility of critical mass. This is why it hurts Common Lisp to have people tell stories about why they do _not_ use Common Lisp, why they hate or dislike Common Lisp, but more importantly, why they do not think a standard is a even good idea. Again, just to reiterate this point: There is a huge difference between saying that the standard is solving only part of the whole problem (of building an application) and saying that the standard is _not_ solving a part of the problem (of being a complete programming language). If you argue that the standard set of conditionals are _bogus_ and should not be used, you are undermining the _usability_ of the standard qua standard. If you argue that some construct in the standard should be avoided "like the plauge", that is not a statement about the macro, it is a statement about the trust in the stamp of approval that a standard is supposed to have: the process that created that standard managed to include something that is "like the plague". How can you possibly trust the _rest_ of it when it has let something like that in? And let us not forget the case issue. The standard is more than _wrong_, according to the same voice, for using upper-case symbol names. The whole point with a standard is that it be the basis for our ability to cooperate on _other_ things. It is not unlike accepting the outcome of an election instead of bringing legal action against the election process -- if you communicate to the electorate that you do not trust the process after you lost, you do not challenge just the specific outcome, you challenge the concept of holding an election to determine a whole class of outcomes. If you really wanted to improve the election process, you would _not_ have sued to alter the outcome, but would have respected the outcome whatever it was under the current set of rules and practices, and fought for changes independently. What I want the Common Lisp community to tell every newcomer and every vendor of a (purportedly) conforming product to tell every customer is that Common Lisp the Standard is not only good enough, it _does_ work as the basis for cooperation on other things we want to accomplish. It is massively unproductive to argue against the standard unless you are doing so in the context of the standards process -- because just by doing so, you are saying that the standard is both _unfinished_ and _unsuitable_ to base further work on. Those who cannot put their lost fights behind them and move on, are keeping _everyone_ back. The inability of some people to move on has been marring the Common Lisp community forever, and from my long and considerable experience with standardization processes (ISO, IETF, ANSI, national), I have to say that the willingness of some members of the standards committee for Common Lisp to respect the process and the reults of its votes is far lower than in any other process I have been part of or whose work I have tracked. This is reflected in the lagging implementation of conforming Common Lisp systems, too. From what I have seen of the existing implementations, conformance is basically a non-issue compared to the rest of the work that it necessary to make a system work, provided that you start off with a working system, and GCL, CMUCL, CLISP, and a few others have a working system. Moreover, it is _not_ conformance that should set the vendors apart. They should _all_ conform. This leads to a pretty interesting situation in that we all know that a lot of the standard functionality in Common Lisp can be expressed with other standard functionality. It _should_ therefore be possible to implement what some call a "core" Common Lisp and then use a free implementation of the rest of the language on top of that core to get a first approximation to a conforming Common Lisp system. Then, as you need better _performance_, not _conformance_, you implement more "native" support for things that turn out to be slow. This should make the difference in cost of implementation of a non-conforming and a conforming implementation close to zero, and free systems that today lack full conformance are prime candidates for working _together_ on this to save considerable time. In order for people to want to base their investments, time or money, in Common Lisp, they need to _know_ that the standard will be supported. The reason people clamor for other features to be standardized before they are willing to do any work in Common Lisp is precisely the same: The very lack of standardization introduces a higher risk of failure: What if your chosen platform is not suitable by your users? This is the same issue as building and releasing a Linux version of a Common Lisp system when you are uncertain what signal management your users will be using, or worse, suppose you want to make it available for the very popular IA32 (80x86), and you think Windows must be it, but _all_ your users hate Microsoft, yet cannot agree on which OS to use instead. This is the kind of risk Common Lisp users are facing today, and they are not only facing it with non-standard extensions, they are facing it with _standard_ features and facilities. This is the really intolerable part. And while Paul Graham whines unproductively about the lack of a tight OS interface in Common Lisp compared to Perl (is he clueless? it is a language _defined_ independently of operating systems -- Perl was married to its operating systems (Unix) from the start, and only managed to make a more abstract interface late in its development, such that it can be used under Windows), the obvious solution is to figure out what Perl did right in this department and provide similar operating system interfaces. Common Lisp does not need to be changed for this -- we just add at least one package with solid, native Unix support. However, this is just the kind of infrastructure work I alluded to above. Like, can we use foreign function interface definition _builders_ that produce FFI glue for each of the existing implementations such that we can feed it ANSI C header files and get back implementation-dependent FFI declarations, instead of having to agree on the FFI code itself? That would come a long way to obviate the need for humans to write FFI glue. Can we afford to do this? When I read Erann Gat's rather vacuous "but people do not use it" whine and implicitly invite lots of people to the great new Common Lisp City, he does so without recognizing the need for water, electricity, sewage, roads, telecoms, law enforcement, health care, etc, to be in place. I believe we can get people to help build that stuff if and only if they believe enough in the place they are going to move to, and that belief is based in a strong desire to see some of your values realized. I call it love for your language. If Erann Gat wants to bicker over "love" versus "some other motivation", let him bicker. It is all he does these days, anyway, regardless of _past_ merits. > A recent query to this newsgroup asking people what they used Lisp for > garnered only a *single* response. Why? It's certainly not for lack of > participation in the newsgroup as a whole. Was it you who asked? ///