Marcin, you want to know some problems I see in Gammu+. Okay, I
finally found some time to look at it:
- There is no design document, where can developer find how the code is
organised and what is supposed to be API.
- There is no definition of external API. Everything is mixed together
in simmilar way as in Gammu.
- I don't see reasong for passing pointers (and especially double
pointers (eg. DebugInfo) instead of C++ references.
- Why not using widestring constants instead of converting all using
some function?
- Why there are reimplemented lists in backup? All those
GSM_Backup_*Entry IMHO can be replaced by list<GSM_*Entry>.
- There is too much malloc used (you should need it very rarely in
C++).
- Too much reimplementation of standard C library (eg. wcscasecmp vs.
UnicodeCaseCmp).
Okay, I'm tired of reading that code. There is no documentation, the
code follows no design, etc. I know Gammu code, so I can a bit
understand Gammu+ code, but I expected some more open project, with at
least some documentation. If you want to attract developers, you need to
document your code.
Gammu+ looks to me like rewrite of C code into C++ while fixing some of
design flaws of the old one, but introducing new ones. I know that
nobody is perfect, but when starting new project, you should have spent
some time on designing it's internals, writing them down and maybe
receive some comments from others.
I know nobody is perfect, I also made several projects with wrong design
before (well, Wammu is one of the examples).
PS: I don't say that Gammu+ has no future. I only say that it is ulikely
to attract more developers as lacks documentation in same way Gammu
does. I tried to introduce some documentation it Gammu, but I alone can
not document new code…