Live data from Hacker News

Lisp at the Frontier of Computation [video]

youtube.com

11–20 of 143 posts

Re: Lisp at the Frontier of Computation [video]

#11
post #9
post #7

Every time, I see one of these links or videos, I feel the urge to learn Lisp. But after some time, I lose the motivation. I think that is because I don't know what benefit learning lisp will provide me concretely. Anyone has any suggestion?

Learning a functional language has been eye-opening, but I've always struggled with Lisp. It was Erlang that finally clicked with me. I would suggest, if you haven't already learned one, to find some FP language that looks interesting. Elm, perhaps, or Elixir. I'm not a fan of "hybrid" languages like Scala; finding one that hews closely to the FP ideas will be more useful, I think, in learning how to think functional…

While I agree with you, it's important to note that the defining trait of Lisp isn't that it's a functional language.

It can be functional, just as it can be object oriented or procedural, but those labels matter less to what Lisp is than does the intense focus on things like metaprogramming, in my opinion.

Re: Lisp at the Frontier of Computation [video]

#12
post #7

Every time, I see one of these links or videos, I feel the urge to learn Lisp. But after some time, I lose the motivation. I think that is because I don't know what benefit learning lisp will provide me concretely. Anyone has any suggestion?

I enjoyed learning Clojure by doing the exercises at http://www.4clojure.com/. I documented my progress and learned a lot from solutions of others.

Re: Lisp at the Frontier of Computation [video]

#13
post #10

This was a much more enjoyable video than I was expecting. The audio quality really had me tempted to skip, so I encourage others to not let that turn them away. The quote which I will paraphrase that "lisp is not freed from having to justify why you would use it." This is huge and the section before it going off about how condescension is a terrible enemy of the language is one that I would hope more people contempl…

I unplug my headphones jack halfway to turn failing stereo into good enough bi-mono.

Re: Lisp at the Frontier of Computation [video]

#14
post #7

Every time, I see one of these links or videos, I feel the urge to learn Lisp. But after some time, I lose the motivation. I think that is because I don't know what benefit learning lisp will provide me concretely. Anyone has any suggestion?

Lisp teaches you that there's always a better tool for the job than something that's already in your toolkit. More than any other language I've worked with, Lisp makes it incredibly easy and low-friction to write domain-specific languages to solve the exact problem you're working with. That's not always a good thing -- it can make working with a foreign codebase difficult -- but it's definitely a powerful concept whe…

Lisp seems to take the exact opposite approach as Go. The power of languages like Lisp appeal to me, so I have a hard time understanding why people want a language that intentionally limits itself. Read Graham's book and he's talking about how macros are great for writing maintainable code because you can make it both short and very readable because it's close to the domain.

But then you hear the arguments in favor of Go maintainability, and it's about copy/pasting being preferable to abstraction and not having too many ways to do things, so everyone's code looks familiar. Also that the extra LOC are more readable to Go maintainers than powerful abstractions. That surprises me, because languages like Lisp, Smalltalk, Ruby and Haskell are all about powerful abstraction capabilities so you can express yourself exactly as you need instead of writing a lot of boilerplate.

Re: Lisp at the Frontier of Computation [video]

#15
post #7

Every time, I see one of these links or videos, I feel the urge to learn Lisp. But after some time, I lose the motivation. I think that is because I don't know what benefit learning lisp will provide me concretely. Anyone has any suggestion?

Don't force it. It will come at the right time. Enjoy your spot on the programming map, it's no use to learn Foo if it means you'll suffer your day job or can't get enough value out of it.

That said, lisp is a goldmine / rabbithole crossover. As other said:

- opens for a hackable tool mindset, use lisp on lisp to make it do what you need [1]

- as said in this talk, if you want a dsl, you don't need a parser. Only later if you need others to write it without '(lisp syntax) you can do so. And if all are happy with lisp, you just skip that entirely.

- it's often highly interactive, and value oriented. You get to "touch" the data a bit like material. Nowadays repl's are common, so it doesn't seem special but it was so for 30years.

- lists mindset is different from mutable arrays, saving you immense amount of time in the first phase (by avoiding the vast majority of stupid bugs). When you need speed you can tailor; also lisp implementations are performant (SBCL is in the top 10 of all IIRC)

