|
Prev: Use Case Point Estimation
Next: Association Class
From: Chris Sonnack on 15 Aug 2005 20:06 topmind writes: > One *can* write hierarhical code in most event-oriented tools > similar to how one can write procedural code in most OOP languages > if so desired. I don't dispute that. You still don't seem to understand. If you have a program that does just about anything non-trivial, it will have a hierarchy of high-level routines that call medium-level routines that call low-level routines. If you dislike trees so much, think of it as an onion or strata in the earth. Put extremely, your main() routine may call your keyboard driver, but never vice-versa (in any sane program :-). >> Are you under the impression that "event driven software" is JUST >> event handlers? > > Mostly event handlers. Ah, I think I see the problem. That just isn't so in any serious GUI program. I'd estimate that, AT BEST, it could get as high as 40% to 50%, but that's a rough guess and seems *high* to me. >> The larger the application, the more it does (besides handle various >> events). The more it does, the more it's going to be hierarchical. > > I don't see why this has to be or should be. Simple. As your own teeth-brushing example showed, any non-trivial task breaks into sub-tasks. Therefore, any algorithm of any complexity also breaks into sub-algorithms. PART OF GOOD SOFTWARE DESIGN IS DOING THAT BREAK DOWN. >> And you don't think there's start up **code** that sets things up? >> You don't think some events result in executing large bits of code? > > Maybe, maybe not. I don't rely heavily on "startup" events even if > they are possible. Well, once again, I'd have to opine that your lack of experience is showing. Let's consider a simple example. A highly event-driven GUI program that is spec'd as international. That means it needs to change all its labels before the user sees it. If you don't do that in start up, when will you? When will you load the system configurations? When will you load the user's personal configuations? If a program needs to reference dropdown lists, and those lists are very static, isn't it smarter to preload them or preload arrays with the data for fast access later? >> Sometimes there's quite a lot of it, in fact. When I launch the >> WebSphere App Developer Studio, it takes a couple *minutes* to launch. > > Because Java and WebSphere suck. (Now there's an intelligent, adult opinion. Supported by fact, too!) ((Yeah, that was irony.)) > Compiled languages often make it harder to load stuff as-needed, > forcing one to load everything into RAM up-front. What do compiled languages have to do with it? WebSphere takes so long to launch, because it sets up a lot of stuff then rather than later. Something I appreciate, actually. I can start it up and do something else for a couple minutes (grab a soda, whatever). Once booted, it works very slick and fast. (And, FWIW, I think WebSphere is one of the nicest IDE's I've ever used. I believe something very much like it is freely available as "Eclipse".) >> Again, I'd bet you a year's salary the code behind the compile is >> hierarchically structured. > > It does not matter if the code behind it is girbles on a treadmill. > How to write compilers is not the topic here. But coding is, and writing compilers is coding. More to the point, it illustrates a point I'm trying to make clear to you. My clicking the "Build" button is an *event*. However the code behind that event is (1) considerable and (2) hierarchical. Compile events are admittedly on the high end of the scale, but the point is that events can have a lot of code behind them, and that code will (almost certainly--if written well) be hierarchically structured. >> What's gotten lost here is your understanding of the context. What >> most of this has been about is the occurrence of trees in nature and >> programming. As *data* *structures*, they are natural and vital. > > Prove it. It's been proven over and over in these threads. If you can't see it, it's because you refuse to see it. Consider this, though. You've agreed several times that a tree *view* of data is useful--at least temporarily. How else would you contain the data of that view, if not in a tree-shaped data structure? For that matter, how would you represent a parse tree, HTML tree or XML tree in code? > I don't give a flying slht about how to make > compilers and DB indexers. That is not what I > do for a living. Then why are you presuming to tell those of us that DO anything at all? Fine, consider a business application with a button that causes a database query, which returns data, which is parsed, written into a GUI grid for the user and also processed some more and put into a chart, which is popped up into a new window for the user. Possibly all done in separate threads to make the GUI as responsive as possible. I can only say this: If *I* wrote the code for that "event", you can bet your bottom dollar there'd be stratified layers of routines. In a word: hierarchical. >> I don't think I'm losing this argument at all! In fact, I'm quite >> sure that, were it being judged purely on its debate points, you'd >> have lost it long ago. > > You are delusional. One of us certainly seems to be. I'm content to let history judge. > The duplication of the parse tree node detail is plain as the sky, > and you pretend it is not there or that it deserves some special > exemption such that your wrong view of the universe is kept intact. > Dup is dup. And ignorant is ignorant. You've already admitted you don't know about compilers, and it's clear you don't understand a parse tree DESPITE your having copy/pasted one into your last post. I'll try to make this clear once more: The parse tree represents the source. If an "if/else" statement appears in the source more than once, it **must** appear in the parse tree more than once. It's not possible to parse the code otherwise. > Subroutine calls bust pure trees. That is the facts jacks. This has nothing to do with subroutine calls. THAT'S the facts. A call node in a parse tree is just another node. (You DO understand that no subroutine calls are made by the code while it is being parsed, don't you?) > Send me a parse tree from a real program, I will mark up the > dup links, scan it to the web, and the whole world can see what > a graph it really is. Pointless. It still hasn't sunk in that a parse tree (1) MUST contain duplicate nodes if the code uses a syntax element more than once, and (2) they are still perfect trees nevertheless. See, it's just your self-serving definition of "pure" tree that makes you think otherwise, and point blank, YOU ARE WRONG. NO definition of trees prohibits nodes with similar values. Consider this trivial tree: root 42 42 It's still a tree. A "pure" tree. It just happens that its two leaves contain the same value. Ten seconds later, it might look like this: root 42.5 21 And it's still the same tree, but with different values. Again, you need to distinguish between data trees and taxonomic trees. Duplication is not any sort of issue in data trees (unless the tree is *defined* as having no duplicate nodes, such as an index might be). >> In fact, here's an example of hierarchy in event-handlers: In some >> systems, the main window receives events, which it may process and >> return as fully processed or pass on to a child element of the window. >> That child element may fully process the event OR pass it in turn to >> a child control. >> >> So there ya go--you're even wrong about events not being tree-shaped. > > I'm sure there are many ways to jury-rig event-driven tools to have > hierarchical features or flow if one is obsessed enough with trees. It's not a jury-rig, silly, it's a very appropriate design. Used by many GUI environments. It's very sensible, as it allows the programmer to put the event handling code exactly where it needs to be. (Is it clear to you that this is how the event-driven environment is DESIGNED and not some kludge by the programmer?) > In general, the "flow" in event-driven designs is determined by > actions of the *user*. The user may click in a tree-wise fashion > or may not. What??? What the *heck* is clicking in a "tree-wise fashion"? Apparently, you don't understand THIS example, either. Look, we're talking about a single click, by the user, somewhere in the window. I don't know if you even know this, but in some systems, if you click, say, a button that is in a frame in a window, the main window gets the event first (in Windows, the "message pump" gets it even before then). *IF* there's a handler there, it *MAY* choose to process the event and return. *OR* it may pass it on to the underlying control--in this case the frame. *IF* there's a handler there, it *MAY* choose to process the event and return. *OR* it may pass it on to the underlying control--now we're talking about the button. *IF* there's a handler there, it *MAY* choose to process the event and return. (*OR* not.) > The point is that the flow is not hard-wired into the code. > The more that is hard-wired, the less "event-driven" the design > is. Obviously, but that has nothing to do with this discussion other than to show you just aren't understanding a lot of what I'm saying. -- |_ CJSonnack <Chris(a)Sonnack.com> _____________| How's my programming? | |_ http://www.Sonnack.com/ ___________________| Call: 1-800-DEV-NULL | |_____________________________________________|_______________________|
From: Dmitry A. Kazakov on 16 Aug 2005 06:33 On Mon, 15 Aug 2005 11:35:35 -0500, Chris Sonnack wrote: > Dmitry A. Kazakov writes: > >> Hmm, was Shannon aware of Hilbert's program? I think he was. >> Anyway in the times after Goedel, we know that there is no >> way to "break" everything down to 1s and 0s. > > Are we possibly talking about two different things here? Yes, > Goedel showed we can't fully analyse any non-trivial system, > but I believe Shannon hasn't been superceded in the sense that > anything that *can* be expressed or computed can be expressed > or computed in binary. Which contains a hidden tautology, of course. Everything = anything computable in 1s and 0s? (:-)) >> And even if there were one, neither fuzziness nor randomness >> can be expressed in a deterministic system without some >> incomputable elements. > > But they are incomputable by *any* means, right? That's an interesting question. It depends on the hardware. We don't know if the Universe can offer us anything beyond Turing machine. In particular, can our biological "hardware" compute incomputable? Nobody knows it for sure. Then there is quantum computing. So far people are busy trying to make 1/0s computing out of it. But let's look in another direction. What if quantum computing is more than that? Purely fictitious, let you can compute random distributions, rather than their realizations (the only thing we can do now), then this class of computing will be incomputable for any Turing machine. -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de
From: Mark Nicholls on 18 Aug 2005 07:32 > > >> And even if there were one, neither fuzziness nor randomness > >> can be expressed in a deterministic system without some > >> incomputable elements. > > > > But they are incomputable by *any* means, right? > > That's an interesting question. It depends on the hardware. We don't know > if the Universe can offer us anything beyond Turing machine. But the turing machine is a theoretical machine, it is not the universe that constrains it (in terms of physics) but the maths, and that is only constrained by the wit of man. > In particular, > can our biological "hardware" compute incomputable? Isn't this the point about 'belief', i.e. that human rational is not constrained by formal logic, it cannot be inconsistent with formal logic (well it can be, but provability is a subset of 'truth'), but we believe we can deduce the correctness of some assertions that are beyond the scope of formal logic....(thus our previous discussion about god, and aethiesm as a belief system, rather than within the scope of a logical or scientific discussion). > Nobody knows it for > sure. Then there is quantum computing. So far people are busy trying to > make 1/0s computing out of it. But let's look in another direction. What if > quantum computing is more than that? Purely fictitious, let you can compute > random distributions, rather than their realizations (the only thing we can > do now), then this class of computing will be incomputable for any Turing > machine. > I haven't got a clue what quantum computing is, but you should be able to model it, even if it doesn't exist....as long as it obeys the axioms. Would it be capable of belief in the absence of formal proof? Could it discern the truth?
From: Dmitry A. Kazakov on 18 Aug 2005 13:23 On 18 Aug 2005 04:32:05 -0700, Mark Nicholls wrote: >>>> And even if there were one, neither fuzziness nor randomness >>>> can be expressed in a deterministic system without some >>>> incomputable elements. >>> >>> But they are incomputable by *any* means, right? >> >> That's an interesting question. It depends on the hardware. We don't know >> if the Universe can offer us anything beyond Turing machine. > > But the turing machine is a theoretical machine, it is not the universe > that constrains it (in terms of physics) but the maths, and that is > only constrained by the wit of man. But computer is a physical object. You can build it of atoms, you cannot do it out of thoughts. Many people strongly believe that the physical world is equivalent to a giant FSM, which is even weaker than a TM. >> In particular, >> can our biological "hardware" compute incomputable? > > Isn't this the point about 'belief', That could be that sort of questions Goedel's incompleteness is about. > i.e. that human rational is not > constrained by formal logic, it cannot be inconsistent with formal > logic (well it can be, but provability is a subset of 'truth'), but we > believe we can deduce the correctness of some assertions that are > beyond the scope of formal logic....(thus our previous discussion about > god, and aethiesm as a belief system, rather than within the scope of a > logical or scientific discussion). > >> Nobody knows it for >> sure. Then there is quantum computing. So far people are busy trying to >> make 1/0s computing out of it. But let's look in another direction. What if >> quantum computing is more than that? Purely fictitious, let you can compute >> random distributions, rather than their realizations (the only thing we can >> do now), then this class of computing will be incomputable for any Turing >> machine. >> > > I haven't got a clue what quantum computing is, but you should be able > to model it, even if it doesn't exist....as long as it obeys the > axioms. There are two objections to this: 1. You cannot say what follows from the axioms (Goedel.) 2. Not that I would insist on it, but it is thinkable that the minimal set of axioms required to adequately describe what's going on [by means of our logic] could be bigger than the number of the states of all our brains. > Would it be capable of belief in the absence of formal proof? Could it > discern the truth? An extended Turing test, a capability to believe in irrational as a criterion of intelligence? (:-)) -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de
From: Mark Nicholls on 19 Aug 2005 06:22
Dmitry A. Kazakov wrote: > On 18 Aug 2005 04:32:05 -0700, Mark Nicholls wrote: > > >>>> And even if there were one, neither fuzziness nor randomness > >>>> can be expressed in a deterministic system without some > >>>> incomputable elements. > >>> > >>> But they are incomputable by *any* means, right? > >> > >> That's an interesting question. It depends on the hardware. We don't know > >> if the Universe can offer us anything beyond Turing machine. > > > > But the turing machine is a theoretical machine, it is not the universe > > that constrains it (in terms of physics) but the maths, and that is > > only constrained by the wit of man. > > But computer is a physical object. You can build it of atoms, you cannot do > it out of thoughts. A turing machine is not. > Many people strongly believe that the physical world is > equivalent to a giant FSM, which is even weaker than a TM. TM? > > >> In particular, > >> can our biological "hardware" compute incomputable? > > > > Isn't this the point about 'belief', > > That could be that sort of questions Goedel's incompleteness is about. That was really my point about the god discussion, science is limited by maths, and that is limited, belief needs to be consistent with the maths, but can live in the gaps. > > > i.e. that human rational is not > > constrained by formal logic, it cannot be inconsistent with formal > > logic (well it can be, but provability is a subset of 'truth'), but we > > believe we can deduce the correctness of some assertions that are > > beyond the scope of formal logic....(thus our previous discussion about > > god, and aethiesm as a belief system, rather than within the scope of a > > logical or scientific discussion). > > > >> Nobody knows it for > >> sure. Then there is quantum computing. So far people are busy trying to > >> make 1/0s computing out of it. But let's look in another direction. What if > >> quantum computing is more than that? Purely fictitious, let you can compute > >> random distributions, rather than their realizations (the only thing we can > >> do now), then this class of computing will be incomputable for any Turing > >> machine. > >> > > > > I haven't got a clue what quantum computing is, but you should be able > > to model it, even if it doesn't exist....as long as it obeys the > > axioms. > > There are two objections to this: > > 1. You cannot say what follows from the axioms (Goedel.) you can say a lot, but not everything. > > 2. Not that I would insist on it, but it is thinkable that the minimal set > of axioms required to adequately describe what's going on [by means of our > logic] could be bigger than the number of the states of all our brains. Goedel would imply that the set of axioms required for the system to be complete is unbounded, if the states of our brains are finite, then we cannot 'know' everything. > > > Would it be capable of belief in the absence of formal proof? Could it > > discern the truth? > > An extended Turing test, a capability to believe in irrational as a > criterion of intelligence? (:-)) > irrational may be strong....though people often believe irrational things.....unprovable certainly. so it is reasonable to believe in god it is reasonable to not believe in god it is irrational to assert that you know the answer......it would be harsh on the proponent of aethiesm as a fact to assert that that made him unintelligent! |