3 ms·
I hate "clever things" as well, but it's worth being precise about what constitutes cleverness in different languages. Dynamic languages - ruby, python, bash,
by julian_1 10y ago
I hate "clever things" as well, but it's worth being precise about what constitutes cleverness in different languages.
Dynamic languages - ruby, python, bash, objective C etc - allow all sorts of cleverness - such as monkey patching, attribute injection, dynamic lookup - because of their dynamic runtime. All the checks about whether the code makes sense is performed at runtime.
Languages with more mature/strong/static typesystems are initially restrictive - but the emphasis in cleverness is to be able to know upfront - and at compile time - if the code expressed is consistent in the way data and effects are represented and expressed.
Of course - there are other kinds of code complexity -in terms of ease of understanding, and maintainability - that will always involve tradeoffs considering the task at hand and nature of the programming environment (solo, community, commercial, academic etc).