Taivo Lints Blog

To content | To menu | To search

Tag - Programming

Entries feed - Comments feed

Sunday 5 June 2011

Book: Programming Erlang

cover_ProgrammingErlang.jpg

A book by Joe Armstrong, from 2007, giving an introduction to Erlang. Erlang is a programming language and runtime system originally developed in Ericsson and now open source, and Joe Armstrong is the original author of that language.

The reason why I felt very curious about Erlang is that it seems to be a very good fit with my interests in distributed systems composed of relatively autonomous interacting components. It has language-level support for the actor model concurrency. It supports hot code swapping. And it was developed for and has been industrially successfully used for distributed fault-tolerant soft-real-time systems. Yay.

Contrary to some reviewers on Amazon, I really enjoyed reading this book — the text was fun and the code was to the point and induced a very strong urge to go and code some clever stuff :) It, admittedly, is a book for a specific and relatively small audience, both content- and stylewise, but if you're "in the demographics" (i.e., you feel similarly excited about Erlang's features, have some previous programming experience, are ok with slightly informal writing style, and are looking for a practical intro instead of a language reference) then I'd definitely recommend this book.

More info about the book at Amazon: http://www.amazon.com/dp/193435600X and on the publisher's homepage http://pragprog.com/titles/jaerlang/programming-erlang

And thanks a lot to James Chapman for lending me this book!

Friday 17 September 2010

Book: Coders at Work

cover_CodersAtWork.jpg

A book by Peter Seibel, from 2009, consisting of interviews with various accomplished programmers:

  • Jamie Zawinski -- Lisp hacker, early Netscape developer.
  • Brad Fitzpatrick -- creator of LiveJournal, memcached, Perlbal.
  • Douglas Crockford -- creator of JSON, involved in the development of the JavaScript language.
  • Brendan Eich -- creator of JavaScript, current CTO of Mozilla Corporation.
  • Joshua Bloch -- has led the design and development of several major features of Java.
  • Joe Armstrong -- creator of Erlang and the Open Telecom Platform (OTP).
  • Simon Peyton Jones -- a major contributor to the Haskell programming language, and lead developer of the Glasgow Haskell Compiler (GHC).
  • Peter Norvig -- a computer scientist with wide-ranging interests, currently the Director of Research at Google.
  • Guy Steele -- has been involved in defining Common Lisp, Fortran, C, ECMAScript, Scheme, Java.
  • Dan Ingalls -- the main initial implementer of Smalltalk, inventor of BitBLT.
  • L. Peter Deutsch -- creator of Ghostscript, the author of some notable implementations of Smalltalk and Lisp.
  • Ken Thompson -- the main developer of Unix, creator of the B programming language, Belle chess computer, and UTF-8 Unicode encoding.
  • Fran Allen -- pioneer in the field of optimizing compilers, the first female IBM Fellow and the first female recipient of the Turing Award.
  • Bernie Cosell -- one of the main software developers for ARPANET routers, Lisp hacker, creator of DOCTOR (a version of ELIZA).
  • Donald Knuth -- the author of "The Art of Computer Programming", creator of TeX and METAFONT, inventor of literate programming.

The interviews are pleasantly lengthy and detailed, and include discussions on how the person got started with programming, their work on various projects, how their views on programming have changed over time, their approach to designing software, how they do debugging, their views on formal proofs of program correctness, how they approach reading code written by somebody else, their feelings about commenting and documenting the code, how to recognize a good programmer, the teamwork aspects of software projects, whether they consider themselves a scientist, an engineer, an artist, a craftsman, or something else, the question whether nowadays' programmers should bother learning what goes on at the low machine level, whether programming is a young person's game or can be done well by older people as well, and much more.

The scope of the discussions is satisfyingly broad, ranging from contemplations about big high-level issues down to the detailed stories and technical explanations without any fear of scaring off some potential readers / buyers of the book. Instead of trying to write a book acceptable to everybody (which, on the flip side, might not be outstandingly exciting to anybody in particular), the author has chosen a specific target audience and caters to it remarkably well.

So, "Coders at Work" is a collection of interviews with great programmers, done by a good programmer, and intended to be read by programmers. And if you ARE a programmer, there is a very high probability that you will love this book.

More info about the book at Amazon: http://www.amazon.com/dp/1430219483

Saturday 9 June 2007

GramNet

Being inspired by Marko Rodriguez's papers about grammar-based random walkers in semantic networks (http://www.soe.ucsc.edu/~okram/papers/random-grammar.pdf, and some less math-heavy ones at http://www.soe.ucsc.edu/~okram/Research.html), I thought the idea could be extended into kind of a "real time" control system.

gramnet_simple_links.jpg

You can find more information and a downloadable prototype at http://taivorocks.googlepages.com/gramnet