Not signed in (Sign In)

Not signed in

Want to take part in these discussions? Sign in if you have an account, or apply for one below

  • Sign in using OpenID

Site Tag Cloud

2-category 2-category-theory abelian-categories adjoint algebra algebraic algebraic-geometry algebraic-topology analysis analytic-geometry arithmetic arithmetic-geometry book bundles calculus categorical categories category category-theory chern-weil-theory cohesion cohesive-homotopy-type-theory cohomology colimits combinatorics complex complex-geometry computable-mathematics computer-science constructive cosmology deformation-theory descent diagrams differential differential-cohomology differential-equations differential-geometry digraphs duality elliptic-cohomology enriched fibration finite foundation foundations functional-analysis functor gauge-theory gebra geometric-quantization geometry graph graphs gravity grothendieck group group-theory harmonic-analysis higher higher-algebra higher-category-theory higher-differential-geometry higher-geometry higher-lie-theory higher-topos-theory homological homological-algebra homotopy homotopy-theory homotopy-type-theory index-theory integration integration-theory k-theory lie-theory limits linear linear-algebra locale localization logic mathematics measure-theory modal modal-logic model model-category-theory monad monads monoidal monoidal-category-theory morphism motives motivic-cohomology nlab noncommutative noncommutative-geometry number-theory of operads operator operator-algebra order-theory pages pasting philosophy physics pro-object probability probability-theory quantization quantum quantum-field quantum-field-theory quantum-mechanics quantum-physics quantum-theory question representation representation-theory riemannian-geometry scheme schemes set set-theory sheaf sheaves simplicial space spin-geometry stable-homotopy-theory stack string string-theory superalgebra supergeometry svg symplectic-geometry synthetic-differential-geometry terminology theory topology topos topos-theory tqft type type-theory universal variational-calculus

Vanilla 1.1.10 is a product of Lussumo. More Information: Documentation, Community Support.

Welcome to nForum
If you want to take part in these discussions either sign in now (if you have an account), apply for one now (if you don't).
    • CommentRowNumber1.
    • CommentAuthorCorbin
    • CommentTimeSep 19th 2024

    Stub a page for what has been called “the most important law”, “the only unbreakable law”, and a generalization of both Amdahl’s and Brooks’ laws. While this is important to software engineering, it’s applicable to any engineered system, and Conway 1968 uses all sorts of infrastructure to make their point alongside software-specific examples.

    v1, current

    • CommentRowNumber2.
    • CommentAuthorUrs
    • CommentTime6 days ago
    • (edited 6 days ago)

    I have added a link to the Wikipedia page as evidence that this “law” is something people take seriously.

    Also adjusted the wording in the anecdote/example, changing “passes” to “phases”, because: (1.) that’s what M. Conway actually wrote, and (2.) since with “passes” the example makes even less sense than with “phases”.

    But this entry remains borderline off-topic here on the nlab, since this is not mathematics (nor philosophy, nor physics). Maybe it’s “business jargon”.

    diff, v2, current

    • CommentRowNumber3.
    • CommentAuthorCorbin
    • CommentTime3 hours ago

    WP’s entry, like most coverage of Conway’s paper, is depressingly informal. Conway himself was very clear that his argument is supposed to bridge our informal experiences about distributed systems with formal constraints on the underlying graphs of components and designers. I’m not saying this to complain to Urs, but for anybody who wants to go edit WP to make their page better. I no longer edit WP but somebody else should do it because so much of the page is wrong or vague; every quoted variation is incorrect aside from the joke, every interpretation given is not-even-wrong, and it’s overall just a disappointing example of how papers fail to get read.

    That said, I think that this is an example of applied category theory! It’s old, it uses graphs instead of categories, and it’s a short emotive paper; but it’s clearly in our wheelhouse. I think some community ought to recognize that there’s a homomorphism there, and sadly this recognition will not come from the software-engineering world as long as they aggressively reject maths. (Most software-engineering citations available to me are so unrigorous or wrong in their phrasing of the law that they are not suitable for encyclopedias.) Conway’s law makes a fine edge for topicality in the direction of systems theory, another page we really should have.

    I apologize for using “passes” instead of “phases”. I misread the paper. When we finally get a page for compiler, we can explain that a pass/phase is a mini-compiler which is intended to be composed with other mini-compilers to form a production-ready compiler pipeline. (From now-deleted conversation with Andrej Bauer on (Theoretical?) Computer Science Stack Exchange, we lack a suitable category-theoretic definition of compiler, but they’re probably fancy functors.) For now, I would gladly add any desired examples of Conway’s law to the page; these software-engineering examples were merely at hand without writing another citation.

    …I might as well add a fourth paragraph while I’m here. Let me work ES Raymond’s example claim, originally made in his dictionary and quoted on WP, to show why it’s wrong. He says that four groups of people will produce a four-pass compiler: four functors composed in sequence. But what Conway actually says is that they will produce a compiler whose composite behaviors are homomorphic to conversations between the groups. Raymond was imagining a linear pipeline, but there are many other possibilities; in particular, it’s quite common for a compiler to actually be a family of functors (a “compiler collection” with multiple “targets”), so that four groups of people could produce a four-target compiler. Compiler collections with multiple sources (multiple “input languages”) are also possible.

    • CommentRowNumber4.
    • CommentAuthorCorbin
    • CommentTime3 hours ago
    This comment is invalid XML; displaying source. <p>Page numbers, punctuation, and an explanation of the chosen example including historical context and a link to WP. In 1968, a multi-phase compiler would have been the only natural possibility, but starting in the 1980s, a compiler could be much more flexible; see my rant above.</p> <p>I need to take a break because my wires are crossed; I very much want to put the olog [a system] <-is part of- [a component] -is designed by-> [a person] at the top.</p> <p><a href="https://ncatlab.org/nlab/revision/diff/Conway%27s+law/3">diff</a>, <a href="https://ncatlab.org/nlab/revision/Conway%27s+law/3">v3</a>, <a href="https://ncatlab.org/nlab/show/Conway%27s+law">current</a></p>
    • CommentRowNumber5.
    • CommentAuthorRodMcGuire
    • CommentTime19 minutes ago

    In 1968, a compiler phase would have been represented physically by a deck of punched cards; a five-phase compiler would be implemented as five decks of cards which could be concatenated into a single deck and run through a computer.

    That explanation seems badly confused