C ++は、一般的に使用される構文解析で最も複雑な(最も複雑ではないにしても)プログラミング言語の1つです。特に難しいのは、名前検索ルールとテンプレートインスタンス化ルールです。C ++は、LALR(1)パーサー(BisonやYaccによって生成されたパーサーなど)を使用して解析できませんが、必ず解析可能です(結局、人々はC ++を毎日解析するのに問題のないパーサーを使用します)。(実際、G ++の初期バージョンは、BisonのGeneralized LRパーサーフレームワーク上に構築されていました。実際にはそうではありません。コメントを参照してください)最近、手書きの再帰下降パーサーに置き換えられました)
一方、ValaがC++に対してどのような「改善」を提供しているかはわかりません。言語は同じ目標を達成しようとしています。一方で、Valaインターフェースで書かれたGTK+以外ではおそらくあまり見つけられないでしょう。あなたは他のすべてにCインターフェースを使用することになりますが、それはそのような言語を使用することのポイントを本当に打ち負かします。
複雑さのためにC++が気に入らない場合は、代わりにObjective-Cを検討することをお勧めします。これはCの単純な拡張であり(Valaのように)、プログラマーのコミュニティがはるかに大きいためです。 Macの土地のすべての基盤を考えれば、それを利用できます。
最後に、言語自体を解析することの難しさが、プログラマーがその言語を使用するために気にかけるべきことと関係している理由がわかりません。ちょうど私の2セント。