I would buy "Inside The Python VM", (replace Python with Erlang or Lua or V8) and "A Hacker's Guide to Hadoop Internals"
I came across a blog excerpt from this book that looked pretty neat. It isn't out yet but could be good.
has the table of contents. I am not sure if it has any insights on functional programming in the large, but it does look neat.
Also has a link to buy a pre-release version of the book
in a non trolling way, I'd like to see a PostgreSQL for MySQL, SQL Server, and Oracle users.
Oh that book already does in fact already exist, and it's amazing:
It's an awesome book about the history of computing, human-computer interaction, and all sorts of things you're familiar with but may never have known where they came from or how they evolved.
(All programming becomes much simpler after that.)
I wouldn't even mind if it took longer than 21 days.
I've found books for prolog, but they all start off with logic programming. It's kind of weird, or is it just me? And the other 2 I've not really seen any decent books for them. Unless I'm wrong? (A subtle cry for help.)
- Plan 9 Unleashed.Or perhaps "Distributed computing with Inferno and Limbo"
- a book like Gödel, Escher, Bach: Eternal Golden Braid that explores Church/Lambda Calculus; Curry-Howard
Isomorphism; and Category Theory and Monads. ... "Oleg, Toulouse-Lautrec and Rachmaninoff: On Type Reasoning".
- The Complete Lisp Machine."
An in-depth historical and technical guide, with classic papers, discussion, circuit schematics. Features not only the MIT/Symbolics/TI family, but the nearly-forgotten Xerox PARC systems. Chapters with deep commentary on the design decisions by the original designers.
- The Implementation of Functional Programming Languages, 2nd Edition, by Simon Peyton-Jones
- Retro Game Programming for the iPhone & iPod touch
- series of books on specific kinds of general purpose applications and a discussion of their design and implementation techniques.
For example, the first book could be about writing a graphical word processor. It would explain some data structures for representing text content, lines, paragraphs and the like with the tradeoffs between them. Then explains layout engines, using state machines to model GUI interaction, designing file formats, and other pure gold of programming :)
Then it would be littered with case studies of both commercial & open source applications and a huge bibliography referring to important related books and research papers, preferably with commentary.
- Programming Factor, Real World Factor and Filthy Rich Client in Factor.
- Well Explained Solutions To Difficult Graph Problems Done In MapReduce
Non-trivial Recommendation Engines With Practical Concerns Highlighted And Straightened Out
- Core GNUstep Programming.
- A revised, modern version of Lisp in small pieces
- Programming in Octave
- Twisted Network Programming, or any decent intermediate/advanced book on Twisted.
- The Complete Haskell. An encyclopedic work that spans the full range from category theory to network programming, everyday scripting, and distributed systems. Not for Java programmers; this book doesn't skimp on the theory as Real World Haskell does -- you'll learn to recognize the algebraic patterns that allow Haskell experts to distill out an Applicative, a Monad, or an Arrow from a collection of functions. Sample code (available on the Web site) includes a persistent distributed MUD server, a set of statistical logs analysis tools, an email spam filter, and a compiler for GoatC, a small imperative language.
Especially a decent book on Factor, I'm trying to learn it form the documentation but apparently I'm not trying hard enough.
oh and, "The Life and Adventures of Chris Double", that crazy bastard seems to show up in my google searches for everything sooner or later. TraceMonkey internals, NDS homebrew, dylan, factor! Is there anything he can't do?
Would give a reasonably detailed, comprehensive overview of all the timeless theory and techniques (CS theory, math, design, etc), where they come from and what they're actually useful for.
So many projects are made much harder because a fundamental bit of theory has to be rederived from first principles for lack of knowledge...
Imagine someone who never heard of a graph:
"Okay, now I know I need a structure that's a bit like a tree except each node can have multiple parents... Now, how do I find the shortest path between two nodes?..."
Possibly/probably hopelessly dated now, but since
you can download a free copy from
what do you have to lose?
You can further cheat and write a short and tidy attribute grammar for a tiny block-structured and well documented dialect like Oberon, and your grammar will be 1:1 translation from production rules straight to assembly language. No optimization, and certainly no intermediate representation. What you're left with is a clone of the first Turbo C without dynamic memory allocation (just static allocation with a strict stack discipline)
Then you can run around and say you're a compiler hacker. That's how I started :-P
First class continuations.
First class lexical closures.
Automatic garbage collection.
An explicit Eval function.
Explicit READER and PRINTER functions for builtin parsing and serialization of code and data (not sure if Scheme requires these, but they make a lisp Lisp)
A full numeric tower.
Hygienic macros (or any macro for that matter; CPP doesn't count)
Symbols as datatypes.
An interactive REPL.
Variable-argument procedures (with no kludges; va_list, va_start, va_end is not the way to do it.)
Delayed evaluation constructs.
Quoted forms (a sexp syntax does not necessarily mean QUOTE is available.)
We Lisp2 hackers might pick on Scheme for its Algolishness, but that doesn't make it any less of an excellent language. Scheme is a purists wet-dream come true and a fine Lisp dialect, albeit an algolish one ;-)
Also, I want a MacRuby book.
On a slightly related note, how does the Kindle do with programming books? I am thinking about picking one up to use primarily as a reference screen.
Database related books tend to be too high level and never dig down deep enough.
- a functional language cookbook... like erlang or haskell cookbook
- a book comparing cultural differences between countries in the work and education worlds
Get with the times