Context In search of some constituents of an ideal programming language last week I finally quickly looked at Haskell. It was a bit of a disappointment, though I definitely need to actually try it on a real task.
Yet Another Haskell Tutorial (which, BTW, I didn’t like) pointed me to OCaml. The latter had both some advantages and shortcomings compared to Haskell. In any case it was evident that OCaml’s power is far below what I have in mind.
[Read More]
Software growth dimensions
In a lot of cases a piece of software starts as a clean and simple idea that gradually grows into a much larger body of code as it is enhanced with various functionality and features.
Usually when the original idea has to be modified or enhanced it is performed on the most recent version of code that already incorporates mutliple layers of the said process of growth. My point of view is that at least in some situations a better approach is to
[Read More]Забота о чайниках
Удобство пользования чем-либо часто сильно зависит от того, насколько ты опытен в данной области. Средства, облегчающие задачу для новичка, могут оказаться обузой или сковывающим фактором для матерого профессионала.
[Read More]Explanation through elaboration
Have you ever read a book with a “How to read this book” chapter somewhere early in the table of contents? This post explores how revision control can address/solve the same problem in application to reading source code or other documents of similar structure and complexity.
Unlike a book, the source code can rarely be read serially end-to-end. Literate programming works only for short enough programs. But times when listings of programs were printed on the paper and read offline are far behind.
[Read More]
The need for a new kind of revision control
Facilitation of comprehension of sophisticated material through various custom paths from an empty document to its current version
Maintaining a subset of information of interest from an evolving large and complex body of knowledge.
Maintenance of different parallel representations of the same evolving information (for example, translations).
Multi-dimensional documents: a document may be a product of more than one lines of development (axes).
[Read More]