Michal Čihař - Gammu+ mistakes

Gammu+ mistakes

Marcin, you want to know some problems I see in Gammu+. Okay, I finally found some time to look at it:

  1. There is no design document, where can developer find how the code is organised and what is supposed to be API.
  2. There is no definition of external API. Everything is mixed together in simmilar way as in Gammu.
  3. I don't see reasong for passing pointers (and especially double pointers (eg. DebugInfo) instead of C++ references.
  4. Why not using widestring constants instead of converting all using some function?
  5. Why there are reimplemented lists in backup? All those GSM_Backup_*Entry IMHO can be replaced by list<GSM_*Entry>.
  6. There is too much malloc used (you should need it very rarely in C++).
  7. 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…