The C core means that potential users need to have superuser privileges on their server in order to install Midgard. This is obviously a major obstacle to people running smaller sites, but it also carries quite cool benefits, as Piotras points our in his recent blog post:
First. Midgard core is not a CMS core, it’s just database abstracion layer with authentication mechanism and some built in additional features. Thus , core is not your ideas aware. That’s good , because its generic purpose doesn’t limit your ideas. So together with other components ,( like midgard-apache module or midgard-php ) it turns into powerfull CMS framework which can be written in any language , like MidCOM is written in PHP.
Second. Just imagine that your favourive PHP ( only PHP ) based CMS which has been developed for last three years begins to be interesting for java community. Imagine that CMS contains 50 000 lines of code. 20 000 is database releated code, another 20 000 creates logic and only 10 000 defines user interface. What java community should do in such case? Write 50 000 lines of java code and be in sync with PHP based development branch. Sounds good? No. Now imagine that you want to build Your new project with python and Midgard as basement. It’s enough then to write python language bindings ( which is done only once ) and focus on Your application. Amount of code which must be written depends on project only. You do not have to worry about anything else.
Now most Midgard functionality still resides in PHP space, but Java is already being used much for data migration and application integration. Piotras is also working a new GNOME desktop application, Magni that can manage Midgard’s data repository.