PyWeaver
The Application
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.
Philosophy
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.
Why Python?
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.
The Rules
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.