Live data from Hacker News

Learn C and build your own Lisp (2014)

buildyourownlisp.com

61–70 of 90 posts

Re: Learn C and build your own Lisp (2014)

#61
post #27

Be warned; Buildyourownlisp is a great book for novice C programmers looking to build more complicated projects but it's a very bad introduction to Lisp. Most of what makes Lisp great you won't find here.

When you say “lisp” are you specifically talking about Common Lisp, or the whole family of lisps? What is it missing?

Re: Learn C and build your own Lisp (2014)

#62

I’m a python programmer and my dream would be to learn C and an extension language like Guile or Ecl. Then I could write the performant bits in C and extend it with Lisp. I’m actually pretty proficient in Racket so I’m doing pretty well on the lisp side, but I’ve found the books for learning C lacking. I absolutely had “C a modern approach” and “Modern C”

[deleted]

Re: Learn C and build your own Lisp (2014)

#63
post #60

Earlier quoted context omitted.

Terrible suggestion. We need to kill all these c'isms as fast as possible. Teach people to write nice data-structures, with good api's, and with generic and sensible types. All these C'isms like returning -1 for false and 'nil' children seriously sucks. For a systems class it might still be suitable, but you could design good courses around other languages like ada, zig, rust w/e. If you want to teach them a lisp as…

Why would you need to talk about parsing for a month with Lisp? Lisp famously has one of the simplest syntaxes possible that is still structured, and one of the simplest data structures to understand. There's almost nothing to it. And why would you introduce Lisp in a compiler/interpreter course, to people who are presumably already quite advanced in their knowledge? Lisp is best as a teaching aid to introduce common…

I think their point was that teaching Lisp in a compilers class is a good way to avoid having to discuss parsing in-depth.

Re: Learn C and build your own Lisp (2014)

#64
post #56

Earlier quoted context omitted.

Kind of, they went a bit overboard with @

I think most of the crazy @ features are in Apple's branch. There's still the GNU version floating around working with OpenStep that is much closer to the original Objective-C vision.

And largely incompatible with modern Objective-C libraries, so of questionable utility.

Re: Learn C and build your own Lisp (2014)

#65
post #58

Earlier quoted context omitted.

Terrible suggestion. We need to kill all these c'isms as fast as possible. Teach people to write nice data-structures, with good api's, and with generic and sensible types. All these C'isms like returning -1 for false and 'nil' children seriously sucks. For a systems class it might still be suitable, but you could design good courses around other languages like ada, zig, rust w/e. If you want to teach them a lisp as…

I'm fairly conflicted about this. While I believe that learning C teaches bad habits - manual memory management tends to account for some absurd percentage (70-80%) of CVEs in modern programs - it's also unquestionably tethered to the history of software, and a majority of the immense foundation of tooling on a Linux system is authored in C. There is a terrific benefit to learning on a platform where you can not only…

Go sounds like the worse of both worlds from a teaching point of view: too high level if you want to understand what the machine is doing; but inheriting almost all of C's bad ideas that the GP was complaining about (except for manual memory management).

Re: Learn C and build your own Lisp (2014)

#66
post #11

I've had this in my bookmarks for awhile, intending to work through it. I think I can probably even do it solo without the guide, at this point. After years of programming, and learning (or at least playing with) many languages, I've come to a philosophical conclusion of sorts: C and Lisp should be the two languages all students start with, in my opinion. Probably SICP style Scheme education, and classic simple C89.…

Terrible suggestion. We need to kill all these c'isms as fast as possible. Teach people to write nice data-structures, with good api's, and with generic and sensible types. All these C'isms like returning -1 for false and 'nil' children seriously sucks. For a systems class it might still be suitable, but you could design good courses around other languages like ada, zig, rust w/e. If you want to teach them a lisp as…

The point is not to tech "C'isms" but to teach how computers and software work at low level. Even an introduction to an assembly language would be helpful. Higher level languages still perform these tasks but hide them from the user. Even if most people will end up using a high level language, having an understanding of what is going on and of how things work "under the hood" is invaluable.

Re: Learn C and build your own Lisp (2014)

#67
post #51

This book is on "Stuff that should be avoided" list[0]. [0] http://iso-9899.info/wiki/Main_Page#Stuff_that_should_be_avo...

I'm currently re-learning C, and I've been going through one of the books that they recommend (C Programming - A Modern Approach). Whilst "A Modern Approach" is a great book, it's hard for me to keep focused as I'm not really implementing anything other than the exercises and projects (for which there are too many IMO, and I struggle to get them all done). I've been working through Build Your Own Lisp in parallel, an…

"Effective C" is usually what I recommend people nowadays on Libera #c, which is where that wiki originates from.

The books were triaged based on the feedbacks we heard, the kind of questions that are asked on the channel, or how confused those readers are after reading through them.

Re: Learn C and build your own Lisp (2014)

#68

This book is on "Stuff that should be avoided" list[0]. [0] http://iso-9899.info/wiki/Main_Page#Stuff_that_should_be_avo...

Looks like a bunch of C gatekeepers got together and decided to reject any other path ways of learning C except their own.

How you learn C greatly impacts the code you will be writing.

The language allows too much freedom for a beginner and things can go bad quickly if you aren't rigorous about developing the right habits.

Years of experience helping people and seeing it happen first-hand is what leads to these strong opinions that you interpret as gatekeeping.

Re: Learn C and build your own Lisp (2014)

#69
post #50
post #11

I've had this in my bookmarks for awhile, intending to work through it. I think I can probably even do it solo without the guide, at this point. After years of programming, and learning (or at least playing with) many languages, I've come to a philosophical conclusion of sorts: C and Lisp should be the two languages all students start with, in my opinion. Probably SICP style Scheme education, and classic simple C89.…

That was the progression when I took (the now well-known) CS50 at Harvard. Learn C first, then Lisp, then write a Lisp compiler in C. That was a lot of years ago, so one could argue that is an outdated approach now, but I think it still provides a strong foundation of CS fundamentals.

fundamentals never become outdated

Re: Learn C and build your own Lisp (2014)

#70
post #49

This book is on "Stuff that should be avoided" list[0]. [0] http://iso-9899.info/wiki/Main_Page#Stuff_that_should_be_avo...

My first reaction to those reviews was that they read pretty disrespectfully. Writing a book is extremely challenging and some of the feedback is not appropriate for a page that's associated with a standards body. Then I wondered, "If these are the resources to avoid, where do these people recommend I find the good information?" Alas, those links are mostly broken. As a long time programmer recently learning C, I've…

> a page that's associated with a standards body

Is it? As far as I saw, this is just the web site of the ##C channel on Freenode.

Post reply on HN