@ Что такое programming in large? Что-то такое, но я подразумевал только systems-design/architecture-часть, безотносительно менеджмента.
@ Могут ли модули быть заменены записями? Иногда могут, иногда нет - в зависимости от того, о каких модулях и каких записях речь. На фундаментальном уровне все эти концепции крутятся вокруг типов-произведений, экзистенциальных типов, и сабтайпинга. Для первого приближения я себе выработал такие соответствия: непараметризуемые модули - это приблизительно то же самое (~), что и неймспейсы; параметризуемые модули ~ записи, умеющие содержать те же виды деклараций, что и нечто, соответствующее обычным модулям в данном языке (где сами эти записи декларируются, например); параметризуемые модули с сабтайпингом ~ классы в ООП. Такие аналогии классов и записей с модулями лучше чувствуются в языках, где можно импортировать начинку экземпляров записей (Agda, Cayenne) и классов (Scala) в текущий скоуп.
no subject
Что-то такое, но я подразумевал только systems-design/architecture-часть, безотносительно менеджмента.
@ Могут ли модули быть заменены записями?
Иногда могут, иногда нет - в зависимости от того, о каких модулях и каких записях речь.
На фундаментальном уровне все эти концепции крутятся вокруг типов-произведений, экзистенциальных типов, и сабтайпинга.
Для первого приближения я себе выработал такие соответствия:
непараметризуемые модули - это приблизительно то же самое (~), что и неймспейсы;
параметризуемые модули ~ записи, умеющие содержать те же виды деклараций, что и нечто, соответствующее обычным модулям в данном языке (где сами эти записи декларируются, например);
параметризуемые модули с сабтайпингом ~ классы в ООП.
Такие аналогии классов и записей с модулями лучше чувствуются в языках, где можно импортировать начинку экземпляров записей (Agda, Cayenne) и классов (Scala) в текущий скоуп.