&gt;  as long as you build a data interop layer of some sort (JSON, etc.). I imagine that if it were powering a web app, dual-deployment would become an additional (but potentially manageable) concern during the &quot;transition&quot; period<p>Which brings up an interesting idea:<p>* <i>All</i> codebases are in some kind of inflight transition. Usually not migrating across languages, but often migrating across authors and authoring styles, sometimes migrating across underlying platforms. So, things that make these inflight transitions easier might well be practices one should consider adopting.<p>* The &quot;data interop layer&quot; might simply be another way of understanding another principle: if your data structures&#x2F;formats are (a) legible and (b) well-fitted to your problem domain, your program is probably going to be easier to understand and modify... maybe even when it comes to modifications that might seem extreme.<p>Or to use words attributed to Linus Torvalds: &quot;Bad programmers worry about the code. Good programmers worry about data structures and their relationships.&quot;