Maybe you could use the best of both approaches by presenting the most popular/important/broad tags (e.g. PHP, usability, CPC) as a suggested list while allowing users to add their own, more specific or less popular tags (e.g. drupal, memcached, adsense, appengine).
Or (as long as it's performant), an auto-complete as you type so that both "java" and "javascript" show up in the auto-complete's suggestion list when you type "java" in. In the above example, a person would type in 'rails' and see the 'rubyonrails' auto-complete, and (hopefully) choose that instead.
Comments
Maybe you could use the best of both approaches by presenting the most popular/important/broad tags (e.g. PHP, usability, CPC) as a suggested list while allowing users to add their own, more specific or less popular tags (e.g. drupal, memcached, adsense, appengine).
Or (as long as it's performant), an auto-complete as you type so that both "java" and "javascript" show up in the auto-complete's suggestion list when you type "java" in. In the above example, a person would type in 'rails' and see the 'rubyonrails' auto-complete, and (hopefully) choose that instead.