> Copying bad design is not good design. > >> Ok making hammer by copying bad hammer design is not good. Seems like a some >> minor point that should not go as the first statement.
This is a major point, both in hammer design and in language design. Even with a mature technology like hammer design, fashion still plays a role. For example, the fad for titanium in carpentry, or the cultish following for the [Hofi hammer](https://www.angele-shop.com/shop/en/hofi-hammer-handforged) Titanium has a sexy space-aged reputation for strength and lightness, but lacks the crucial combination of hardness and toughness, and the 'ergonomic' Hofi, optimized for a low moment of inertia, is more tiring and less accurate in practice than the elongated [japanese style](https://www.workshopheaven.com/scht1782-shtickle-hand-forged-kozuchi-dogs-head-forging-hammer.html) for extended production work. Similarly pythonicity is assumed uninterrogatedly to be synonymous with ergonomicity; having done much right, it can't possibly have done anything wrong. Copying fashionable/sexy features is a common trap that's easy to fall into, and taking a philosophical stand against that is well worth stressing. > If the compiler cannot reason about the code, neither can the programmer. > >> In JS or Ruby there's no compiler at all, yet programmers are able to reason >> about the code. compiler/interpreter/transpiler tomato/tomato. the point, i believe, is about when it's justified for the <box that turns words into electrons> to impose it's own limitations on a programmer's intent, and is an argument for a strong type system. > There should be one and only one programming language for everything. That > language is Nim. > >> There should be one and only one hammer for everything... yes, well, maybe the metaphor breaks down here. but if i had a meta-programmable hammer, able to adjust its own size, shape, and mass on command, I'd absolutely only use one.
