I agree that its not obvious what better layouts are. I'm working in different learning and cultural environments (schools, universities, adult learning, companies, trainers and coaches). I see different learning and teaching concepts from open learning arrangements to classic teacher centered dirigistic teaching. We are discussing standardized
mass learning concepts for thousands of people and web 2.0 learner centered individualized just-in-time learning or community based scenarios. Thats the world I see every week.
The decision what's a better design for the learning process can't be answered generally. Its a local decision in a special context.
But exactly this is the best argument to segregate consequent code, design and content. And design has different aspects here: colors, fonts size, boarders on one hand (all the CSS stuff) and on the other side the arrangement of elements on a page. In different contexts it should be possible to arrange elements in quite an other way as Moodle defines actually. A simple argument is that it should be similar like an other application an organiszation is using. Doing this it is much simpler to work in the Moodle processes because a user thinks he can use it in the same way like other programms.
The growing success of Moodle has a consequence. More and more users are not from the so called net generation or developers. They are ot familar with web interfaces
like other ones. If you or I look on a web page we mostly see with one view where the relevant elements and settings are and what we have to do. We see a structure, because we know a lot about patterns that are mostly used in web applications.
Our experience to differentiate is an exclusive knowledge. More and more Moodle users don't have the experience and intuitive knowledge. As experts we have mostly a tacit knowledge and can't transfer this to others. In lots of situation user don't have a contact to an expert when using Moodle.
So we have to create interfaces within Moodle that are respecting the different needs, experiences and contexts of users in Moodle. The problem is that we can't define all the situations in the discussion here or at an other place. We need options to define and design it with a special client or user in his context.
An other aspect of the same issue: At several places we had discussions about simple Moodle systems for starters.
We can configure a moodle system in different ways: preconfiguration of course settings and blocks in new courses, hiding some course administration functions for different teacher roles. What we can't do is an in detail definition of functions and activities
that are available for a special role. Its an often discussed question: can we create a teacher role for teachers starting with Moodle that only have access to some learning activities.
Petr told me that this would create a lot of workload for the database. May be it is possible to create different templates/views for different roles.
I don't know if templates are a good way to create the options for a flexible presentations of Moodle pages in the hand of admins or designers. Tim and Urs discussed this some weeks ago.
I don't really have knowledge about coding, but I can see that there are lots of lines of code outside the themes that define how a moodle page looks like.
Yesterday I worked a little bit at the assignment module and changed some 'center' definitions to 'left'. I found CSS definitions in assignment/style.php and several definitions of placements 'center, left, right, float' (with differences between 1.9. and 2.0 code). Why are they located there?
If we are consequent in a first step, we should put all the CSS definitions into the standard theme. But I expect that this won't be enough to create the flexibility for the different needs.
Lets try to find a strategy to define visual outputs consequent in themes and perhaps in templates. So it will be possible to define some standard visual use cases for often used scenarios and the flexibility for individual designs for special needs without coding in the core.
Hopefully that this will create a good base for the cooperation of teachers/learners, core code developers and designers. We need all these professios together, not in one person, but in discussion and teamwork.