comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Static vs. Dynamic typing (big advantage or not)---WAS: c.programming: OOP and memory management
Date: Thu, 19 Aug 2004 10:10:58 +0200
Date: 2004-08-19T10:10:58+02:00	[thread overview]
Message-ID: <40cmn8qnj5kv$.1llvajtdbf755.dlg@40tude.net> (raw)
In-Reply-To: moWUc.5028$de4.548@trndny07

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. GUI
instruments should be passive controlled by "referesh" threads from
outside. Also that they should not directly communicate with neither actors
nor sensors (devices), but do it through a middleware interface.

2. I don't see why re-design (an expensive thing) should be easier with
dynamic types. [ You have to change, say, 30% of the code. If that 30% is
largely about types, then dealing with Ada I would prefer that. Because the
compiler can help me there. If that changes are about implementations, then
it is usually more painful. Please, do not tell me that in Smalltalk that
will be 0%! You have a design fault. So it will be still same 30%
distributed all over the code. ]

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de



  reply	other threads:[~2004-08-19  8:10 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 [this message]
2004-08-19 16:24                                                   ` Thomas G. Marshall
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