3 ms·
Here is, in my mind, the #1 benefit of polyglot programming: it refines your aesthetic sense, and it also gives you a sense of intrinsic vs. accidental complexi
by michaelochurch 15y ago
Here is, in my mind, the #1 benefit of polyglot programming: it refines your aesthetic sense, and it also gives you a sense of intrinsic vs. accidental complexity, the former being the innate complexity associated with the problem being solved, and the latter being complexity imposed by implementation details. It's crucial to know the difference, because good software engineering is about exposing people who have to use your code only to intrinsic complexity.
Ideal engineering practice: write the "beautiful" program first that only presents the intrinsic complexity (logic of the problem being solved). If performance is an issue, then optimize, a practice that often imposes accidental complexity on the code. Put said accidental complexity behind an interface as much as possible.
C++ and Java force a lot of the accidental complexity into source code and in these languages, it's hard to pick up the difference between intrinsic vs. accidental complexities.