They still have a major flow - common lisp packages are not hierarchical (in contrast to java) which makes it hard to have some symbols exported to not all packages but rather subset of them.
Yes this could work for personal things. But it is often you need to represent your understanding of the current state of affairs and propose your ideas, so the UML is a good tool to do it - everybody understand it or could learn in like 0.5 hour.
We've used image comparison tool, which produces pixel-wise diff with the expected image, exactly to verify these kind of things(we've been developing the rendering tool). In addition to this unit tests, combined with the coverage tools, allows you to find potential problems/crashes etc in your code.
Different levels of testing are for different things, unit tests just one of the pieces in the equation.
Your point is just for some tiny tiny scenarios of the software you are working on.
You don't need to think about 'how could I write a unit test', you need to think about how could you improve the quality of the code, and unit tests are just one of your tools available to solve this problem.
I'm working a lot with a huge legacy codebases in C/C++. Here are some advices:
1. Be sure what you can compile and run the program
2. Have good tools to navigate around the code (I use git grep mostly)
3. Most of the app contain some user or other service interaction - try to get some easy bit (like request for capabilities or some simple operation) and follow this until the end. You don't need a debugger for it - grep/git grep is enough, these simple tools will force you to understand codebase deeply.
4. Sometimes writing UML diagrams works -
- Draw the diagrams (class diagrams, sequence diagrams) of the current state of things
- Draw the diagrams with a proposal of how you would like to change
5. If it is possible, use a debugger, start with the main() function.
Yes I do. The reason is moral/aesthetical: to have books on my bookshelfs and organize them makes them always visible in my flat and allows me to easy glimpse over them and have an idea of what I did, what I planned and what I'll deferred.
From functional point of view eBooks are more convenient, so if I got a chance I buy both ebook and paper versions, or if I download the eBook for free somewhere I make sure if the book is good to buy the paper version later.
And the Kinesis Advantage is programmable as well, so you can redefine keys as you please. For example I moved arrow keys to one side, remapped Delete to Ctrl and changed some alt/cmd keys configuration in thumb cluster.
XCode is amazing for C/C++ development, but Emacs is just better as a text editor. The rtags project [1] is under active development right now to have more IDE-like features in Emacs for C/C++ developers. There are some other projects, for example clang-complete-async [2]