10 ms·
I find that Practical Common Lisp has not aged well. Maybe it's the "practical" part with the specific examples the author used -that are now terribly dated- th
by metroholografix 7y ago
I find that Practical Common Lisp has not aged well. Maybe it's the "practical" part with the specific examples the author used -that are now terribly dated- that is mainly responsible, but the end result is that I no longer recommend it.
My goto recommendation for newcomers is Norvig's PAIP which is full of insightful moments and unbelievably good code and for people with more experience "Let over Lambda" by Doug Hoyte, which is a mind-blowing book mainly because of the time-transcendent nature of the examples Doug chose.
- sulami 7y agoI'm planning to read PAIP over the upcoming weekend as a follow-up, I've already got it sitting here. I know next to nothing about AI, beyond the basics of RNNs, so I'm hoping to learn a lot.
- kannmig 7y agoThe material handled in PAIP mostly focuses on classical symbolic AI, as opposed to the modern ML-based AI that you refer to in RNNs. (Not to discourage you from reading the book, of course!)
- weavie 7y agoYou may need more than a weekend!
- billsix 7y agohttps://norvig.com/21-days.html https://norvig.com/21-days.html
- yarrel 7y agoIt's AI in the rule-based GOFAI paradigm rather than modern neural-network-based ML. Treat it as a review of some of the historical classics of computer science and you can't go wrong.
- vz8 7y agoFor those not in the know, PAIP is Paradigms of Artificial Intelligence Programming, with a fantastic repo here: https://github.com/norvig/paip-lisp https://github.com/norvig/paip-lisp
- nabla9 7y agoPAIP is a great book. It both teachers Lisp programming and "classical" AI programming. Knowing classical AI IMHO should be considered as part of programmers toolbox. What was once bleeding edge AI is now high level heuristic problem solving.
- taeric 7y agoConversely, it has aged well in that all of the code still works. My Scala and Python books? Grrr
- HerrMonnezza 7y agoHaving read both PAIP and Practical CL, I do not see them as comparable: PAIP teaches classical AI algorithms, and introduces as much CL as nacessary to carry out the task; Practical CL instead has a goal of teaching Common Lisp, and uses coding examples to showcase features the language. I agree that the MP3 streaming server example in PCL looks outdated, but so are many topics in PAIP as Norvig himself points out at the end of his retrospective [1]. (And I still think that the MP3 parser in PCL is a really good example for showing Lisp I/O, binrary processing abilities, and subtleties of CLOS, despite not being something that anyone would code as a side project nowadays.) [1]: http://norvig.com/Lisp-retro.html http://norvig.com/Lisp-retro.html
- metroholografix 7y agoI don't agree. PAIP goes well beyond "introduces as much CL as necessary to carry out the task" in its Common Lisp presentation. It could easily serve as a first book for someone to learn Common Lisp, even if that person has no interest in AI whatsoever. Some of the examples in PAIP may be outdated in a historical but not practical sense. I've joked in the past that the code is so well-written than it can be excised and framed on a wall. With code this good, the lessons one can learn are numerous and the code stands the test of time. Unfortunately, the same can not be said about the PCL examples since - to name two - there are far better ways to do binary parsing and pathname handling today than binary-types and cl-fad. The PCL examples are a product of the time that they were written but they are tied to a particular verbose, subjective style and were not "optimal" or even particularly good, back then. Ultimately, PCL introduces Common Lisp to the audience as does PAIP. The difference is that reading PCL in 2020 will have minimum, let's say thought-provoking, impact. Reading PAIP (or Let over Lambda, SICP, On Lisp, Lisp in Small Pieces) remains -and will remain- a paradigm-shifting experience.
- taeric 7y agoDo you have pointers for how to better do binary and path management?
- 7y ago
- zeveb 7y agoAre we really at a point that MP3 parsing is so old-fashioned that it's not worth recommending a book which uses it for an example? Guys, this is software not Milan Fashion Week. It's okay: those are just examples. Software still has to parse things, even in 2020!
- ksaj 7y agoAnd besides, this part of the book has gone a long way on how I've been programming for and setting up my Pirate Radio (Raspberry Pi radio). There are probably easier ways to do it, including just using the software they recommend in the first place, but then I don't get anywhere near the level of enjoyable education from it either.
- newusertoday 7y agoI respectfully disagree. I think PCL still does an excellent job in exposing CL features with coding examples.
- register 7y agoI have read both and I also like PAIP better. I find PCL good only for somebody that don't have much programming experience. I believe that somebody that is a seasoned programmer and that wants to gets some understanding of CL will appreciate PAIP better. This is because PAIP begins with an introduction of the language that just touches all the basic stuff upfront very clearly and only afterwards starts to build on examples. So if one wants only to get an introduction to CL he can just read the first chapters and forget the rest. PCL does the opposite introducing just a few features at a time and providing a lot of examples side by side. This might force the reader to pay attention to stuff he is not really interested in. P.S: I found the examples/practice part quite boring in both cases but for sure PAIP is more interesting as there is a chance to learn something new/unusual.