If you are not planning to use eclipse or the web designer, you can write your WorkItem definitions in the language that you want. Your tool will need to understand that language.
And yes you can register the workitems doing:
ksession.getWorkItemManager().registerWorkItem("name", implementation);
Cheers