Discussion about this post

User's avatar
Victor Maia Aldecoa's avatar

I just saw sokol and clay for the first time, and it looks like a completely new world to me. It's so refreshing to discover something like that after 12 years of career! Thank you for sharing.

Dutton Industrial's avatar

Great article!

Now a hastily worded thought that this article inspired... thank you!

Libraries start out as a piece of a specific program. During development the developer sees a cut-line in their program, where all things on side 1 have commonalities and thus "should" be in a library. Side 2 becomes the unique code that represents the actual program. As part of this proces side 1 becomes a generality however what is unseen is that it is also a dual to THE program. It has assumptions and axioms embedded within it that reflect the original "program."

Once split off this library is then incorporated into new programs which bring along with it an unintended shadow of the original program. Thus the new program using the old library will now structurally be forced to somewhat resemble the "old" program even though it has nothing in common with the "old" program. This residual structural influence then creates a limit to the new program. The designer of the new program will then hit unforeseeable boundaries. I've been here many times... it's like a force field. The new program wants to be a certain way. The library needs your program to be a certain way. No bueno.

The older the library, assuming active development, the less "residual shadow" it will have within it.

If you depend upon 10 libraries then your program can only live within the venn diagram of the intersecting shadows of the programs that these libraries were pulled from. It is probably limiting in a somewhat exponential way. This is why an ambitious never before seen program not only won't have many dependencies, but actually cannot. You won't be able to express this program in the terms that the dependant libraries can actually function within.

14 more comments...

Ready for more?