Hi there, > On 31. 12. 2023, at 5:20, Agile Developer <fithis2...@gmail.com> wrote: > can you give me a case not covered by a typed language? I'm really curious, > because the more I think the more I see modern PL practice/research has > uncovered typed language strengths. These days, typed languages solve more > and more issues traditionally solved with dynamic languages.
Well, each task which can be solved exploiting the dynamic language can be solved statically just as well (after all, all today's languages are Turing-complete, are they not?). The question is the price. In these cases, the price usualůy is heaps of hard-to-write and hard-to-read boilerplate (just compare the straight elegant and easy-to-use EOFault of the original ObjC-based EOF with the terrible mess of EOFauts of the new Java-based EOF!), which increases the danger of bugs (far far beyond the very small number of potential dynamic-caused bugs which a static system can prevent). Also, this static-induced boilerplate completely destroys readability, maintainability and intention-revealingness of code. That's essentially why Groovy did occur instead of the statically-typed and boilerplate-infested Java: to allow us to write a clean, easy-to-read, understand and maintain, dynamic code. And also that's why statically typed languages are a completely wrong approach. The right approach is adding as-much optional typing as-reasonably-possible without breaking the dynamic behaviour in the slightest, like e.g., Objective C does[*]. All the best, OC [*] Almost, but not completely perfectly.