NLP applications are basically determined by 3 components: features, structure, and search over the structure. Why it's so hard to develop NLP tools then? Why don't we have higher-level NLP languages that work well?
I find it extremely frustrating that for most tools I've tried to develop, I hard to build the tools almost from scratch.