Who can avoid talking about the war? My feeling on the war is now on record, I suppose (support, contingent on dedicated and sincere attempt to reconstruct Iraq; if it self-destructs it should be despite our efforts, not because of them), but I wanted to comment on a couple of criticisms that I feel are either disingenuous or invalid.
In reaction to my previous post, Rafe posts an update...
My intention was to talk a bit about how Perl and Java differ, not explain how one should construct a program.
Yes, and I was one meta above that. I should have made it more clear we were discussing different levels.
He also says that you should avoid Perl's idioms, but then the question I ask is whether you should use Perl at all? I know sometimes you have no choice ...
That's what it is in this case. I work on a mod_perl application, and I came on the project quite a few years after that decision was made. My opinion on that issue is quite irrelevant. ;-) Also, considering when the system was started, mod_perl was the best of many evils; having used ASP, it beats the hell out of that. So in context, I actually support the use of perl in this instance.
Rafe Colburn explains why Algol-like languages are far superior to Perl for working on large scale, multi-programmer, long-term projects. I'd go further. If you use an outliner to edit your source code, his multi-line Java example shrinks down to one line, just like his Perl example. If you don't program in an outliner I'm sure you have no idea what I just said. If you do, you're probably chortling and guffawing and pointing at the screen saying "See what I said." [Scripting News]
Please ignore if you're not into computing theory.
Says Den Beste:
My original statement was that a single Turing machine cannot perfectly simulate a system which consists of two Turing machines such that the ratio of the clock rates for those two Turing machines is a transcendental number.... [attempted proof clipped] ... Am I right? ... Can my proposed idea be restated in a way which truly does make it uncomputable?
No, that doesn't work; the simulation machine doesn't need to do the full calculation of the ratio. It only needs to do enough to compute the next step, then it can abandon the ratio calculation for this iteration. Eventually no more computation will be necessary, as the machine finds the most significant digit where the ratio diverges and that's all it needs; the rest is garbage. The amount of work required is certainly bounded only by infinity and nothing tighter ("limit" isn't really appropriate here, "bounded" is), but it will never reach that under your formulation.
If the original machines finished in finite time, so will this one.
An interesting case is when the two numbers do eventually cause the original machines to execute precisely simultaneously. (This is when the computation does go to infinity.) Detecting that one transcendental number divided by another is a rational number is impossible, because it takes forever, but that's a known fact. I would inclined to call that a malformed input, rather then anything special, because there is some other input (the rational ratio of the two numbers) that performs identically but doesn't hang the machine. Lots of computer science stuff breaks when presented with transcendental numbers; what's surprising is not that this doesn't work, but that the case where the ratio is transcendental does.
As for question four, answering that would involve creating a mechanism of computing that would then be more powerful then Turing Machines (able to compute a problem the TMs couldn't), and that runs you into the Church/Turing hypothesis. Of course that's no proof, but it does mean it's unlikely this is going to work. ;-)
When do you know that you've got the right answer to a programming conundrum? When the answer means you delete lots of code, and the final product is more efficient, more flexible, and more robust. I love programming.
|<- Future Posts||Past Posts ->|