- functional mindset also open for a lot of new ways to think about problems, leads to other languages like ml/haskell too

- similarly you often get a step in the logic programming world (prolog, kanren) which are very mind opening about "programming computers"

it's not perfect, and if abused you can get stupid code, too cryptic because you used too many weird notation or structure; this is a balance skill you get to learn, lispers are not that asocial, they know when to stay in the human readable most of the time.

Re: Lisp at the Frontier of Computation [video]

#16
post #7

Every time, I see one of these links or videos, I feel the urge to learn Lisp. But after some time, I lose the motivation. I think that is because I don't know what benefit learning lisp will provide me concretely. Anyone has any suggestion?

It is one of the very few languages where the source code is made of a data structure that the language is very good at manipulating.

Thus, writing code that generates code, be it at runtime or at compile-time, is downright easy in Lisp. This opens up enormous possibilities not found in other languages.

Also, on regular programming languages, your code executes only at run time. In Lisp, or at least in Common Lisp (and probably on Scheme as well), there are three times: Read time, Compile time, and Run time, and your code can selectively run at one of those three. This also opens up lots of possibilities.

Another feature is that it is really suitable to interactive development in a way that isn't matched by any other language except for Smalltalk. It allows, for example, changing the definition of a function while your code is running.

Now, two features that are particular to some Lisps:

Scheme has continuations. Continuations are like magic teleportation within your code. They are very powerful.

Common Lisp has the Common Lisp Object System (CLOS), possibly the most powerful OOP system out there. It rocks!

Re: Lisp at the Frontier of Computation [video]

#17
post #4

too bad the audio quality is low..

Sorry about that. Our microphone/recording rig wasn't set up in time, and had to resort to a batter-powered lapel mic. We will try to at least duplicate the channel.

I hope that the audio is at least relatively clear, and not muffled and incomprehensible!

Re: Lisp at the Frontier of Computation [video]

#18

Earlier quoted context omitted.

Lisp teaches you that there's always a better tool for the job than something that's already in your toolkit. More than any other language I've worked with, Lisp makes it incredibly easy and low-friction to write domain-specific languages to solve the exact problem you're working with. That's not always a good thing -- it can make working with a foreign codebase difficult -- but it's definitely a powerful concept whe…

Lisp seems to take the exact opposite approach as Go. The power of languages like Lisp appeal to me, so I have a hard time understanding why people want a language that intentionally limits itself. Read Graham's book and he's talking about how macros are great for writing maintainable code because you can make it both short and very readable because it's close to the domain. But then you hear the arguments in favor o…

>Lisp seems to take the exact opposite approach as Go. The power of languages like Lisp appeal to me, so I have a hard time understanding why people want a language that intentionally limits itself.

Me too.

I don't understand how people in HN vouch for restrictive languages.

Re: Lisp at the Frontier of Computation [video]

#19
post #7

Every time, I see one of these links or videos, I feel the urge to learn Lisp. But after some time, I lose the motivation. I think that is because I don't know what benefit learning lisp will provide me concretely. Anyone has any suggestion?

I enjoyed learning Clojure by doing the exercises at http://www.4clojure.com/ . I documented my progress and learned a lot from solutions of others.

Note that Clojure is not really a Lisp dialect, so you will need a different tutorial if you want to try a Lisp like Scheme, Common Lisp, Racket, TXR Lisp, etc.

Re: Lisp at the Frontier of Computation [video]

#20
post #7

Every time, I see one of these links or videos, I feel the urge to learn Lisp. But after some time, I lose the motivation. I think that is because I don't know what benefit learning lisp will provide me concretely. Anyone has any suggestion?

It is one of the very few languages where the source code is made of a data structure that the language is very good at manipulating. Thus, writing code that generates code, be it at runtime or at compile-time, is downright easy in Lisp. This opens up enormous possibilities not found in other languages. Also, on regular programming languages, your code executes only at run time. In Lisp, or at least in Common Lisp (a…

Whenever I want someone to understand Lisp being a homoiconic metaprogramming language, I link them this:

http://www.defmacro.org/ramblings/lisp.html

Post reply on HN