That's why I prefer dynamically typed languages for web systems; they start with the rigth assumption about the ever-evolving nature of the project.
I agree with your assessment that we need to design for evolution.
I disagree with your assessment that dynamic languages provide that. Dynamic languages certainly do hit a sweet spot for fast iteration on small projects. As soon as your project gets large or long running, the assurances that static types provide get really nice. Witness how much effort has gone into building type systems for dynamic languages: Typescript (MS) is exploding and had vigorous competition from Flow (Facebook). Python has mypy plus a bunch of corporate backing: MonkeyType (Instagram) and PyAnnotate (Dropbox).
I feel much more comfortable aggressively refactoring in static languages.
To add to you point, more-and-more PHP is growing support for types with every major release. Starting with 5.0, then 5.1, 5.4, 7.0, 7.1, and 7.2 – each of the aforementioned releases added support for greater typing hinting in function definitions and support for specifying types.
Comments
I agree with your assessment that we need to design for evolution.
I disagree with your assessment that dynamic languages provide that. Dynamic languages certainly do hit a sweet spot for fast iteration on small projects. As soon as your project gets large or long running, the assurances that static types provide get really nice. Witness how much effort has gone into building type systems for dynamic languages: Typescript (MS) is exploding and had vigorous competition from Flow (Facebook). Python has mypy plus a bunch of corporate backing: MonkeyType (Instagram) and PyAnnotate (Dropbox).
I feel much more comfortable aggressively refactoring in static languages.
To add to you point, more-and-more PHP is growing support for types with every major release. Starting with 5.0, then 5.1, 5.4, 7.0, 7.1, and 7.2 – each of the aforementioned releases added support for greater typing hinting in function definitions and support for specifying types.