Live data from Hacker News

Learn Lisp the Hard Way

learnlispthehardway.org

71–80 of 144 posts

Re: Learn Lisp the Hard Way

#71

Regarding the tone I concede it is a little over the top, but considering the author works for D-Wave[1] building the future of (Quantum) Computing I think it is not without merit. It may be better to leave the intro part for the end as it may alienate programmers that have preconceived notions about lisp based on hearsay and not actual experience (i.e. it's enlightening, it's old, full of cruft, hard to read, it's f…

The author working for D-Wave is a very illuminating fact, given the high probability that D-Wave's products are pseudoscience.

Re: Learn Lisp the Hard Way

#72
post #49

Earlier quoted context omitted.

The DSL for string formatting certainly doesn't look simple. (format t "~{~@(~A~)~^ ~}, because ~{~A~^ ~} is easier!" llthw (cddr llthw))

It's complex because it's powerful. ~A is the most common directive; it simply prints an object. '~{...~}' (braces) iterates over a list, applying the directives within it to the list elements. Within that construct, '~^' exits if the last element of the list has been consumed; it's used here to keep the separating space from being printed after the last element. '~@(...~)' (parens) capitalizes words in the output of…

It's just disingenuous to say that LISP has extremely simple syntax and then show the DSL for format, which is anything but LISPy or simple.

Re: Learn Lisp the Hard Way

#73

Earlier quoted context omitted.

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 pr…

The only thing that makes programs easy to deploy is the popularity of the language/environment they're written for. If the language you're using is popular enough that you can download the implementation using your system's package manager, deployment is easy. If not, it's harder.

And for any language that's popular now, there was a time that it wasn't yet popular, and deployment was a pain.

So I think you have it backwards: Lisp is not unpopular because it's hard to deploy; it's hard to deploy because it's never cracked the popularity threshold.

Re: Learn Lisp the Hard Way

#74

Earlier quoted context omitted.

^ 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 y…

I think you're missing the point and/or wrong.

First, I don't want to have to turn myself into an LALR parser to read some code.

> What is hard for the machine is hard for you also.

But what's easy for the machine may well not be easy for the human. LZW isn't very hard for a computer, but good luck reading it.

Syntaxes that may be equivalent to the computer may well not be for the human. Yes, a human can train itself to read that stuff, but if the language designer made more humane choices, the language would be easier for the humans.

Note that this does not directly address how hard it is for humans to read Lisp. It merely addresses the parent's comments.

Re: Learn Lisp the Hard Way

#75

"The mysterious force driving human society towards the technological singularity, true and total unification of human with technology, also seems to be shaping all programming languages into Lisp, and all computers into Lisp Machines. Lisp, after all, can do everything, and do it every way; 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 ver…

That burn isn't from Lisp, though. It's from this author's tying Lisp to a somewhat far-out world view - one that doesn't actually relate to Lisp very much.

Re: Learn Lisp the Hard Way

#76
post #3
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…

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.

Simplicity of syntax does not translate to ease of use. Or else we'd all be programming in one-instruction Turing Tarpit.

Re: Learn Lisp the Hard Way

#77
post #72

Earlier quoted context omitted.

It's complex because it's powerful. ~A is the most common directive; it simply prints an object. '~{...~}' (braces) iterates over a list, applying the directives within it to the list elements. Within that construct, '~^' exits if the last element of the list has been consumed; it's used here to keep the separating space from being printed after the last element. '~@(...~)' (parens) capitalizes words in the output of…

It's just disingenuous to say that LISP has extremely simple syntax and then show the DSL for format, which is anything but LISPy or simple.

It's disingenuous to claim a DSL is part of the language syntax. E.g. I would not consider the regex formatting specification as Python syntax. I mean, if we follow that line of thought, it's like saying Jinja is Python syntax.

Re: Learn Lisp the Hard Way

#78
I have nothing against Lisp, but...

>Is Lisp as hard as people say it is?

>No. Lisp is actually the simplest programming language, and has no syntactic cruft.

I always see this used when claiming certain languages are easy to grasp. "It's not complex at all! The syntax is incredibly simple!" x86 assembly also has very simple syntax but it's not too easy for beginners to write in, beyond very simple and small programs.

Re: Learn Lisp the Hard Way

#79

Before asking the obvious question when noticing the "Learn [X] The Hard Way" pattern, the FAQ already addresses that :-) Q: Is this site affiliated with Zed Shaw and Learn Code The Hard Way? A: No. This is a separately run and managed site, based on the format of Zed Shaw's LxTHW open-source package [1] for writing your own programming language course. You should check out the project and see what others are up to!…

Why copy his format? Seems Zed did the hard work to establish the brand.

A few other people mentioned this but I'll say it officially since the internet has a short memory for good things:

1. You can't really trademark titles of books, and I wouldn't want to in this case because there needs to be more books in this style. This method works for beginners, and works really well, so I want there to be more.

2. I created the repository so that there's an even lower barrier to entry than having a title to copy. I actually need to update this repository, but if I made it then I want people to reuse the methodology and make their own.

3. My only complaint would be when people rip off my words. If someone wants to write one of these, they just need to do their own writing in their own words and not copy mine.

That's my stance on it. I like people copying the title and method as it means there's more books that will help people learning to code. I just don't like them copying what I wrote.

Re: Learn Lisp the Hard Way

#80

Before asking the obvious question when noticing the "Learn [X] The Hard Way" pattern, the FAQ already addresses that :-) Q: Is this site affiliated with Zed Shaw and Learn Code The Hard Way? A: No. This is a separately run and managed site, based on the format of Zed Shaw's LxTHW open-source package [1] for writing your own programming language course. You should check out the project and see what others are up to!…

It's not affiliated with me other than using my starter kit and the title style.

I do support books like this as I think there needs to be more "trainer" style books, especially for beginners, because they work.

Post reply on HN