One thing I have learned over the past 10 months:
It's not because my tools (programming languages JS & CSS, platform Web) suck so that I can't make great software. It's just because I have never done any software project significant enough to acquire the skill of doing big software.
The tool is not perfect and I sucked.
Therefore, before I even attempt to make a new language, a new framework, a new platform, I need to exhaust the current one first by shipping real things.
The end matters more than the means.