comp.lang.ada
 help / color / mirror / Atom feed
From: Maciej Sobczak <no.spam@no.spam.com>
Subject: Re: [SPARK] Code safety and information hiding
Date: Mon, 21 Aug 2006 09:25:22 +0200
Date: 2006-08-21T09:25:22+02:00	[thread overview]
Message-ID: <ecbn52$ie1$1@sunnews.cern.ch> (raw)
In-Reply-To: <IH7Gg.6067$aJ.4037@attbi_s21>

Jeffrey R. Carter wrote:

> As you're probably aware, rules with "always" in them always have 
> exceptions (including this rule). I have a rule that says always avoid 
> global variables. I'll accept a small number of well documented global 
> variables sometimes if the alternative is worse.

It's interesting to see this discussion, especially after the posts 
revealing that it's not really clear what "global" means.

Let's say I have a program composed of some subroutines or packages. 
Each subroutine has some local variables and each package has some state 
  and together they all cooperate according to what the whole is 
supposed to do.
Then I decide to break the system into separate processes, and for the 
sake of discussion what was a subroutine (or a package) originally 
becomes a separate process, all communicating using some form of IPC and 
still cooperating to achieve the supposed goals.

The point is that while chopping the system into pieces, what was local 
(or state) variable originally became global in the resulting smaller 
program.

Now - did I break SW principles and should I go to hell for making N 
programs with M global variables in each?
After all, if I draw the whole on the whiteboard, the diagram is the 
same as it was at the beginning, with boxes encapsulating state and 
arrows depicting the only possible interactions. So? :-)


-- 
Maciej Sobczak : http://www.msobczak.com/
Programming    : http://www.msobczak.com/prog/



  reply	other threads:[~2006-08-21  7:25 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-08-16  7:56 [SPARK] Code safety and information hiding Maciej Sobczak
2006-08-16  8:53 ` roderick.chapman
2006-08-16 11:18   ` Stuart
2006-08-16 13:23     ` Maciej Sobczak
2006-08-16 19:49 ` [SPARK] " Jeffrey R. Carter
2006-08-17  7:01   ` Maciej Sobczak
2006-08-17 18:08     ` Jeffrey R. Carter
2006-08-17 20:00       ` Björn Persson
2006-08-18  1:22         ` Jeffrey R. Carter
2006-08-18 19:39           ` Björn Persson
2006-08-19  5:35             ` Jeffrey R. Carter
2006-08-19 12:47               ` Björn Persson
2006-08-20  3:58                 ` Jeffrey R. Carter
2006-08-20 11:35                   ` Björn Persson
2006-08-18 23:02   ` Robert A Duff
2006-08-19  5:40     ` Jeffrey R. Carter
2006-08-19  9:49       ` Stephen Leake
2006-08-20  3:52         ` Jeffrey R. Carter
2006-08-20 19:06           ` Stephen Leake
2006-08-21  1:07             ` Jeffrey R. Carter
2006-08-21  7:25               ` Maciej Sobczak [this message]
2006-08-21 19:31                 ` Jeffrey R. Carter
2006-08-21 19:58                   ` Dmitry A. Kazakov
2006-08-21 21:06                     ` Björn Persson
2006-08-22  7:16                       ` Maciej Sobczak
2006-08-22  9:45                         ` Björn Persson
2006-08-22 12:42                           ` Maciej Sobczak
2006-08-22  7:27                       ` Dmitry A. Kazakov
2006-08-21 11:30             ` Colin Paul Gloster
2006-08-22 10:51               ` Stephen Leake
2006-08-23  9:44     ` Peter Amey
2006-08-23 22:37       ` Jeffrey R. Carter
2006-08-24 10:55         ` Peter Amey
2006-08-24 23:33           ` Jeffrey R. Carter
replies disabled

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