I certainly agree that software development for a keyboard is probably very expensive.

Because it an embedded system, the languages selected are either C++, C or Assembly or a combination of the above.

However, until they find a way to program in either Java or C#...

Software development will continue to be very very expensive.

Unless of course a brave manufacturer can experiment with Windows CE, compact .net framework, and C#!