A Fully functional multi platform html edit that will shine because it uses the latest version of the world's most powerful GUI toolkit and the fact that the code will be Very easy to understand great abstraction. This HTML application will be fully featured just like bluefish or dreamweaver, so any HTML feature is welcome. The hardest feature to implement will be the ability show dialog that corresponds to the tag that the current curse position is; much like how dreamweaver does it but I will be working on that soon.
Unless a developer has solved a very similar problem before, the first run will almost always have poor abstraction no matter which paradigm is used. Decent abstractions only come about with experience with the subject matter. I don't have enough experience with creating this type of application so I have done the next best thing, create a very flexible and easy to refactor design. I have decided to abandon the complications of object orientation in favour of procedural methodology because it gives me the flexibility to move functionally to any module I like easily without breaking the code.
Python does not force any methodology on the developer, it is completely neutral.The python language overcomes many limitation of procedural programming with low level languages like C or Pascal. My goal is to create code that is easy for new developers to open-source to understand, so to encourage more developers to join the team.
1.No classes, at least not at this stage of development. Classes will only force methods into unsuitable groupings before the design of this application has a chance to mature. It's ok to submit classes if you are expecting them to be refacted into functions.
2.Think small methods, this concept is universally accepted, understood and easy to implement.
3.Use façade or factory method pattern to hide 3rd party librarys away from the rest of the application, unless there is good justification to do otherwise.
4.You don't work too hard to follow these rules if you see it as a pain and what to concentrate on adding features; there will always be someone to refactor on your behalf.