![]() | |
#1
| |||
| |||
|
|
Tony wrote: Regarding compilers... |
#2
| |||
| |||
|
#3
| |||
| |||
|
#4
| |||
| |||
|
#5
| |||
| |||
|
#6
| |||
| |||
|
|
Chandru, your points are well taken and it's clear you put considerable thought into the subject. Some time ago, I discovered the D3 runtime-errors file. There, you can easily see those "fly-by" messages that one does not see on-screen. The runtime-errors file, at least for me, is an indespensible programmer's tool that can be used during development and even when the code is in the production phase. |
#7
| |||
| |||
|
|
Tony wrote: Regarding compilers... In our own experience we've seen errors like "Variable unassigned, zero used" or "Return with no gosub" or "non-numeric value where numeric required". We can call to subroutines with an invalid number of parameters. We can accidentally reset some variable down a called chain that affects code further up. All of these result in runtime errors, often found by end-users before the developers. The rest of the world perceives these runtime errors as being expensive to correct, not "features" to dance around. Aren't we all tired of null pointer exceptions, BSOD from Windows, and core dumps from *nix, where some programmers have not properly written their code? Programmers are as tired of it as end-users and that's why the mainstream developer market considers strong typing to be generally "a good thing". Of course there are successful exceptions like Perl and PHP. There's no doubt that in Pick we're more free to focus on logic when we're not constrained by the mechanics of fault prevention. As with everything, freedom has costs. When we're talking about freedom of speech we pay high costs. When we're talking about software, people don't want to pay high costs in terms of quality because some developer exercised too many freedoms in code - check the business journals, software quality is one of the most highly discussed issues, and has been for years. As always, I'm looking for some balance... 1- If end-users are finding errors in code, then you have a QA problem. 2- You are considerable weakening your case by quoting "BSOD from Windows, and core dumps from *nix" etc. If I read this right, these systems are all coded in more restrictive, typed languages, and there you have 'em. Bugs. Failures. Is this indicative of poor programming or not? If so, are you saying that there are less such in those environments than in Pick Basic? Hard to prove, or disprove, but you know where I stand. 3- Return with no gosub has nothing to do with what we're talking about. While a bounded function would force the compiler to catch errant returns, you could just as well incorrectly add an extra return, valid syntactically but invalid logically. The point is, there will always be errors. 4- Your much-vaunted compilers (e.g: C and jbase) have switches to turn off, say, array boundary checking for supposedly "debugged" programs, presumably for speed. If this is not an example of exactly what should never, never be done, I don't know what is. What percentage of errors found by "end-users" may result from this idiocy? Can we tell? 5- What are you referring to as "Of course there are successful exceptions like Perl and PHP"? if they do not have stong typing and are successful, what do you attribute that to? The syntax of many modern languages leaves much to be desired, and contributes greatly to programmer errors, much more so than Pick Basic does (willingly provide examples to those who have too much time on their hands.) In fact, I'm surprised that those advocating rigo(u)r accept a language as obscurationist as php (note the many ways of screwing up by checking the official php website!); just that fact that parts of string can embed the*value of a variable* merely by naming the variable should have been a major nono in the design. 6- While I am regularly accused of being a devil's advocate, in this instance I honestly feel that, yes, several thousand business journals and computer science professionals are going along on issues just because that's the perceived wisdom. All I can say is look at the original Pick results: a full blown operating system and database well before its time with performance and features years ahead of others, designed mainly by a English Lit PhD and a Physics graduate. There was a reason that Pick was so successful and productive -- it did not adhere to the conventional wisdom. Whether that is a virtue in these days is debatable, but, in my mind, clear. Chandru Murthi |
#8
| |||
| |||
|
#9
| |||
| |||
|
#10
| ||||||||||
| ||||||||||
|
|
1- If end-users are finding errors in code, then you have a QA problem. |
|
2- You are considerable weakening your case by quoting "BSOD from Windows, and core dumps from *nix" etc. If I read this right, these systems are all coded in more restrictive, typed languages, and there you have 'em. Bugs. Failures. Is this indicative of poor programming or not? If so, are you saying that there are less such in those environments than in Pick Basic? Hard to prove, or disprove, but you know where I stand. |
|
3- Return with no gosub has nothing to do with what we're talking about. |
|
While a bounded function would force the compiler to catch errant returns, you could just as well incorrectly add an extra return, valid syntactically but invalid logically. The point is, there will always be errors. |
|
4- Your much-vaunted compilers (e.g: C and jbase) have switches to turn off, say, array boundary checking for supposedly "debugged" programs, presumably for speed. If this is not an example of exactly what should never, never be done, I don't know what is. What percentage of errors found by "end-users" may result from this idiocy? Can we tell? |

|
5- What are you referring to as "Of course there are successful exceptions like Perl and PHP"? if they do not have stong typing and are successful, what do you attribute that to? |
|
The syntax of many modern languages leaves much to be desired, and contributes greatly to programmer errors, much more so than Pick Basic does (willingly provide examples to those who have too much time on their hands.) |

|
In fact, I'm surprised that those advocating rigo(u)r accept a language as obscurationist as php (note the many ways of screwing up by checking the official php website!); just that fact that parts of string can embed the*value of a variable* merely by naming the variable should have been a major nono in the design. |
|
6- While I am regularly accused of being a devil's advocate, in this instance I honestly feel that, yes, several thousand business journals and computer science professionals are going along on issues just because that's the perceived wisdom. |
|
All I can say is look at the original Pick results: a full blown operating system and database well before its time with performance and features years ahead of others, designed mainly by a English Lit PhD and a Physics graduate. There was a reason that Pick was so successful and productive -- it did not adhere to the conventional wisdom. Whether that is a virtue in these days is debatable, but, in my mind, clear. Chandru Murthi |
![]() |
| Thread Tools | |
| Display Modes | |
| |