comp.lang.ada
 help / color / mirror / Atom feed
From: "Thomas G. Marshall" <tgm2tothe10thpower@replacetextwithnumber.hotmail.com>
Subject: Re: Static vs. Dynamic typing (big advantage or not)---WAS: c.programming: OOP and memory management
Date: Thu, 19 Aug 2004 16:24:05 GMT
Date: 2004-08-19T16:24:05+00:00	[thread overview]
Message-ID: <Fu4Vc.6201$si.6183@trndny06> (raw)
In-Reply-To: 40cmn8qnj5kv$.1llvajtdbf755.dlg@40tude.net

Dmitry A. Kazakov <mailbox@dmitry-kazakov.de> coughed up the following:
> On Thu, 19 Aug 2004 04:54:42 GMT, Thomas G. Marshall wrote:
>
>> Without having to hand you an inch thick spec......ok.  Here:
>>
>> Think java applet running on a pc.  That pc connected to a very
>> complicated scientific device, composed of a great many number
>> producing things.  I'm going to use the term "gui component" here,
>> but I really mean more than View,  but also the Model/Controller
>> folded in as well.
>>
>> One of my java clients needed a very complicated multi-layered gui,
>> where each of the visual components (meters, text fields, flashing
>> lights, text labels grayed out, red, or red/gray, or blinking), had
>> to in real time reflect what was happening to that component's
>> counterpart within another device.
>>
>> A ton of meterable "things" in the device, and a ton of real time gui
>> elements in the java app reflecting the various values, states,
>> warning levels, what have you.  Many of the gui items further
>> controlled other "things" in the device, which caused only a cascade
>> of changes in the gui elements that were monitoring the components
>> from the device.
>>
>> For a huge part of the development, the gui components were designed
>> around their own threads.  One drawn LED that needed to be updated 5
>> times a second, one thread.  A textfield next to it that needed to
>> be updated 25 times a second, another thread.  Each of those threads
>> ran in real time collecting (and sometimes sending) to/from the
>> device.
>>
>> When the number of such continually active gui components threatened
>> to exceed several hundred, we shifted the model and from the top
>> converted every single component into an entry into something called
>> the Dispatch. Dispatch maintained a list(1) of lists(2) of
>> components.  Each list(2) was a list of components that needed
>> updating a particular interval.  All the 50ms updates went into one
>> such list.  All slower 150ms updates went into another, etc.  23
>> distinct interval types meant 23 entries in list(1), each of which a
>> list(2) of components.
>>
>> Because it was done in Java, a statically typed language, there was
>> a great deal of energy spent in just turning the crank of making
>> sure that the types shifted from prior strategy to the current one.
>> I hope I've been clear enough here.
>
> 1. I would say that it was a design fault. The idea to use active
> objects
> for GUI instruments is wrong. We used to design several similar
> projects
> and never tried to go that way, because it is so obviously(?) wrong.

Stay off your high horse.


> GUI instruments should be passive controlled by "referesh" threads
> from
> outside.

They were.  Actually, that's not "passive", that's /actively/ controlled and
controlling, because many of the gui elements were dual duty: they move as
accessors, but can be moved (by user) to mutate.


> Also that they should not directly communicate with neither
> actors nor sensors (devices), but do it through a middleware
> interface.

We did that too.  From the beginning.

When I'm refering to gui components, I'm refering to /all/ that it takes for
the gui component to work.  Remember, this has to be a quick sketch of what
was going on.

...[rip]...


-- 
http://www.allexperts.com is a nifty way to get an answer to just about
/anything/.





  reply	other threads:[~2004-08-19 16:24 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <1hk5j2d3dlmrp$.153lae83darml$.dlg@40tude.net>
     [not found] ` <40f29222@alpha.wvnet.edu>
     [not found]   ` <104x9d9d53127$.1b8jq22ldf2js.dlg@40tude.net>
     [not found]     ` <40f2ee18@alpha.wvnet.edu>
     [not found]       ` <8yhg4xv40agi.ly9pgul3h7jw$.dlg@40tude.net>
     [not found]         ` <40f3ceee@alpha.wvnet.edu>
     [not found]           ` <19iip59qsl122$.3g3hicltra17.dlg@40tude.net>
     [not found]             ` <40f5bbe1@alpha.wvnet.edu>
     [not found]               ` <lLCdnT5s5oBR0mvdRVn-vw@nildram.net>
     [not found]                 ` <40f67c13@alpha.wvnet.edu>
     [not found]                   ` <b46dnTyZeOwARmrdRVn-sA@nildram.net>
     [not found]                     ` <nisfh0hq8n83kckuss0g2m8dclchbb87c4@4ax.com>
     [not found]                       ` <9qTRc.61502$M95.25853@pd7tw1no>
     [not found]                         ` <ce7ef1c8.0408100846.7cd312e8@posting.google.com>
     [not found]                           ` <BuASc.81568$gE.9811@pd7tw3no>
     [not found]                             ` <411C5D2F.5070408@acm.org>
     [not found]                               ` <BZxTc.103385$M95.61358@pd7tw1no>
     [not found]                                 ` <ifGTc.574$SR4.140@newssvr14.news.prodigy.com>
     [not found]                                   ` <bkiuh054vd4suvd2fgqmekvt9llaend5n1@4ax.com>
     [not found]                                     ` <tNydnW_KyNuXHL3cRVn-oQ@nildram.net>
     [not found]                                       ` <nu2dnc4HfY-2Wb_cRVn-sQ@fcc.net>
     [not found]                                         ` <sgDUc.26532$9Y6.17585@newsread1.news.pas.earthlink.net>
     [not found]                                           ` <3bOUc.46253$US4.14922@trndny01>
2004-08-19  0:37                                             ` Static vs. Dynamic typing (big advantage or not)---WAS: c.programming: OOP and memory management Richard  Riehle
2004-08-19  4:54                                               ` Thomas G. Marshall
2004-08-19  8:10                                                 ` Dmitry A. Kazakov
2004-08-19 16:24                                                   ` Thomas G. Marshall [this message]
2004-08-19 12:52                                                 ` Jim Rogers
2004-08-19 16:31                                                   ` Thomas G. Marshall
2004-08-20  1:27                                                 ` Stephen Leake
2004-08-20  7:00                                                 ` Richard  Riehle
     [not found]                                   ` <TgfUc.122489$M95.15934@pd7tw1no>
     [not found]                                     ` <XtOUc.4483$QJ3.4254@newssvr21.news.prodigy.com>
2004-08-19  0:39                                       ` Richard  Riehle
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox