|
Posted by Jerry Stuckle on 12/16/06 01:36
Tim Streater wrote:
> In article <NtqdneCPLbONNB_YnZ2dnUVZ_smonZ2d@comcast.com>,
> Jerry Stuckle <jstucklex@attglobal.net> wrote:
>
>
>>Tim Streater wrote:
>
>
> [...]
>
>
>>>It's just the vogue at the moment. Those of us who have developed a
>>>coding style over 40 years to assist maintainers who might be following,
>>>think different. Cool is not important - maintainability is (and
>>>donkeymentation, of course).
>>>
>>
>>In your opinion, at least. Many others, including us who have been
>>programming 39 years (started with Fortran II on an IBM 1401) think
>>differently.
>>
>>Some old-time programmers get so ingrained in one method it's hard for
>>them to see a different way of doing things might be better. Others
>>find new ways to be much better - including easier to maintain.
>
>
> I think it's just a vogue. Like when Pascal was the vogue and it was
> considered "good" to have only one exit from a procedure. As
> excruciating contortions were needed in real-world code to achieve this,
> I carried right on using the return statement and ignored the vogue.
>
As I say - in your opinion. Millions of programmers disagree with you.
>
>>>Personally I dislike something like:
>>>
>>>if (send_packet(params)) {
>>> do something
>>>}
>>>
>>>not just because of the braces but also because an "if" is supposed to
>>>perform a test - not have as a side effect as it might be sending a
>>>packet over the wire.
>>
>>I love it, and use it all the time. First started doing in in C over 20
>>years ago. It's one of the great features of languages like C, C++,
>>Java and PHP, and allows for a lot of flexibility.
>>
>>In your case the if statement is doing a test - but it's just a test to
>>see if an action (a dynamic event) completed successfully, instead of
>>the static value of a variable.
>>
>>Let's take it one step further:
>>
>>result = send_packet(params);
>>while (result) {
>> do something
>> result = send_packet(params);
>>}
>>
>>Or, just
>>
>>while (send_packet(params)) {
>> do something
>>}
>>
>>After all, all a while loop is is a test which is executed repeatedly
>>until the condition fails.
>
>
> If you're doing a test, do a test. If you're sending a packet, send a
> packet. These are distinct actions that should be separated.
>
> That's my style, at any rate.
>
> -- tim
Why? When it makes the code more complicated and harder to understand?
It is a test - a test as to whether the action completed successfully or
not. But this concept is harder for some old-time programmers to grasp.
Just like in my classes - COBOL and FORTRAN programmers had a lot harder
time grasping the concept of pointers as implemented in C than new
programmers did.
And typically the longer someone had been doing structured programming,
the more trouble he/she had in grasping OO concepts.
It's sometimes hard for old-time programmers to change their habits.
--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstucklex@attglobal.net
==================
Navigation:
[Reply to this message]
|