
Firefox OS applications are developed exclusively with the classic triad: HTML / CSS / Javascript. No native code, all web. This has its advantages and disadvantages: it is easy to develop for the platform, but you can tell that it’s not native. It happens the same thing to PhoneGap, except that in this case you know that your applications are made for Firefox OS and know in advance how the browser renders (it’s still a Firefox).
When developing, you can choose whatever you want best: traditional Javascript, jQuery, Backbone, AngularJS or any other framework you like. The war is set.
With respect to interface, Firefox has been very clear not taking a specific framework to give applications the Firefox OS look&feel. Their strategy is: “Use what you want.” Fortunately the source code of your UI layer (Gaia) is available for beeing used and there are already people who have made little things to help.

I haven’t had much time lately (I’ve been forced to socialize with other human beings), but I had the time to develop an dummy app embedded with the Twitter Search API. I used my favorite stack, ¡Puppeteer! Puppeteer! (udercover advertisement), which continues being a Backbone with Marionette. And I used for the interface what I commented before (Gaia).
The conclusion is that I found it quite simple, perfect if you are used to develop “pure javascript” applications, but it still has a good way to go. There are many details that don’t rules yet: the system dies too often, when sending the apps to the device, sometimes you need to restart for the changes to be caught … But on the other hand, the simulator is fantastic.