- Paperback: 320 pages
- Publisher: No Starch Press; 1 edition (June 13, 2013)
- Language: English
- ISBN-10: 1593274912
- ISBN-13: 978-1593274917
- Product Dimensions: 7.1 x 0.7 x 9.3 inches
- Shipping Weight: 1.5 pounds (View shipping rates and policies)
- Average Customer Review: 16 customer reviews
- Amazon Best Sellers Rank: #501,894 in Books (See Top 100 in Books)
Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your mobile phone number.
Realm of Racket: Learn to Program, One Game at a Time! 1st Edition
Use the Amazon App to scan ISBNs and compare prices.
The Amazon Book Review
Author interviews, book reviews, editors picks, and more. Read it now
Frequently bought together
Customers who bought this item also bought
Customers who viewed this item also viewed
An Excerpt From the Preface: "Why Should I Learn About Racket?"
About the Author
Professor Matthias Felleisen is one of the original authors of the Racket language and a co-author of The Little Schemer and How to Design Programs. In 1995, Felleisen launched the TeachScheme! Project, reaching out to high schools with a radically novel computing curriculum. Felleisen is the 2012 recipient of the ACM Special Interest Group on Programming Languages (SIGPLAN) Lifetime Achievement Award as well as ACM's 2009 Karl V. Karlstrom Outstanding Educator Award. He is currently a Trustee Professor in the College of Computer and Information Science at Northeastern University in Boston, Massachusetts.
Conrad Barski has an M.D. from the University of Miami and nearly 20 years of programming experience. The author of Land of Lisp, Barski is also an avid cartoonist, having created the popular alien Lisp mascot and many graphical tutorials.
David Van Horn is a research professor at Northeastern University who has programmed in Racket and Scheme for over a decade.
Eight students of Northeastern University contributed to Realm of Racket: Forrest Bice, Rose DeMaio, Spencer Florence, Feng-Yun Mimi Lin, Scott Lindeman, Nicole Nussbaum, Eric Peterson, and Ryan Plessner.
Top customer reviews
There was a problem filtering reviews right now. Please try again later.
The problem, especially with those who hate it, is that lambda calculus, recursion, and multiple paradigm (imperative, functional, logical, etc.) models mean that each sentence is an adventure in study, not reading. IOW, I stopped highlighting when I realized I was highlighting the whole page!
This awesome new Racket gem makes Abelson an unprecedented one-two punch if you REALLY want to understand some of the hottest new concepts in programming-- at a 30,000 foot level, yet with a TON of fun, down to earth exercises. Lisp has evolved as the second oldest (months after FORTRAN) language that is not only still in use, but still producing new dialects, as this book demonstrates! I mean, a data structure not of hashes and trees but of LISTS??? You'll learn to your amazement how lists can even handle multiprocessor and concurrent computing nightmares with recursion that would defy the most agile trees. Talk about ancient and up to date at the same time!
The coolest thing about Racket, and even Scheme and Common Lisp, is that you can create your own "complete" programming environment, in this case to play with art and games, including compilers and interpreters! C# started with some multi paradigm elements and is now even adding functional programming, but being part of the .net family, there are limits. Yes, you can design a GUI AND a game in C#, but Racket allows you to create an entire programming universe from o/s to environment, SDK, compiler, GUI, language, libraries... all virtually!
If you look at a typical coding interview, you'll have the "solve this phony, contrived problem" on the whiteboard. Yet four of the hottest career areas in IT AREN'T in specific language coding (so much of it is being outsourced to India, China and Russia)-- they are in management of: 1. Data Science 2. Embedded Systems 3. Networking 4. Sploits.
There even is a new "CTO" type job-- CDSO, for "Chief Data Science Officer." These management, team leadership and high level positions don't require you to create a list prioritization algorithm on the whiteboard in C# in half an hour, but they DO require you to understand how systems from the machine and network levels relate to solutions in choice of languages, software and --especially-- paradigms.
In talking with programmers and engineers all day who submit new software for patents, I'm astonished at how many got all the way through even grad school (including Stanford and MIT) without taking a single paradigm class! They can generally tell you which apps work better with trees vs. arrays, but at a high level, why to choose functional vs. imperative is often really foggy.
Solution: PLAY WITH RACKET, then read Abelson! Even if you're an autodidact, this awesome and up to date Lisp text is perfect for self study when carving out your own dream job or starting your own practice. The authors are teachers par excellance, and the pedagogy is beyond painless-- you're half way through recursion vs. iteration before even knowing you've learned it! And while you're at it, you are playing with components and paradigms in ways you've never tried before even if you're a Lisp jock-- because this text takes the time to INCLUDE imperative and logical options. This is possible because Racket moves a little toward OOP just as C# (3.0 and up) has moved a little toward functional, including many steps beyond Scheme.
For those who feel Lisp is out of date or a "has been" (never mind that Lisp invented garbage collection and even presaged early oop (data/object/call/argument units) and that binaries and other newer data structures are coming back around to lists in some of the hottest research, even IN imperative), I guarantee that this book will dispel your doubts! And, if you tried Abelson, loved it, but was missing half the points (I sure was), try Racket first--Abelson won't become easy, but it will, as Abelson said himself as his primary objective, make it a LOT more fun.
Be SURE to get the second edition of Abelson, however, as he completely reoriented it around a new central theme crucial today to multiprocessing-- the time/memory challenge. You can get Ableson 2ed (see link in first paragraph) used at a great price now. I give it as a gift to programmer friends, and this new Racket text would make a great gift too! This author also wrote the awesome Little Schemer book (The Little Schemer - 4th Edition) which is another excellent adjunct to Abelson.
EMAIL ANSWER: A new lisper asked if this book will help with things like closure. Absolutely! In fact, lexical (or functional) closure, when combined with environments, binding and defun/define macros ARE oop at a very basic level, except that they REQUIRE garbage collection. Let Over Lambda (LoL) is "the" closure book, but Racket gives many more practical tips and uses than that "heavy" text (no comparison really, this book is pure enjoyment, LoL requires two double shot starbuck ventis per sentence-- NOT for beginners). Q. How can other languages implement closure? A. Technically C can't due to no garbage collection (hence no fast and unlimited stack vs. heap options, especially since it and C++ are stack based), but C# and many others can.
Although anonymous methods ARE NOT closure, they offer "closure analogs" like callbacks and blocks (in C and C++ for you circuit folks), Local classes in Java, Delegates, and after 3.0, even lambda expressions in C# (do NOT use closure if a lamda will work more simply), overloading operators, etc. Scheme/Racket/Lisp/Clojure... jocks will argue that the differences between oop and functional are semantic, because 1 macro can take care of inheritance, and object orientation is another word for a LISP list function combining procedure and state, and with closure, can easily duplicate the entire oop benefit. Macros are essentially functions that return lists as this book will teach us, but since those lists can just as easily contain code as data, as well as environments and bindings, the "oop" concept was either anticipated, subsumed, or invented by Lisp decades ago, depending on your point of view!
The whole point of learning Racket, at a deep level of understanding paradigm fits in addition to the fun apps in this book, is about time and memory and really "getting" high level (but deep and detailed) program and systems engineering, in many more aspects than most programmers encounter. Stack vs. heap based eventually becomes a sticky wicket for all programmers and engineers, especially with today's concurrency challenges. Look at Erlang-- it dances so easily between functional and imperative because it uses BOTH stack and heap! Besides, lists are way more intuitive and fun ds's (in my biased and elderly opinion) than trees, hash tables, binaries, etc.-- even ON the whiteboard!
Library Picks reviews only for the benefit of Amazon shoppers and has nothing to do with Amazon, the authors, manufacturers or publishers of the items we review. We always buy the items we review for the sake of objectivity, and although we search for gems, are not shy about trashing an item if it's a waste of time or money for Amazon shoppers. If the reviewer identifies herself, her job or her field, it is only as a point of reference to help you gauge the background and any biases.
coding style and functional programming. I'm sure it didn't dive into many of the advanced ideas on the topic, but it was fun and enough to get me started doing some functional programming. Very fun. Very well written.
The important thing to grasp about Lisp is that it's not just one product. In fact, it's not really a product at all, but it's a concept, and a family of programming languages that all happen to strive for the same goal: Allow for the easy expression of very, very complex ideas. Lisp has been used in such diverse worlds such as space exploration, physics, graphical concepts, game development and financial calculations.
But, what the heck is Racket? That's what the book is... Realm of Racket. Racket is a programming language in the family of languages that comprise the `body' of Lisp. There are multiple derivatives of Lisp, based on what you want Lisp to do. Racket just so happens to be one of those derivatives that lends itself nicely to teaching new and recently new `programming interested' people the concepts of programming is a less complex way.
Imagine tossing a high-school freshman into Advanced C++, when really this freshman wants is to make the football team and date the cheerleader. Our best guess: Not a good fit for a number of reasons. C is complex language for beginners, C++ is just that much more difficult, and Advanced C++... Well, picture our young high-school football player wannabe's head exploding.
Racket, (or Lisp), is tailor made for this young person. Much more conversational in its approach, most people will instantly grasp how it works, and what you might be able to do with it. Let's rephrase that just slightly: That YOU just might be able to do something YOU want to do....
Suddenly, our young wannabe football star is more interested in a computer and the kinda cute nerdy girl with the black horned rim glasses (who is a Goth Queen at night, but this is about Racket, not the weird dating rituals of teenagers...Ewww!). Yes, even programming languages can make a weird kind of matchmaker.
Realm of Racket takes a light-hearted but very informative and prescriptive approach to teaching the Racket language: It makes it fun. I know.....Programming languages aren't supposed to be fun. But, this book says differently. You can have fun AND learn! Who knew!
Obviously, the book starts somewhere. In fact all things do, but never mind. This book starts with, oddly enough, a discussion of Lisp, how Racket and Lisp are related, and then - installing Racket on your computer. Seems like standard fare. You are then taken through the basic syntax of Racket, writing your first program, defining functions, and then immediately on to syntax, semantics and logical building blocks.
The author's presentation is far from boring, in fact it's engaging and the illustrations are meant to add levity and fun to the learning process. Each chapter ends with a Checkpoint section intended to summarize what you've just learned and to help you determine if you're ready to move on to the next chapter. Again, standard fare, but it's effective.
Covering the Racket predicate model, the conditionals, and the `rackunit' test library, this is starting to look like a pretty powerful set of tools. This Racket thing might have something going for it. And then comes Define. What can you Define in Racket? Umm... The simple answer is pretty much anything. Plus, they can be at a module level, local level, and can have functions and variables.
Realm of Racket then takes a huge leap: Why write text-based games (they are SO `70s) when you can write graphical games just as easily? The concept of graphical programming - moving sprites and images, writing to the screen in graphics instead of text, etc. is covered fully.
Remember the first time you heard about recursion? Did you try it in, say C? You're still reading this so the black hole that can happen with a recursion function in C didn't happen to you. 1000's of amateur programmers have been lost to an untimely demise in small black holes crated due to the ill-devised recursive function. Realm of Racket walks you through the creation of a graphical snake game that will teach you how, in Racket' recursion is used. No black holes - I virtually guarantee it!
Realm of Racket next takes you into an important part of not just the Lisp family, but programming as a whole: Lambda. The ability to create nameless functions on the fly and in-line is hugely powerful. It enables the programmer to use a single line to define, apply the process, and retrieve a result instead of the usual Define, do the math , then apply the output to the variable for use.
As you progress, the game complexity and the game play increases. This is not to say that it becomes necessarily harder to program, but the game does become quite a bit more full featured. Fighting orcs has always been a compulsion for many a video (and role playing!) gamers...
The author provides the steps, the knowledge, and the fun to get to the end point of having a solid, fun foundation to work with. Realm of Racket takes you on a journey of understanding into a language that has been around for nearly 60 years, concepts in programming that have been around since the 1930's and brings it all together into a thoroughly enjoyable book. The `comic-style- narrative keeps your attention and advances the story from chapter to chapter and helps with relevance. Frankly, the story and the comic narrative is going to appeal to a younger audience more than it will to the older reader (like myself...) who is simply interested in learning a new programming language. But, it's effective... And, it's fun. Programming should be more fun and less tedious and sterile. This is fun stuff in this book, and never tired and sterile.
Oh, and if you really don't want to type out the examples and chapter exercises (I suggest you do... It reinforces learning), you can also download the code. The author does also provide the specific links and instructions for setting up Racket and the programming environment to begin with.
Good book, enjoyable, informative beginner's book to programming, and specifically to the Lisp style language, Racket. Well done book.
Most recent customer reviews
And the details on the DrRacket programming interface you can find elsewhere.