Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Lisp, too, is mainstream (lispcast.com)
40 points by nickb on July 8, 2008 | hide | past | favorite | 10 comments


Lisp (1) metaprogramming sucks. I've got a closure. Why can't I know over which variables? Why can't I know which function called foo (ie.: access the stack)? Why can't I know what the fields of my struct are? Even Python knows how to do that one.

I want my macro code, expanded here, to be aware of that other bit of macro code expanded in that other function.

Yeah, there are work-arounds. I've got my own defstruct, my own defun, my own everything. And this morning, I started writing a code walker. With anguish in my heart over a lifetime of debugging the monster that was born today.

Lisp is not an acceptable Lisp, indeed.

(1) That would be Common Lisp and what I know of Scheme. I'll be glad to know there's something better out there.


> I've got my own defstruct, my own defun, my own everything.

So is Lisp, a programmable programming language.


See, there is this better-than-Lisp language in the sky, that's not made yet, call it sky-lang. I state that every sufficiently complicated Lisp program contains an ad-hoc, half-broken version of sky-lang. I don't want that. I want the real thing.

Every language is "programmable", that's what the Greenspun rule says. Just because Lisp does it better than the others doesn't mean that it's actually close to what can be done.


I think the "Lisp as a (potential) blub" meme is starting to catch on. You're starting to see some people release alternatives that are looking fairly viable. Two that are frequently discussed here are Arc and Clojure. Then there are guys like Mark Tarver, who are working on things like Qi to improve Lisp.

I think it's great to see that after 50 years, "Lisp, the idea" is still growing.


Can you give concrete examples of something useful that's really hard to do without the features you mention that would be much easier if we had those?

By the way I agree that Lisp could be a lot better.


Can you give a concrete example of something useful that's hard to do in Python but would be so much easier in Lisp?

Languages give you a certain amount of expressive power. By stretching the language, you can always reach a bit higher. Python can reach Lisp. It's just damn ugly. Worse Is Better ugly.

Right now, everything that I complained about in the top post, I "fixed". But it's damn ugly. So I don't build anything on top of it. I just use it. If these features were done the Right Way, I'm sure the next abstraction level would be obivious. That's how it always goes.


I would like to add Clojure to the languages discussed.

It add macros and metaprogramming and real functional programming to Java, while keeping the library support and deployability. So, as other programming languages borrow what is good about Lisp, Clojure is a Lisp that has borrowed much of what is good about Java.


Python is a little bit more practical than lisp. I'm learning scheme now, but I'll stick with python as my main language.


But the corporate manager will say: if everyone writes their own syntax, my programmers can't read each other's code.

I know it's a deliberate straw man, but still: the corporate manager who says this doesn't understand what "his"/"her" programmers actually do.


Plus shortening programs should on the contrary make programs easier to read, all they have to do is choose reasonable names for their macros.




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

Search: