The talk will discuss the delicate balance between theory and practice in software design, in light of the author’s experience. Concrete examples will illustrate the discussion, taken from the Sanskrit Heritage Platform of Linguistic Web services, designed around the Zen computational linguistics toolkit, relying on advanced topics of functional and relational programming.