Hacker News new | comments | show | ask | jobs | submit login

Xah Lee has trolled Lisp groups for years. It's well known that much of his 'advice' is useless. The number of bullshit posts by him is a bignum. His comp.lang.lisp trolling is legendary.

Nothing 'ad homenim' or mean - just saying how it is.




As an emacs beginner, I've landed on his site numerous times, often finding it helpful. The fact that he might or might not have trolled some mailing list is of no concern to me.

If you have a better alternative resource, please present it. If you can find technical faults in this resource, you should provide them so the author can correct it and other might learn of them as well.

Otherwise, stop trying to justify ad hominem with meaningless retorts.


> The fact that he might or might not have trolled some mailing list is of no concern to me.

It's not meaningless to me.

> If you can find technical faults in this resource, you should provide them so the author can correct it and other might learn of them as well.

We had extensive discussions with him for years. Literally thousands of posts can be found on comp.lang.lisp.

The only Lisp he learned was some imperative crappy style, while lecturing everyone how dumb they are.


> The only Lisp he learned was some imperative crappy style

Not to be trolling myself, but I believe that's part of the "practical" aspect.

You'll find much of the same in "Practical common lisp".


What I think of is Lisp code from the 60s, before structured programming, functional programming, etc.

when he writes:

    (let (a b c)
      (setq a ...)
      ...
      (setq b ...)
      ....)
That's basically the style of the past:

     (prog (a b c)

       (setq a ...)

       ...)
With one difference: then it was usual to program control flows in Lisp with labels and gotos...


which way to use let is just a personal taste.

When i begin in elisp, i ALWAYS stick with this form of using local var:

    (let (x y z)
     (setq ...)
     (setq ...)
     (setq ...)
     ...
    )
This makes it easier to read all local variable names. Especially when readers are beginners, non-professional programers, scientists, writers.

If we always use this simple style of let, what possible problem can it create?

• Does it creates algorithmic problem? • Does it slow down programs? • Does it violate some computer science principles? • Are there science based proof, or statistics, that shows this style does some damage, such as more difficult to maintain?

The only thing i can think of, is a matter of esthetics.

later on, sometimes i use this form

    (let (x (y 3) (z 4)) body)
with the condition that, if i set the variable in the let parameter, it must be constant. The value never changes in the body. And now sometimes i also use the (let* ...) form.

These variations are just sugar syntax. Not really important. It's a bikeshedding problem.

The thing is, in emacs lisp, there's no way to declare constants. And also, it is unnatural to code elisp or even Common Lisp without lots of setq or setf or similar.

In JavaScript, the issue is much worse. JavaScript Name Hoisting and One-Liner Functional Style http://xahlee.info/js/javascript_name_hosting_and_one-liner_...


That in no way excuses being mean.


> If you can find technical faults in this resource, you should provide them so the author can correct

That's the problem, actually - I never saw Xah correct anything he thought "right", no matter how many people presented rational arguments. Granted, I don't follow his writings that much, so maybe it happens; however my general impression is that it's utterly impossible to convince Xah of anything.

On the other hand, his site does provide a certain amount of information. It just mixes good information with bad in a way which makes it very hard for beginners to tell one from the other.


His behavior on Usenet doesn't excuse anyone's behavior on HN.


> It's well known that much of his 'advice' is useless. The number of bullshit posts by him is a bignum.

I wanted to check this. How easy would it be to find something trolling-like, written by Xah? Turns out it took only 3 tries when searching for "Xah Lee" on googlegroups comp.lang.lisp. The third post I clicked revealed this gem:

    there's a good solution to lisp's non-functional ways. 

    BAN lispers from using list or cons. Everything should be vector/array 
    instead. 

    everytime a cons is involved, lispers should get a electric shock. 

    that will immediately fix majority of lisp's non-functional programing 
    in practice. 

    though, i'll have to say, the more i read about Clojure, the better it 
    seems. It is very functional, the savior of the lisp name. 
...I wasted a bit of time on this and I'm not sure it was worth it, but I'm pasting this here to strengthen lispm argument by replacing "it's well known" with a concrete example.


Bullies always rationalize their bullying by arguing their victim deserved it. Their flunkies are recognized by their chorus of "Yeah he deserved it" noises.


No, it's not about him at all.

It's just that other people do deserve to know that investing their time into studying some kind of material is not likely to pay off.

I agree, though, that "he's a troll" is not the best way of communicating it. You'll notice that I wasn't the one who did that.


con shouldn't be used, especially today. see this Guy Steele article: Guy Steele on Parallel Programing: Get rid of cons! http://xahlee.info/comp/Guy_Steele_parallel_computing.html “Get rid of cons!” is the exact words from his paper.




Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact

Search: