At first we had no environment, so we had to make it ourselves. A few companies did this, and turned into monopolies.
Then we started trying to make free/open-source environments to combat this problem, but they ended up so incredibly scatterbrained that compatibility is a very real and current nightmare.
The monopolies are trying really hard to give us good environments, but first of all they come at a cost, which isn't accessible to many (Apple's hardware, MS's software, etc). And secondly they are not community-driven efforts, so we have little control over them.
So the battle rages on between the plethora of options I have for a programming environment. Meanwhile I'm just trying to write some simple apps that help me pay the bills (we get dangerously close to not being able to each month) and the competition between environments only slows me down.