Hacker News new | past | comments | ask | show | jobs | submit login

This article spends many words to say, “there is no silver bullet”.

But dynamically typed languages produce at least the same amount of accidental complexity, just in different ways.




Indeed, the article has it backwards. The types are always there. Your program will fail at runtime if it's not correct. The type system merely surfaced that.

Complexity in the types happens when the type system isn't expressive enough. Or when you're trying to do something that would make the compiler try to solve the halting problem.

To that last point, this is why the PLT community has pushed in the direction that Agda / Idris has. Kind of like how we realized years (decades?) ago that we didn't need pointer arithmetic, there's been a realization that "total" isn't actually that helpful, and it's okay if we didn't have languages that could express the halting problem.


That's the hope, but saying there's something wrong is insufficient. The compile-time errors need to be understandable, or it's just going to be frustrating.

Maybe we should judge compile-time constraint systems by how easy it is for the library author to add good error messages for misuse?


> Kind of like how we realized years (decades?) ago that we didn't need pointer arithmetic

who's "we" here? pointer arithmetic is useful for all kinds of things.


> This article spends many words to say, “there is no silver bullet”.

Rather "I believe there is a silver bullet, but I don't know where yet". Probably I am too naive!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: