spdegabrielle a year ago

[Programming Languages: Application and Interpretation](https://www.plai.org/)

From the preface;

> I have also written this book with working programmers in mind. Many of them may have not had a formal computer science education, or at least one that included a proper introduction to programming languages. At some point, like that 90% of students, some of them become curious about the media they use. I want this book to speak to them, gently drawing them away from the hustle and bustle of daily programming into a space of reflection and thought. - Shriram Krishnamurthi, Brown University

JackMorgan a year ago

Great course, I took it a few years ago while working full time and loved it. I recommend this right alongside SICP for the engineer who wants to dig deeper.

  • trenchgun a year ago

    What does SICP offer that this book does not?

    • skrishnamurthi a year ago

      SICP is mainly a book about how to structure systems. It also tells you how languages work, but in far less detail.

      PLAI (this book) teaches you how languages work. It also tells you a bit about how to structure systems, but that is not its goal. In part that is not a goal because of the existence of books like SICP and, increasingly, DCIC [https://dcic-world.org/].

      • gavinray a year ago

        Oh wow. If I was an educator, this book "A Data-Centric Introduction to Computing" is what I would put in front of people first.

        Everything you do in software is in service of moving and munging of data, programming paradigms are tools secondary to that.

      • trenchgun a year ago

        You are right. I have now binged 2/3 of PLAI. It is really nice in how it draws the landscape of programming languges and how they work. It of course also has an advantage being a newer book, programming languages and their theory have progressed quite a lot since writing of SICP.

        Also it is some how pedagogically really nice, very approachable and readable.

iwsk a year ago

>How SMoL Becomes Large

30 seconds into opening the textbook and I already like it.

psuedobrain a year ago

am i the only one for which programming language textbooks, papers, blog posts, etc. in racket are really hard to follow? the fact that the languages that is being operated on often looks exactly like racket makes it really hard to separate the two if i wanted to follow the tutorials in any other language.

  • oxff a year ago

    I went through the previous version with Rust. It is almost entirely language agnostic. It could be in sign language.

  • skrishnamurthi a year ago

    If you look at the book, you'll see that is not what it does, and for this reason.

jalino23 a year ago

this looks invaluable for self taught prog like me. anyone who read this before can share their experience?

ArcMex a year ago

An incredible project. Your motivations resonate with me. Thanks for sharing.

ngcc_hk a year ago

Great work.

Sorry side track totally. as part of my degree is under a Chicago School professor, who I respect but still his work find puzzling. Can this be a counter-example … just like many others open source project. The problem of public good i.e. those unlike fish cannot be eaten. He went on to do work on trademark, copyright and patent. Well copyright is what open source rely upon he would say. But what is the incentive of doing it. Would the total output less because of this … he would ask.

The question as normal here: why not say sell it and give the money to something you like, like charity.

  • skrishnamurthi a year ago

    I'm afraid I don't really understand this question. I am interpreting it as, "Why is the author giving it away for free instead of charging money for it". If that is not what you meant to ask, sorry!

    Anyway, if that is what you meant to ask: Well, I'm the author, so my answer may have some substance (-:.

    I have a good job and it pays me to have impact. I can have much more impact by giving away the book to people interested in learning. [º]

    [º] This is not 100% true. Over the years, people have told me they value a book more if it costs something. I am not looking to please them.

    In particular, I grew up in India and we could not afford fancy (but great) Western textbooks. If there's a student like me right now (whether in India or Indiana) who wants to learn from my book but for whom its cost is an obstacle, that would make me very sad. That's why all the books I have (co-)authored have been available for free.

    On the first edition's site [https://cs.brown.edu/~sk/Publications/Books/ProgLangs/2007-0...] you can see the different models by which I have made the book available. They have netted me some modest revenue. But there's always a free option.

    • UncleEntity a year ago

      I’d buy a paper edition if it were available to “support the cause”.

      The last programming language book I bought the author got two sales because Amazon didn’t follow the delivery notes where I specifically said don’t leave it on the porch or it will get stolen and one of my sketchy neighbors got a free copy. Almost got a third sale as well but I happened to be home and tracking the delivery driver so managed to get it off my porch before the neighbors saw it.

      • melagonster a year ago

        I can't understand why anyone try to stolen a programming book...

    • j33zusjuice a year ago

      I haven’t read any of your books yet, but I can’t overstate how much I respect your stance on pricing and impact. Thank you!

  • michaelsbradley a year ago

       why not say sell it and give the money to something you like, like charity.
    
    Per the author's website ( https://cs.brown.edu/~sk/ ), he is a dedicated educator. Maybe he explicitly or implicitly intended the publication of this work under a Creative Commons license to be an exercise of charity (in the "love your neighbor" sense), kindness, goodness, and/or generosity.
  • OkayPhysicist a year ago

    At the end of the day, somebody needs to do the work in order to create good. Adding layers of transactions can only reduce, not increase efficiency.

    If you, a person who knows something, want to achieve a public good in educating others on that thing, then the most efficient way of achieving that is just spreading the knowledge yourself. If you sold your knowledge in a book, and then used the money to pay someone else to write a book teaching the same thing, and then distributed that for free, you can only have lost efficiency.

    It's like asking "Why should I pay for college instead of working to make money to pay someone else to go to college and then teach that information to me": It's absurd, because it introduces entirely unnecessary transactions.

  • naasking a year ago

    > The question as normal here: why not say sell it and give the money to something you like, like charity.

    Giving away the book is a charitable donation to the entire software industry. That is giving his money away to something he likes.

  • bawolff a year ago

    Imagine if he sold the book to raise money for a charity that publishes books for free.