How has Scheme avoided bloat and creeping feature-itis?
The language was originally designed as a minimalist language — What is the smallest set of features we need to talk about all the programming languages ideas that matter? As it moved from the lab out into the world, new operators were added to Scheme, making it more convenient to use. But it is still a minimalist language, and the community of users that guides its evolution is supportive of this mindset. As a result, features get added to Scheme only when there isn’t already a reasonable way to implement the idea consistently using language features that already exist.