Hacker News new | ask | show | jobs
by ufo 4395 days ago
> What makes a language 'okay for smaller projects' but suddenly unsuitable when it gets larger

As projects get larger the benefits of tooling (automated testing, automated type checking, efficient compilation, etc) become more relevant and the costs of using the tools become less relevant compared to the costs of writing the program itself.

> the only place it really makes sense to say that dynamically-typed languages 'break' is when they don't have the types that the application needs

Actually, I don't think any dynamic languages used in practice actually do this right now. Most dynamic languages only check base types (numbers, null, "object") but fail to check for higher order types (functions and objects). For example if you code

    MyClass x = new OtherClass();
    x.foo();
wouldn't it be better to get an error in the first line than an error on the second line? Specially when you consider that the method call can be delayed and only happen much latter, in some other function and without the true guilty line even showing up in the stack trace.