Live data from Hacker News

Learn Lisp the Hard Way

learnlispthehardway.org

31–40 of 144 posts

Re: Learn Lisp the Hard Way

#31
post #2

"Is Lisp as hard as people say it is? No. Lisp is actually the simplest programming language, and has no syntactic cruft. While it wasn't designed to be “easy to learn” like Swift, Python, Ruby, or Basic, there is less overall to learn and you will be writing real, useful programs in Lisp sooner than you could with other languages." It's like a never-ending stream of lies, every word being a little more absurd than t…

Could you enumerate the lies for us? Your comment is arresting but not enlightening without more information.

I wouldn't say "lies" so much as overly optimistic opinions.

The idea that you can write a useful program in Lisp faster than in other languages is pretty unsupportable. For most users, the time and effort spent getting Lisp up-and-running on their machine of choice will already have lost. Incidentally, I played with the interactive REPL and it wouldn't advance beyond the second page.

And, if you do write a useful program in Lisp, you run into the deployment problem. The deployment problem is pretty bad. Apple's Advanced Technology Group at one point had one of the highest concentrations of Lisp-heads in the world and produced a bunch of stuff like Dylan, Sk8, etc. that was intimately tied to their Lisp implementation. Not only was this not cross-platform, and pretty hard to distribute and deploy even on the platform it was created for (680x0 Macs) it was killed by the transition to PowerPC.

This isn't as big a problem if you're writing server software, but it's absolutely disastrous if you're writing desktop or mobile software.

One could show someone how to do something useful and deployable in Python, PHP, Perl, Javascript, or whatever in a few minutes and chances are they could have a usable dev environment set up in a few minutes.

Re: Learn Lisp the Hard Way

#32
post #9
post #3

Earlier quoted context omitted.

Just because Lisp looks foreign doesn't mean that it's harder. The syntax is different , but it is also very simple . If this were untrue, Scheme wouldn't have survived as a teaching language all these years.

It's less about it being 'foreign' and more about it being totally unparsable. The thing with imperative programming is that you don't really need to know the language to at least get an idea of what's happening. Lisp is so dense that while you can pack an unbelievable amount of programming into a small chunk, approaching it as a beginner is daunting. There isn't a really good way to 'build' on an algorithm and learn…

> Lisp asks a lot of the user up front. Like what? Last time I checked you get a repl and type away. If you have a mac you can install CCL from the app store and don't even have to use the terminal to get to a repl.

> Python doesn't. C# doesn't. Fuck, Python is so loose that you don't even really need to know what any of the structure is to start writing something that kicks back some output.

again, not unlike lisp.

> Lisp isn't THAT hard', but that's bullshit. Lisp IS that hard

Care to back up that claim? AFAIR The SCIP barely spends a page explaining the semantics. The CONCEPTS in teaches are hard(er) but they are not lisp. In fact one of the reasons the SICP was written in Scheme is so that you _don't_ have to waste half a semester teaching the language before you can get to the fun, important, useful stuff. The little schemer doesn't spend much time teaching lisp either.

Re: Learn Lisp the Hard Way

#33

Earlier quoted context omitted.

Lisp is totally parseable. So much so, that no LALR(1) approach is required to conquer it. It consists of an unambiguous parenthesized notation, plus some simple prefix-basd notations (and only a small modicum of non-nesting infix, like the consing dot and the colon in "package:symbol". You do not run into any issues of associativity or precedence. Moreover, indenting Lisp so that it looks good, readable and "canonic…

^ Why would someone downvote facts? Because they conflict with their religion, of course.

Parseable by humans, not compilers/interpreters.

Re: Learn Lisp the Hard Way

#34
From the FAQ: "Is Lisp as hard as people say it is?

No. Lisp is actually the simplest programming language, and has no syntactic cruft. While it wasn't designed to be “easy to learn” like Swift, Python, Ruby, or Basic, there is less overall to learn and you will be writing real, useful programs in Lisp sooner than you could with other languages."

Is it necessary to put strong subjective statements that have no supporting links or proof? Also, are you seriously saying that /Common/ Lisp is the simplest language? (from FAQ: "Lisp — the friendly nickname for Common Lisp")

Re: Learn Lisp the Hard Way

#35
"that Lisp is not already the de-facto programming language is just a reflection of the state of the world as a whole—only a very small percentage of the population are excited for the technological singularity, but the singularity is coming no matter how much people complain."

As a transhumanist myself I resent the arrogance that led to this ridiculous appropriation. Yes, Lisp is pretty great, but the use of other languages is not some grave cultural defect through which you can glimpse at all the badness in the world.

If the goal here is to evangelize Lisp, radiating this kind of pomposity seems like a questionable move because it reflects badly on the community you are trying to win new members for. Worse, this could be interpreted as willful cluelessness in the face of the rich multi-language ecosystem potential readers are living in.

As far as the singularity is concerned, monocultural boneheadedness is not something people associate with technological progress.

Re: Learn Lisp the Hard Way

#36
post #2

"Is Lisp as hard as people say it is? No. Lisp is actually the simplest programming language, and has no syntactic cruft. While it wasn't designed to be “easy to learn” like Swift, Python, Ruby, or Basic, there is less overall to learn and you will be writing real, useful programs in Lisp sooner than you could with other languages." It's like a never-ending stream of lies, every word being a little more absurd than t…

Well, let's see. Lisp has no syntactic cruft? It has (almost) no syntax, so there's less room for cruft. That said... cons? car? cdr? That's your syntax? That's not cruft? Seriously? There may be less total cruft, but the percentage of cruft might still be higher... There's less overall to learn? If you mean to master the syntax, sure, that's true. You'll be writing real, useful programs in Lisp sooner than you could…

I believe that Lisp requires years to master.

If you're a bright developer, who puts in time eagerly, it will take at least six months before you begin to "get it".

At that time you may start itching to evangelize to others, but those who have not put in the time will not get it.

It's not realistic to try to make someone see in one or two e-mails or postings what took you a year to see for yourself.

Re: Learn Lisp the Hard Way

#37
post #9

Earlier quoted context omitted.

It's less about it being 'foreign' and more about it being totally unparsable. The thing with imperative programming is that you don't really need to know the language to at least get an idea of what's happening. Lisp is so dense that while you can pack an unbelievable amount of programming into a small chunk, approaching it as a beginner is daunting. There isn't a really good way to 'build' on an algorithm and learn…

How much of your argument is cognitive bias? From what I understand the hardest thing to teach new programmers coming to Java or Javascript or even Python is assignment and mutability. That has a huge cognitive overhead. Contrast that with the lambda-form structure and substitution method of evaluating expressions in Lisp. (function arg1 arg2...) It's consistent and simple. You can introduce mutable variables and ite…

You could even just write "Hello, world!"!

Re: Learn Lisp the Hard Way

#38
post #23
post #17

Earlier quoted context omitted.

Why would he put up a public repository if he did not want the format copied? Zed A. Shaw created project Learn X The Hard Way 2011-08-29 22:06:48 UTC This is a skeleton book project that makes it easier to start working on a "Learn X The Hard Way"...

I think you can copy his format, but taking his brand is a different story. Zed put a lot of hard work into that, this is less than honest in my mind.

Saying that it's a template for a "Learn X The Hard Way" book sounds to me like an invitation to write a book titled "Learn X The Hard Way" (absent any statement on his site asking that people name their book something different).

Re: Learn Lisp the Hard Way

#39
post #2

"Is Lisp as hard as people say it is? No. Lisp is actually the simplest programming language, and has no syntactic cruft. While it wasn't designed to be “easy to learn” like Swift, Python, Ruby, or Basic, there is less overall to learn and you will be writing real, useful programs in Lisp sooner than you could with other languages." It's like a never-ending stream of lies, every word being a little more absurd than t…

I think the sentence is poorly put together, but there aren't any lies. Clojure syntax is by far more simple (and thus easier to learn) than C-style languages or Python or Ruby. But the language is harder to jump into because it places particular emphasis on programming principles that are confusing to new programmers, like function purity, recursion and higher-order functions.

Keep in mind too that different Lisps have different syntax. The only thing in common between them is Polish notation, S-expressions and a macro system. A Clojure program and a Common Lisp program look and feel very different.

Re: Learn Lisp the Hard Way

#40

Earlier quoted context omitted.

Lisp is totally parseable. So much so, that no LALR(1) approach is required to conquer it. It consists of an unambiguous parenthesized notation, plus some simple prefix-basd notations (and only a small modicum of non-nesting infix, like the consing dot and the colon in "package:symbol". You do not run into any issues of associativity or precedence. Moreover, indenting Lisp so that it looks good, readable and "canonic…

^ Why would someone downvote facts? Because they conflict with their religion, of course.

There is not so much difference between "parseable by humans" and "parseable by compilers". What is hard for the machine is hard for you also. For instance, if you're asked to sort a deck of 1000 randomly shuffled cards, each printed with a unique integer, you will not do better than O(N log N).

Take any LALR(1) defined programming language. Now write it in one line without indentation. How easy is it to parse (for you, human)? We rely on other clues to grok languages, like indentation. You cannot really "cheat" in parsing; if the machine requires a 600 state transition graph with a push-down stack, that translates into difficulty for you, also.

Lisp is obviously parseable by humans; there are people who easily write and maintain large, complex Lisp programs.

Post reply on HN