Some Book Recommendations

I've probably mentioned some of these before. By "modern languages" below I don't mean chronological but instead satisfying my personal criteria. Currently ISLisp is the favorite.

Extreme Programming Explained

I think this is a perfectly feasible way to run software projects using modern languages. It was originally for SmallTalk, but I've seen it not work so well for lower-level languages like C or Java. For better or worse though, remote work is here to stay so it needs significant adaptation to actually *write things down* for communication.

"Extreme programming" in Wikipedia

Software Fundamentals

This is a great overview of how to exhaustively write software information down. However, it may be unnecessarily detailed if you're using a modern programming language. I think if the most detailed mathematical notation was replaced with "Basic English" while maintaining the large-scale structure you get most of the benefit. And also, this should be done after a working prototype.

Software Fundamentals

Basic English

Software Design for Flexibility

This is the latest entry. From the outside it could look new, a way to "grow" prototypes into products without rewriting. However, it's really more like a very useful compendium of how Lisp has been developed for 50 years, with aggressive use of DSLs. NB: I'd recommend reading "Structure and Interpretation of Computer Programs" first if you haven't already.

Software Design for Flexibility

Structure and Interpretation of Computer Programs, free E-book

Unix System Programming with Standard ML

Although I like it, ML may not be quite "agile" enough if you don't know the requirements ahead of time (which I expect). Nevertheless, this book (and the scsh project) is a great example of how to apply modern PL technology to real problems. It may be a long-term goal, but I'd like if EISL supported UNIX at least partially following the scsh docs. I think there is still a lot of value in the UNIX programming environment.

Free PDF

Scsh Reference Manual

From these, you can see the general thrust of my argument. Start with a prototype following SDF, then document following adapted SF & refine. With overarching project management adapted from EPE. I thought of very little myself :-)

Back to my gemlog