I work on a small team (2 primaries with one or two other occasional contributors) on a project/product that spans a number of separate platforms. We do embedded firmware in straight C on Arm0 chips. We write python and a little bit of shell scripts for small Linux computers that are similar in size to Raspberry Pi's. We write iOS apps in Swift. We write Android apps in Kotlin. We shoot for a certain amount of parity between the Android and iOS apps.
Rare is the day where I work in one code base alone. I find myself torn between two extremes:
1) In each language/platform/environment, adhere to all of the coding conventions, best practices, and idioms of that particular community.
2) Roll your own conventions/idioms that tend to be a converged "melting pot" of them.
An even minor example of something like this is parentheses on conditional expressions. C and Kotlin require them. Swift does not. But of late, I find myself putting them in the Swift code, because it's just easier to be consistent.
At the same time, I'm not adding semi colons in all of Python/Kotlin/Swift just because C requires them.
These decisions on where to hybridize, where not to, feel arbitrary to me. A matter of personal style basically. I'm curious if others have been able to build a more principled approach to doing this. Or do others go down this path, and then reject the whole effort and go completely idiomatic in each area (this doesn't seem realistic to me, because there are "patterns" in each system that are more idiomatic in one than the other).