[lug] Development & reporting tool choices

David Morris lists at morris-clan.net
Tue Feb 10 10:45:30 MST 2009


On Tue, Feb 10, 2009 at 09:47, Sean Reifschneider <jafo at tummy.com> wrote:
> Steve Sullivan wrote:
>> While an interpreted language is great for rapid development (I'm
>> a python fan myself), there is one big drawback: no static type
>> checking.  And that means when your code runs into any unusual
>> condition that you didn't test after your last mod, it can easily
>> die ... in the customer's lap.

In my experience, static types can cause nearly as many problems as
they solve.  Data ends up being stored in the wrong data type and the
conversion process leads to all sorts of potential bugs.  Worse yet is
implicit type conversions in function calls which can sometimes lead
to no end of headaches.  Both of these types of problems can easily go
un-noticed until the application dies in the customer's lap.

In my opinion, C is best used for only two reasons:  performance, or a
pre-existing investment in the language by the company/project.  If
neither are an issue (and the company/project doesn't have an
investment in another language), I typically recommend either C++ or
Python, depending on the project needs....or occasionally a mix of
Python and C/C++.

> Obviously, having a static type checking doesn't prevent modifications from
> causing the code to die...  In either case you really want to have a
> testing system that you can run after making changes.

This is really the key no matter what language you are using.  Even
the most basic automated code testing can eliminate the vast majority
of bugs.

--David



More information about the LUG mailing list