the dilemma facing programming languages, as I see it, is that they fall into two categories:
- languages that can be rapidly and radically changed in response to problems (such as failures of abstraction) encountered in real use. but these are the languages without large load-bearing code bases, so they don't get many resources
- languages that have large, load-bearing code bases, which receive adequate engineering power, but not enough to overcome the legacy code problem