GNOME Platform Stormclouds
Posted Mar 26, 2004 13:36 UTC (Fri) by mly
In reply to: GNOME Platform Stormclouds
Parent article: GNOME Platform Stormclouds
> or, just use a statically typed language. Languages are tools:
> use the right one for the job. mly, don't you think you're
> laying on the Python advocacy awfully thick?
I agree that we seem to have left the subject of GNOME rather far behind. :)
I'll just summarize and then I'll try to stay away from this thred. I hope you will see my point.
* Static typing is not a full substitue for tests. The compiler will only find particular types of errors. Never logical errors.
* Whether we use a language with static or dynamic typing, we *should* write automated unit tests when we develop systems of significant size. Automated regression tests are important for the long term maintenance of any software project.
* Proper unit tests will find all errors that the compiler would. If your unit tests fail to find typing errors in your code, you either have dead code that you should remove, or incomplete tests. This is not because you write extra tests to find spelling errors, but because spelling errors you make will have an effect on the actual function of the code, which you should test.
* With an appropriate language (such as Python) and good working habits, the code/test cycle is typically faster than the code/compile cycle in e.g. Java or C.
While this might sound good in theory, I won't deny that there are problems involved. It might be difficult to maintain a large set of tests if requirements change, and some things, such as GUIs (which are certainly relevant in the case of GNOME :) aren't always easy to unit test in an automated way with current free tools.
I think the solution to this is to make the tools and methods for testing even better, not to go back to old fashioned languages where you have to write several times more code than you need with a modern language.
to post comments)